dureach.contacts.query และ dureach.trade.query รับ SQL แบบอ่านอย่างเดียวสำหรับชุดข้อมูลผู้ติดต่อและการขนส่งที่ระบุไว้ ใช้ SELECT เดียวกับคอลัมน์ที่อนุญาต ไม่รองรับการเชื่อมตารางหรือเขียนข้อมูล
มุมมองและคอลัมน์ที่อนุญาตมีอะไรบ้าง
| เครื่องมือ | มุมมอง | คอลัมน์ |
|---|---|---|
dureach.contacts.query | contacts | id, full_name, job_title, company_name, company_domain, city, country |
dureach.trade.query | bol_shipments | id, 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, SQLLIMIT/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 เต็มที่มีตัวระบุลูกค้าคู่กับโทเค็น