Putar Folder Parket Kueri SQL ke dalam API REST titik akhir
Simpan kueri di Query Builder, klik Titik akhir baru, and you have a URL at api.querystreams.com with its own key. The SQL runs read-only on the Agent that already reads your Parquet Folder file; the caller gets JSON or CSV and never sees the SQL, the schema or a password. Nothing to host, no port to open. About 90 seconds from a saved query, and the Free plan covers your first endpoint.
Inilah hasil akhirnya
Sebuah URL di api.querystreams.com yang mengembalikan baris dari kueri Folder Parquet yang Anda simpan sebagai JSON atau CSV kepada siapa pun yang memegang kunci, diuji dari konsol di portal sebelum Anda membagikannya. Seperti ini:
| Kunci | Nilai | Keterangan |
|---|---|---|
id_baris_terakhir rangkaian Opsional | Seattle | Filter yang dapat dipanggil dari kueri yang tersimpan |
Kunci API X | qsapi_AB•••••••••• | Token rahasia Anda |
{
"id_baris_terakhir": "Seattle"
}| Judul | Nilai | Keterangan |
|---|---|---|
Kunci API X | qsapi_AB•••••••••• | Token rahasia Anda. Satu token per pemanggil, dapat dicabut kapan saja. |
Jenis Konten | aplikasi/json | Parameter-parameter tersebut dikirim sebagai isi JSON. |
Menerima | aplikasi/json | JSON sebagai input; jika diminta teks/csv, Anda akan mendapatkan CSV. |
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"last_row_id": "Seattle"}'{
"kolom": [ { "nama": "_file_sumber", "jenis": "bilangan bulat" }, { "nama": "jumlah_baris", "jenis": "rangkaian" }, { "nama": "id_baris_terakhir", "jenis": "rangkaian" } ],
baris: [
{ "_file_sumber": 1042, "jumlah_baris": "Pedagang Angin Utara", "id_baris_terakhir": "Seattle" },
{ "_file_sumber": 1057, "jumlah_baris": "Penyedia Perlengkapan Pegunungan Alpen", "id_baris_terakhir": "Denver" },
{ "_file_sumber": 1063, "jumlah_baris": "Harbour Foods", "id_baris_terakhir": "Halifax" }
],
"meta": { "jumlah_baris": 3, "durasi_agen_ms": 41, "request_id": "req_7Hq2mKd9" }
}| Judul | Nilai | Keterangan |
|---|---|---|
tipe konten | aplikasi/json; charset=utf-8 | Amplop pada tab Isi |
panjang konten | 412 | Byte dikembalikan; lencana Ukuran di atas |
Folder Parquet menyimpan data Anda dalam file di komputer yang Anda kendalikan. Orang lain menginginkan sebagian data tersebut untuk aplikasi, dasbor, atau skrip mereka, dan solusi yang biasa diberikan terlalu banyak: login basis data yang tetap ada meskipun proyek sudah selesai, ekspor harian yang sudah usang, atau server API kecil yang sekarang harus dijalankan dan diperbarui oleh seseorang. Query Streams menjadikan endpoint sebagai kueri tersimpan ditambah kunci. Agen yang sudah memiliki folder berisi file Parquet menjalankan kueri, api.querystreams.com memeriksa kunci dan batas laju, dan pemanggil mendapatkan baris data. SQL, skema, dan kredensial tidak pernah meninggalkan akun Anda.
Yang Anda butuhkan
Akun Query Streams
Semua paket memiliki REST API. Paket gratis memberi Anda satu endpoint, dua kunci, dan 250 baris per panggilan, yang cukup untuk membuat panduan ini. Daftar di sini. my.querystreams.com.
The Agent with your Parquet Folder file added as a connection
Belum selesai? Tambahkan di bawah Data → Agen Data; prosesnya memakan waktu sekitar sepuluh menit.
Kueri yang tersimpan di Query Builder
Endpoint tersebut membungkus tepat satu kueri yang tersimpan. Tulis SELECT, jalankan sekali, lalu simpan. Tambahkan Filter Dinamis (sebuah @variable (dalam klausa WHERE) jika pemanggil harus dapat melakukan filter.
Siapa yang dapat membuat endpoint? Pemilik, Admin, dan Pembuat. Jika API Item tersebut hilang dari bilah atas Anda, Admin dapat mengaktifkannya untuk pengguna Anda di bawah ini. Akun → IzinSiapa pun yang Anda ajak berbagi endpoint hanya memerlukan akun Query Streams, di paket mana pun.
Siapkan dalam empat langkah
-
Simpan kueri
Di dalam Pembuat Kueri Pilih koneksi Folder Parquet Anda, tulis SELECT yang ingin Anda publikasikan, dan jalankan sekali agar Anda dapat melihat baris-barisnya. Pastikan hanya kolom yang dibutuhkan oleh pemanggil; endpoint akan mengembalikan persis apa yang dikembalikan oleh kueri.
Kueri tersimpan · fileset.ordersPILIH berkas sumber, MENGHITUNG(*) AS jumlah baris, MAKS(_row_id) AS id_baris_terakhir DARI kumpulan file pesanan KELOMPOK OLEH berkas sumber MEMESAN OLEH jumlah_baris DESC BATAS 100
Jika penelepon perlu dapat melakukan penyaringan, tambahkan Filter Dinamis, misalnya.
DI MANA last_row_id = @last_row_id. Setiap@variablemenjadi parameter API pada langkah 3. Klik Simpan dan beri nama pada kueri tersebut; nama itu akan menjadi nama tampilan endpoint. -
Buat titik akhir
Membuka API di bilah atas dan klik Titik akhir baruPenyihir itu memiliki empat langkah, Pilih kueri, Konfigurasi, Kunci parameter dan Bagikan. Pada Pilih kueriKlik kueri yang baru saja Anda simpan; kueri yang Agennya sedang offline akan berwarna abu-abu. Klik Berikutnya.
Jalan pintas. Dari Query Builder, Anda dapat langsung menampilkan kueri yang terbuka; wizard kemudian akan dimulai dari Konfigurasi dengan kueri yang sudah dipilih.
-
Konfigurasi dan kunci parameter
Pada Konfigurasi Pengaturan default sudah tepat untuk endpoint pertama: Nama tampilan diisi dari kueri, Jangka hidup Permanen (pilih) Berakhir untuk saham sementara), Mode respons Statis (satu respons JSON; pilih) Mengalir untuk hasil yang melampaui batas baris statis rencana Anda), Format internal JSON. Mode dan format respons akan tetap sama setelah dibuat, jadi tentukan di sini. Klik Berikutnya.
Pada Kunci parameter Semua Filter Dinamis dalam kueri akan tercantum. Biarkan filter yang mungkin diatur oleh pengguna sebagai berikut. Dapat dipanggil dan berikan masing-masing Nama string kueri; centang Diperlukan jika panggilan tanpa itu gagal. Tetapkan nilai yang tidak boleh diubah oleh pemanggil. Terkunciatau skenario kencan seperti Awal bulan. Tersembunyi Mempertahankan nilai default kueri dan menolak setiap upaya untuk mengubahnya. Klik Berikutnya.
-
Bagikan dan dapatkan kunci Anda
Pada Bagikan Anda bisa mengundang Rakyat melalui email atau tambahkan Kunci layanan untuk server atau alat otomatisasi, atau lewati keduanya untuk saat ini. Klik Buat & dapatkan kunci sayaLayar sukses menampilkan URL endpoint dan kunci Anda: string sepanjang 49 karakter yang diawali dengan
qsapi_Salinlah. Anda dapat menampilkannya kembali nanti dari endpoint tersebut. Berbagi tab, agar tidak hilang jika Anda menutup layar.Klik Mengirim di konsol untuk melakukan panggilan pertama dari portal itu sendiri. Panel respons menunjukkan Status, Waktu dan Ukuran, itu Tubuh Tab tersebut menampilkan JSON, dan panggilan tersebut muncul di Aktivitas tekan tab beberapa detik kemudian.
Itu saja. Sebuah folder berisi file Parquet sekarang merespons URL, hanya baca, terhadap kunci yang Anda berikan. Tidak ada yang diinstal, tidak ada port yang dibuka, dan SQL tetap berada di akun Anda.
Lakukan panggilan dari mana saja
Ganti ID endpoint dengan ID Anda dari bilah URL konsol dan qsapi_KUNCI_ANDA dengan kunci Anda. Parameter yang dapat dipanggil dimasukkan ke dalam string kueri pada permintaan GET; di sini kueri yang tersimpan mengekspos id_baris_terakhir:
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?last_row_id=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
{
"kolom": [ { "nama": "_file_sumber", "jenis": "bilangan bulat" }, { "nama": "jumlah_baris", "jenis": "rangkaian" }, { "nama": "id_baris_terakhir", "jenis": "rangkaian" } ],
baris: [
{ "_file_sumber": 1042, "jumlah_baris": "Pedagang Angin Utara", "id_baris_terakhir": "Seattle" },
{ "_file_sumber": 1057, "jumlah_baris": "Penyedia Perlengkapan Pegunungan Alpen", "id_baris_terakhir": "Denver" },
{ "_file_sumber": 1063, "jumlah_baris": "Harbour Foods", "id_baris_terakhir": "Halifax" }
],
"meta": { "jumlah_baris": 3, "durasi_agen_ms": 41, "request_id": "req_7Hq2mKd9" }
}Baris dikembalikan sebagai objek yang dikunci berdasarkan nama kolom, dengan daftar kolom dan sebuah meta Blok yang memberi tahu Anda berapa banyak baris yang ada, apakah hasilnya terpotong, dan ID permintaan yang dapat Anda kutip untuk mendukung permintaan tersebut. Panggilan yang sama seperti POST menempatkan parameter dalam badan JSON, yang merupakan pilihan tepat untuk daftar nilai yang panjang:
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"params": {"last_row_id": "Seattle"}}'?format=csv- CSV, bukan JSON, termasuk baris header.
Menerima format teks/csvmelakukan hal yang sama. Endpoint streaming mengembalikan NDJSON (satu objek JSON per baris) dengan akhiran{"_ringkasan": benar, "jumlah_baris": N}baris; periksa baris terakhir itu. ?sampel=benar- Maksimal lima baris, tidak dikenakan biaya. Cocok untuk memasang kabel pada klien.
kompresi=lz4- Badan rangka LZ4 untuk penelepon bervolume tinggi dengan dekoder; Kode Tab tersebut berisi cuplikan dekoder per bahasa. Kompresi gzip biasa terjadi secara otomatis saat klien Anda mengirimkan data.
Accept-Encoding: gzip. Otorisasi: Bearer qsapi_…- Diterima sebagai alias untuk
Kunci API XGunakan dari kode browser.
Di mana colokannya
Excel dan Power BI
Ekspor → Power Query M (.pq) Ini memberi Anda kueri siap pakai. Tempelkan ke Editor Lanjutan (Excel: Data → Dapatkan Data → Dari Sumber Lain → Kueri Kosong; Power BI: Beranda → Ubah data → Sumber Baru → Kueri Kosong) dan ganti placeholder dengan kueri Anda. qsapi_ kunci.
Tukang Pos, Insomnia, Hoppscotch
Sama saja Ekspor Menu mengunduh koleksi Postman v2.1, ekspor Insomnia v5, atau koleksi Hoppscotch dengan parameter yang sudah terisi dan tempat penampung untuk kunci.
Kode Anda sendiri
Itu Kode Tab ini memiliki contoh kerja untuk cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell, dan Ruby. Ekspor → Spesifikasi OpenAPI 3.1 Mengumpan ke generator klien atau Swagger UI apa pun.
n8n, Zapier, Make, cron
Buat Kunci layanan Untuk alat tersebut, tempelkan URL dan kunci ke node HTTP-nya, lalu jadwalkan. Setiap alat mendapatkan kuncinya sendiri, sehingga Anda dapat mencabut satu alat tanpa memengaruhi alat lainnya.
Apa yang diizinkan oleh rencana tersebut
| Rencana | Titik akhir | Kunci per titik akhir | Jumlah orang per titik akhir | Baris per panggilan (statis) | Baris per panggilan (streaming) | Panggilan per menit, per tombol |
|---|---|---|---|---|---|---|
| Gratis | 1 | 2 | 1 | 250 | 250 | 3 |
| Inti Pribadi | 2 | 3 | 2 | 5,000 | 250,000 | 15 |
| Personal Plus | 5 | 5 | 5 | 10,000 | 500,000 | 30 |
| Inti Bisnis | 5 | 10 | 10 | 50,000 | 1,000,000 | 300 |
| Bisnis Plus | 10 | 20 | 25 | 100,000 | 5,000,000 | 600 |
| Bisnis Max | 25 | 30 | 50 | 250,000 | 10,000,000 | 600 |
| Inti Perusahaan | 50 | 50 | 100 | 500,000 | 25,000,000 | 1,000 |
| Perusahaan Plus | 100 | 100 | 250 | 1,000,000 | 50,000,000 | 1,000 |
| Enterprise Max | 250 | 200 | 500 | 2,500,000 | 100,000,000 | 1,500 |
Setiap panggilan juga memiliki batas waktu kueri tetap 60 detik dan batas respons 8 MiB, dan byte yang dikembalikan akan dihitung terhadap kuota data bulanan paket Anda, kuota yang sama yang digunakan oleh add-in Excel dan Google Sheets. Paket gratis memiliki satu endpoint dan 5 MB per bulan, yang cukup untuk tabel kecil yang dipanggil berkali-kali dalam sehari. Lihat halaman harga. untuk tunjangan berdasarkan rencana.
Gratis adalah rencana yang bisa Anda pertahankan. Ini bukan masa percobaan yang berakhir. Lihat detail lengkapnya di sini. halaman harga.
Menjaganya tetap aman
SQL tersebut tetap milik Anda.
Pihak yang melakukan panggilan hanya mendapatkan baris data. Mereka tidak pernah melihat kueri, nama tabel, atau detail koneksi, dan mereka tidak dapat mengubah apa yang dijalankan oleh endpoint tersebut.
Satu kunci, satu titik akhir, satu pemanggil
Satu kunci hanya berlaku untuk satu titik akhir. Berikan setiap orang atau alat kuncinya masing-masing, dan setiap panggilan akan dicatat terhadap kunci tersebut. Cabut satu kunci dan kunci lainnya akan tetap berfungsi; pencabutan akan berlaku dalam waktu sekitar lima menit.
Hanya baca, di sisi dinding Anda.
Agen hanya menjalankan satu perintah SELECT yang tersimpan dan tidak ada yang lain, dari dalam jaringan Anda, melalui koneksi keluarnya sendiri. Tidak ada port yang perlu dibuka dan tidak ada kredensial di internet.
Setiap panggilan dalam buku besar
Itu Aktivitas Tab ini menampilkan setiap panggilan beserta waktu, penerima, status, baris, byte, dan durasi, termasuk panggilan yang ditolak. Atur sebuah Berakhir Masa berlaku untuk share sementara dan endpoint akan mati secara otomatis pada tanggal tersebut.
Ketika sesuatu tidak berfungsi
| Status | Kode | Apa yang harus dilakukan? |
|---|---|---|
| 401 | API_KEY_REQUIRED / API_KEY_INVALID | Header hilang atau kuncinya salah. Kirim Kunci API-X: qsapi_…, keseluruhan 49 karakter. Kunci dapat disalin lagi dari tab Berbagi di endpoint. |
| 403 | API_KEY_ENDPOINT_MISMATCH | Kunci yang valid digunakan pada endpoint yang berbeda. Setiap kunci hanya milik satu endpoint. |
| 403 | KUNCI_API_DICABUT / TITIK_AKHIR_API_KADALUARSA | Kunci telah dicabut atau titik akhir telah mencapai tanggal kedaluwarsa. Buat kunci baru atau pulihkan titik akhir. |
| 400 | API_PARAM_TIDAK_DAPAT_DITIMPA | Anda mengirimkan parameter yang tidak ditandai sebagai "Dapat Dipanggil" oleh pemiliknya. Isi permintaan mencantumkan nama-nama yang diizinkan. |
| 414 | API_QUERY_TERLALU_BESAR | String kueri GET yang dikirimkan berukuran 8 KB atau 200 nilai daftar. Kirimkan parameter yang sama seperti pada body JSON POST. |
| 413 | API_OUTPUT_TERLALU_BESAR | Hasilnya melebihi batas 8 MiB. Persempit kueri, atau alihkan endpoint ke Streaming. |
| 429 | API_RATE_LIMITED | Terlalu banyak panggilan saat ini untuk kunci atau titik akhir. Tunggu sebentar. Coba Lagi Setelahnya detik, atau tingkatkan Batas laju di bawah Pengaturan API → Pengaturan default dalam paket Anda. |
| 429 | API_DATA_REALM_KEHAUSAN | Kuota data bulanan pemilik telah habis. Kuota akan direset pada bulan penagihan; tingkatkan paket untuk mendapatkan lebih banyak kuota. |
| 503 | AGEN API TIDAK TERHUBUNG | Agen yang mengelola file Folder Parquet Anda sedang offline. Periksa di bawah Data → Agen Data; panggilan akan berhasil kembali segera setelah terhubung kembali. |
| 504 | API_QUERY_TIMEOUT | Kueri tersebut membutuhkan waktu lebih dari 60 detik. Tambahkan filter atau indeks, atau simpan kueri yang lebih spesifik. |
Setiap badan kesalahan memiliki bentuk {"kesalahan": {"kode": "…", "pesan": "…"}} dan setiap respons membawa sebuah ID Permintaan X-QS Header. Kutip ID saat Anda menghubungi dukungan.
Pertanyaan yang diajukan orang
Apakah data saya disalin ke Query Streams?
Tidak. Agen menjalankan kueri di tempat data Anda berada dan hanya mengirimkan baris yang diminta oleh panggilan tersebut. Tidak ada yang disinkronkan atau di-cache di antaranya; setiap panggilan menjalankan kueri tersebut.
Apakah penelepon dapat mengubah SQL atau meminta tabel lain?
Tidak. Sebuah endpoint menjalankan satu query yang tersimpan. Pemanggil hanya dapat mengatur parameter yang telah Anda tandai. Dapat dipanggil, dan nilai-nilai tersebut diikat dengan aman: teks diberi tanda kutip dan di-escape, angka diperiksa rentangnya, daftar diperluas.
Bagaimana cara saya menyerahkan ini kepada rekan kerja?
Pada titik akhir Berbagi tab pilih Rakyat dan masukkan email mereka. Mereka mendapatkan tautan ajaib, masuk dengan alamat tersebut (akun gratis pun tidak masalah) dan membuat kunci mereka sendiri; Anda dapat melihat panggilan mereka berdasarkan nama di tab Aktivitas. Untuk server atau alat otomatisasi, buatlah sebuah Kunci API dengan label sebagai gantinya.
Apa yang terjadi ketika saya mengedit kueri yang tersimpan?
Endpoint menjalankan SQL baru pada panggilan berikutnya dan spesifikasi OpenAPI-nya dibuat ulang. URL dan kuncinya tidak berubah. Jika Anda menambahkan atau menghapus filter, tinjau kembali. Kunci parameter sehingga penelepon melihat parameter yang tepat.
Apakah paket gratis benar-benar mencakup hal ini?
Ya. Paket gratis adalah paket permanen, bukan uji coba yang akan berakhir. Paket ini mencakup satu endpoint, dua kunci, dan 250 baris per panggilan. Lihat detail lengkapnya di halaman berikut. halaman harga.
Apakah endpoint tersebut menggunakan dialek SQL Parquet Folder?
Ya, karena SQL tersebut milik Anda. Anda menulis dan menjalankannya terhadap folder file Parquet di Query Builder; endpoint menjalankan pernyataan persis tersebut melalui koneksi yang sama, dengan nilai parameter Anda terikat sesuai dengan yang diharapkan oleh Parquet Folder.
Apakah folder berisi file Parquet harus dapat diakses dari internet?
Tidak. Hanya Agen yang perlu mengaksesnya, dari dalam jaringan Anda. Agen membuat satu koneksi keluar ke Query Streams; penelepon berkomunikasi dengan api.querystreams.com dan tidak pernah dengan komputer Anda.
Panduan terkait
Setiap panduan untuk Parquet Folder
Apakah pengaturan Anda kurang tepat?
- Apakah data Anda sudah ada dalam file basis data DuckDB? Konektor DuckDB akan membukanya secara langsung → DuckDB
- Hanya butuh daftar file beserta ukuran, tanggal, dan perubahannya? Sistem File dapat melakukannya tanpa membaca file → File System
Setup trouble?
- Agent says the file or folder does not exist, or access is denied? Mapped drives, network shares, OneDrive and Linux home folders each need one fix → Where the Agent can read files from
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

