ตัวอ่าน SQL ของ MCP

เขียน SQL แบบอ่านอย่างเดียวสำหรับ contacts.query และ trade.query ได้แก่ มุมมองที่อนุญาต คอลัมน์ ไวยากรณ์ การแบ่งหน้า และการจัดการข้อผิดพลาด

dureach.contacts.query และ dureach.trade.query รับ SQL แบบอ่านอย่างเดียวสำหรับชุดข้อมูลผู้ติดต่อและการขนส่งที่ระบุไว้ ใช้ SELECT เดียวกับคอลัมน์ที่อนุญาต ไม่รองรับการเชื่อมตารางหรือเขียนข้อมูล

มุมมองและคอลัมน์ที่อนุญาตมีอะไรบ้าง

เครื่องมือมุมมองคอลัมน์
dureach.contacts.querycontactsid, full_name, job_title, company_name, company_domain, city, country
dureach.trade.querybol_shipmentsid, source_type, trade_flow, bol_number, actual_arrival_date, shipper_name, consignee_name, product_desc

ค้นเฉพาะคอลัมน์เหล่านี้ ตาราง คอลัมน์ หรือคำนำหน้าฐานข้อมูลที่ไม่รู้จักจะส่งคืนข้อผิดพลาดการตรวจสอบ product_desc ถูกตัดเหลือ 300 อักขระในผลลัพธ์

รูปแบบ SQL ที่ยอมรับมีลักษณะอย่างไร

  • หนึ่ง SELECT พร้อม WHERE, GROUP BY, HAVING และ ORDER BY ไม่บังคับ อนุญาตนามแฝง
  • รองรับการเปรียบเทียบ ตัวดำเนินการบูลีน เลขคณิต IN แบบลิเทอรัล และ LIKE
  • ฟังก์ชันรวมและสเกลาร์: count, sum, avg, min, max, uniqExact, lower, upper, length, coalesce, toDate, toYear, toMonth
  • ที่ปฏิเสธ: join, subquery, CTE, window function, SETTINGS, FORMAT, SQL LIMIT/OFFSET, SELECT SETTINGS, GROUP BY WITH TOTALS, IN แบบ global และ ORDER BY แบบตำแหน่ง
  • SQL ต้องไม่เกิน 16 KiB UTF-8 คำสั่งที่ใหญ่กว่าจะส่งคืนข้อผิดพลาดการตรวจสอบก่อนดำเนินการ
{
  "sql": "SELECT company_name, city, country FROM contacts WHERE country = 'DE' AND company_domain LIKE '%gmbh%' ORDER BY company_name, city",
  "page": 1,
  "limit": 25
}

ตั้งแต่หน้า 2 ต้องมี ORDER BY ใช้ลำดับที่สคีมาเครื่องมือรองรับ และเพิ่มเกณฑ์แยกค่าที่เท่ากันเมื่อมี ค่าที่เท่ากันและการอัปเดตแหล่งข้อมูลอาจทำให้แถวเปลี่ยนหน้า ผลลัพธ์ที่มีขอบเขตไม่ใช่การส่งออกข้อมูลทั้งหมด

การแบ่งหน้าทำงานอย่างไร

ใช้ page (1–20) และ limit (1–50) ห้ามต่อ SQL LIMIT/OFFSET ผลลัพธ์ส่งคืนชื่อคอลัมน์ ชนิด ClickHouse และแถวแบบอาร์เรย์ตามลำดับโดยไม่มีจำนวนรวม:

{
  "columns": [{"name": "company_name", "type": "String"}],
  "rows": [["Example GmbH"]],
  "page": 1,
  "limit": 25
}

UUID วันที่ ทศนิยม และจำนวนเต็มที่อยู่นอกช่วงปลอดภัยของ JSON จะมาเป็นสตริง ค่าทศนิยมที่ไม่ใช่จำนวนจำกัด (non-finite) จะมาเป็นสตริง ผลลัพธ์ที่ใหญ่กว่า 1 MiB จะส่งคืน result_too_large ให้ลดรายการคอลัมน์หรือตัวกรองแล้วลองใหม่

ควรจัดการข้อผิดพลาดอย่างไร

รหัสความหมายวิธีแก้
ข้อผิดพลาดการตรวจสอบบน sqlคีย์เวิร์ด ตาราง คอลัมน์ หรือรูปแบบที่ไม่อนุญาตใช้หนึ่ง SELECT บนมุมมองและคอลัมน์ที่ระบุ ลบ join, subquery, CTE, SETTINGS, FORMAT และ SQL LIMIT
SQL exceeds 16 KiBคำสั่งใหญ่เกินไปลดเงื่อนไขหรือแยกคำถามเป็นคำค้นย่อย
ขาด ORDER BY บนหน้า 2 ขึ้นไปหน้าออฟเซ็ตไม่กำหนดลำดับแน่นอนเพิ่ม ORDER BY พร้อมตัวตัดเสมอที่ไม่ซ้ำ
quota_exceeded (contacts_daily)งบรายวันของผู้ติดต่อหมดแล้วรอจนรีเซ็ตหรือสอบถามผู้ดูแลเรื่องขีดจำกัดแผน
result_too_largeผลลัพธ์ทางสายเกิน 1 MiBเลือกคอลัมน์น้อยลง เพิ่มตัวกรอง หรือลด limit

บันทึก request_id และรหัสข้อผิดพลาด ห้ามบันทึก SQL เต็มที่มีตัวระบุลูกค้าคู่กับโทเค็น

หน้าที่เกี่ยวข้อง