dureach.contacts.query dan dureach.trade.query menerima SQL hanya baca untuk kumpulan data kontak dan pengiriman yang didokumentasikan. Gunakan satu SELECT dengan kolom yang diizinkan; gabungan tabel dan penulisan tidak didukung.
Tampilan dan kolom apa yang diizinkan?
| Tool | Tampilan | Kolom |
|---|---|---|
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 |
Kueri hanya kolom-kolom ini. Tabel, kolom, atau awalan basis data yang tidak dikenal mengembalikan kesalahan validasi. product_desc dipotong menjadi 300 karakter dalam hasil.
Bentuk SQL apa yang diterima?
- Satu
SELECTdenganWHERE,GROUP BY,HAVING, danORDER BYopsional. Alias diizinkan. - Perbandingan, operator boolean, aritmetika,
INliteral, danLIKEdidukung. - Fungsi agregat dan skalar:
count,sum,avg,min,max,uniqExact,lower,upper,length,coalesce,toDate,toYear,toMonth. - Ditolak: join, subkueri, CTE, fungsi window,
SETTINGS,FORMAT,LIMIT/OFFSETSQL,SELECT SETTINGS,GROUP BY WITH TOTALS,INglobal, danORDER BYposisional. - SQL berukuran maksimal 16 KiB UTF-8. Pernyataan yang lebih besar mengembalikan kesalahan validasi sebelum eksekusi.
{
"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
}Halaman 2 dan seterusnya memerlukan ORDER BY. Gunakan urutan yang didukung skema alat dan tambahkan pembeda nilai yang sama jika tersedia. Nilai sama dan pembaruan sumber dapat memindahkan baris antarhalaman; hasil terbatas bukan ekspor lengkap.
Bagaimana cara kerja penomoran halaman?
Gunakan page (1–20) dan limit (1–50). Jangan menambahkan LIMIT/OFFSET SQL. Hasil mengembalikan nama kolom, tipe ClickHouse, dan array baris yang terurut tanpa jumlah total:
{
"columns": [{"name": "company_name", "type": "String"}],
"rows": [["Example GmbH"]],
"page": 1,
"limit": 25
}UUID, tanggal, desimal, dan bilangan bulat di luar rentang aman JSON tiba sebagai string; float non-finit tiba sebagai string. Hasil yang lebih besar dari 1 MiB mengembalikan result_too_large; persempit daftar kolom atau filter lalu ulangi.
Bagaimana kesalahan sebaiknya ditangani?
| Kode | Arti | Perbaikan |
|---|---|---|
kesalahan validasi pada sql | Kata kunci, tabel, kolom, atau bentuk yang tidak diizinkan. | Pertahankan satu SELECT pada tampilan dan kolom yang tercantum; hapus join, subkueri, CTE, SETTINGS, FORMAT, dan LIMIT SQL. |
SQL exceeds 16 KiB | Pernyataan terlalu besar. | Persingkat predikat atau bagi pertanyaan menjadi kueri yang lebih kecil. |
ORDER BY hilang pada halaman 2+ | Halaman offset tidak deterministik. | Tambahkan ORDER BY dengan kunci pemecah kesamaan yang unik. |
quota_exceeded (contacts_daily) | Anggaran kontak harian habis. | Tunggu hingga reset atau tanyakan kepada admin tentang batas paket. |
result_too_large | Ukuran hasil yang ditransmisikan melebihi 1 MiB. | Pilih lebih sedikit kolom, tambahkan filter, atau turunkan limit. |
Catat request_id dan kode kesalahan. Jangan pernah mencatat SQL lengkap berisi pengenal pelanggan bersama token.