Meng querying sebuah folder berisi file Parquet dengan SQL
Parquet memiliki skema tersendiri, jadi tidak ada yang perlu ditebak. Arahkan Query Streams ke folder dan setiap file akan menjadi satu tabel SQL dengan nama kolom dan tipe yang persis sama seperti yang sudah dideklarasikan oleh file tersebut — tanpa Spark, tanpa Python, tanpa unggahan.
JUMLAH(jumlah_bersih)
DARI pesanan
KELOMPOKKAN BERDASARKAN negara;
Query Streams adalah platform integrasi basis data real-time yang aman, dan konektor Parquet Folder-nya mengubah folder berisi file .parquet menjadi satu tabel SQL aktif yang dapat Anda kueri dari Microsoft Excel, Google Sheets, Airtable, dan asisten AI Anda. Pelajari selengkapnya di QueryStreams.com dan Daftar gratis untuk melakukan query pada folder Parquet pertama Anda dalam hitungan menit.
Seseorang memberi Anda sebuah folder berisi file Parquet.
Data tersebut tiba melalui salah satu dari beberapa jalur yang sudah umum digunakan. Ekspor data lake mendarat di suatu share sebagai beberapa ratus bagian-00000.parket berkas. Sebuah pekerjaan dbt atau Spark menulis outputnya ke suatu tempat dan tempat itu ternyata adalah folder jaringan. Sebuah tim analitik menyerahkan sebuah ekstrak. Sebuah tabel gudang data diarsipkan ke disk ketika perpanjangan lisensi terlihat mahal, dan delapan belas bulan kemudian seseorang ingin tahu apa isinya.
Bagian yang merepotkan adalah Parquet tidak mudah dibaca manusia. Mengklik dua kali sebuah .parket File tersebut tidak melakukan apa pun yang berguna. Membukanya di editor teks hanya akan menampilkan layar penuh data biner. Saran yang Anda dapatkan ketika bertanya adalah "jalankan Spark" atau "tulis sedikit kode Python", dan keduanya bukanlah jawaban serius bagi seseorang yang pekerjaan sebenarnya adalah menyajikan angka kepada direktur keuangan pada hari Kamis.
Itu Konektor Folder Parket Ini adalah cara singkat. Anda mengarahkan Query Streams Agent ke folder tersebut, dan setiap file yang cocok akan menjadi bagian dari satu tabel SQL. Tidak ada yang dikonversi, tidak ada yang digabungkan ke dalam file baru, dan tidak ada yang diunggah — file tetap berada di tempatnya dan Anda melakukan query di tempat file tersebut berada.
Skema tersebut sudah ada di dalam file.
Inilah satu fakta yang membuat Parquet berbeda dari semua jenis folder lainnya, dan hal ini penting untuk dipahami karena menjelaskan mengapa konektor ini berjalan begitu lancar tanpa kendala.
Setiap berkas Parquet diakhiri dengan footer: sebuah blok metadata yang menyatakan nama kolom, tipe data pastinya, apakah setiap kolom mengizinkan nilai null, dan berapa banyak baris yang terdapat dalam berkas tersebut. Footer tersebut ditulis oleh pihak yang menghasilkan berkas tersebut, dan bersifat otoritatif. Ini bukan petunjuk atau konvensi — ini adalah deklarasi berkas itu sendiri tentang apa yang dikandungnya.
Jadi, ketika konektor mengambil sampel folder, ia tidak memeriksa nilai data dan menarik kesimpulan darinya. Ia meminta setiap file yang diambil sampelnya untuk mendeskripsikan dirinya sendiri, membaca jawabannya, dan menetapkan itu sebagai definisi tabel. Tipe-tipe tersebut adalah... dinyatakan daripada menyimpulkan, yang berarti tidak ada ukuran sampel yang perlu dikhawatirkan dan tidak ada kemungkinan bahwa baris kesepuluh ribu bertentangan dengan apa yang tersirat dari seratus baris pertama.
Jenis-jenisnya juga dibawa tanpa perubahan. A DESIMAL(18,2) Kolom dalam file adalah kolom desimal dalam tabel, bukan perkiraan floating point, karena nilainya tidak pernah melewati string saat masuk. Semua hal lain dalam keluarga ini — pemindaian folder, buku besar file, cache lokal terenkripsi, tabel pemeliharaan — bekerja persis seperti yang dijelaskan di Cara kerja konektor File SetBerikut ini hanyalah hal-hal yang berbeda dari Parquet.
Hal yang tidak perlu Anda perdebatkan
Cara paling jelas untuk melihat keuntungannya adalah dengan membandingkannya dengan CSV, yang fungsinya sama tanpa footer. Semuanya Konektor Folder CSV Hal yang harus dideteksi, disepakati, dan dipertahankan dinyatakan secara gamblang di awal dalam Parquet.
| Pertanyaan | Folder CSV | Folder parket |
|---|---|---|
| Pengkodean karakter apa ini? | Deteksi dilakukan per file, dan pengkodean campuran akan ditolak. | Tidak muncul — teks disimpan sebagai UTF-8 dalam format itu sendiri. |
| Koma, titik koma, tab, atau pipa? | Dicium, dan harus identik di seluruh folder. | Tidak muncul — Parquet bukan teks yang dibatasi. |
| Apakah baris pertama merupakan header? | Sebuah opsi, dengan kolom posisional jika tidak. | Nama kolom terdapat di bagian footer. |
| Apakah kolom ini berupa angka atau teks? | Disimpulkan dari nilai-nilai yang diambil sampelnya. | Dinyatakan oleh berkas tersebut. |
| Akankah nilai uang tetap tepat? | Ya, tetapi hanya karena konektor tersebut berusaha keras untuk mendeteksi kolom desimal dan menetapkannya sebagai nilai yang tepat. | Angka desimal dalam file akan tetap berupa angka desimal dalam tabel. Tidak ada yang perlu diperhatikan. |
Adalah 03/04/2026 Maret atau April? |
Mungkin memerlukan penjelasan eksplisit. Format tanggal. |
Tanggal disimpan sebagai tanggal, bukan sebagai teks. |
| Ada berapa baris dalam file ini? | Hanya bisa diketahui dengan membacanya. | Di bagian footer, gratis. |
Sesuai dengan itu, hanya ada sedikit opsi yang dapat diatur. Konektor Folder CSV memiliki pembatas, karakter kutipan, sakelar header, pengkodean, string kosong, format tanggal, dan mode tata letak, karena semua itu benar-benar tidak pasti untuk file teks. Konektor Folder Parquet tidak memiliki antarmuka tersebut, karena file tersebut sudah memberikan jawabannya — pengaturan yang dimilikinya tercantum lebih lanjut di bawah ini.
Kolom yang hanya dimiliki oleh beberapa file
Folder berisi file Parquet jarang ditulis sekaligus. Sebuah pipeline mendapatkan field baru di bulan Maret, sehingga file dari bulan Maret dan seterusnya memiliki kolom yang tidak dimiliki file bulan Januari. Inilah satu-satunya penilaian yang benar-benar harus dilakukan oleh konektor, dan konektor melakukannya dengan cara yang spesifik.
Tabel yang disematkan adalah serikat dari kolom-kolom yang ditemukan di seluruh file yang diambil sampelnya, bukan irisannya. Kolom yang hanya muncul di beberapa di antaranya tetap bergabung dengan tabel — kolom tersebut hanya ditandai sebagai dapat bernilai null, dan dibaca sebagai BATAL untuk file-file yang dibuat sebelum itu. Oleh karena itu, Anda menyimpan setiap kolom di dalam folder, alih-alih kehilangan kolom-kolom yang ditambahkan belakangan.
Sebuah kolom hilang ditoleransi. Kolom yang memiliki jenis berbeda tidak. Jika ID pesanan Jika sebuah data berupa bilangan bulat 64-bit dalam satu file dan teks dalam file lain, konektor tersebut menolak untuk melakukan penambatan sama sekali dan menyebutkan perbedaan tersebut secara tepat: kolom mana, tipe mana, dan di dua file mana. Ia tidak akan memilih pemenang, dan ia tidak akan diam-diam mentransmisikan satu data ke data lainnya untuk menyelaraskan angka-angka tersebut.
.parket ekstensi pada sesuatu yang lain — itu dicatat dengan alasannya dan sampel berlanjut dengan file yang tersisa. Hanya jika tidak ada Jika file yang diambil sampelnya dapat dibaca, apakah konektor menolak, dan kemudian mencantumkan apa yang salah dengan masing-masing file tersebut.
Mengendus itu murah, karena tidak ada yang dibaca.
Query Streams mengambil sampel hingga 64 berkas Saat pertama kali terhubung ke sebuah folder. Untuk CSV, itu berarti membuka dan mengurai 64 file. Untuk Parquet, itu berarti mencari ke akhir dari 64 file dan membaca blok metadata, yang merupakan pekerjaan sepele bahkan ketika setiap file berukuran ratusan megabyte.
Trik yang sama juga berlaku selama sinkronisasi. Jumlah baris setiap file diambil dari footer tanpa menyentuh data, sehingga konektor mengetahui sebelumnya apakah suatu file akan melampaui batas jumlah baris per file, dan apakah sinkronisasi secara keseluruhan akan melampaui anggaran jumlah barisnya. Konektor dapat menolak dan menentukan batas tersebut. sebelum File yang bermasalah ditulis langsung ke dalam tabel, daripada menemukan masalah di tengah proses dan membiarkan Anda dengan pemuatan yang tidak lengkap.
| Pagar | Bawaan | Maksimum |
|---|---|---|
| File per konektor | 100,000 | 2,000,000 |
| Kedalaman folder | 8 level | 64 level |
| Ukuran setiap file | 512 MB | 4 GB |
| Baris dari satu file mana pun | 2,000,000 | 50,000,000 |
| Baris per sinkronisasi | 10,000,000 | 100,000,000 |
| Anggaran waktu pemindaian | 300 detik | 3.600 detik |
Ukuran file diperiksa terlebih dahulu, sebelum satu byte pun dipindahkan. File yang melebihi batas ukuran akan ditolak berdasarkan nama, dan sisa folder akan disinkronkan di sekitarnya.
Setiap baris mengetahui posisinya dalam berkasnya.
Seperti halnya setiap konektor File Set, setiap baris membawa sebuah berkas sumber kolom yang menyebutkan nama file asalnya dan sebuah _id_baris Itu unik di antara semuanya. Di dalam map Parquet, _id_baris lebih baik dari itu: Pembaca Parquet mengungkap sesuatu yang asli nomor baris berkasJadi, pengidentifikasi tersebut dibentuk dari nama file ditambah posisi urutan sebenarnya dari baris tersebut di dalam file, kemudian ditambahkan nol di depan hingga mencapai dua belas digit.
Padding adalah intinya. Mengurutkan berdasarkan _id_baris Format kolom menempatkan baris sesuai urutan file, bukan dalam urutan 1, 10, 100, 2, dan dua belas digit sudah cukup untuk menjaga agar hal itu tetap berlaku untuk satu triliun baris dalam satu file — jauh melampaui batas apa pun yang dapat Anda tetapkan. CSV tidak memiliki konsep yang setara untuk digunakan, jadi ini adalah salah satu tempat di mana format kolom memberi Anda sesuatu yang ekstra daripada sekadar menghemat waktu dan tenaga.
SELECT _source_file, COUNT(*) AS row_count, SUM(net_amount) AS net_amount FROM orders GROUP BY _source_file ORDER BY net_amount DESC;
Dan karena pengidentifikasi baris diurutkan, Anda dapat melihat bagian awal file tertentu tanpa membaca seluruh folder — berguna ketika sebuah partisi terlihat mencurigakan dan Anda ingin melihat apa yang sebenarnya ada di dalamnya.
SELECT _row_id, order_id, order_date, net_amount FROM orders WHERE _source_file = 'part-00042.parquet' ORDER BY _row_id LIMIT 20;
Ketika sebuah file berhenti cocok dengan pin tersebut
Setelah bentuknya ditetapkan, setiap file diperiksa terhadap bentuk tersebut saat masuk — dan sekali lagi, pemeriksaan itu adalah pembacaan footer, bukan pembacaan data, jadi cukup murah untuk dilakukan pada setiap file setiap saat. File yang tidak lagi sesuai akan diparkir: baris-barisnya tetap berada di luar tabel, alasannya dicatat, dan sisa folder disinkronkan secara normal.
Ada empat hal yang dianggap sebagai perbedaan pendapat, dan penting untuk mengetahui keempatnya secara terpisah karena hal ketiga akan mengejutkan orang.
- Jenisnya berubah. Kolom tersebut ada, tetapi bagian footer sekarang menyatakannya sebagai sesuatu yang berbeda dari yang sebelumnya disematkan.
- Kolom yang wajib diisi hilang. Kolom yang ditandai oleh pin sebagai tidak boleh kosong tidak ada dalam file tersebut.
- Sebuah berkas kehilangan kolom yang sebelumnya dimilikinya. Meskipun kolom yang disematkan dapat bernilai null, sebuah file yang telah melakukan Kolom tersebut, yang saat ini diambil sampelnya dan kemudian dihentikan, dibiarkan kosong dan tidak dibaca sebagai nilai null. Membacanya sebagai null akan secara diam-diam mengurangi setiap jumlah yang dibangun berdasarkan kolom tersebut, dan total yang salah lebih buruk daripada file yang hilang.
- Kolom baru pun muncul. Kolom yang belum pernah dilihat oleh pin tersebut, dan yang belum Anda kecualikan, akan memarkir file tersebut alih-alih dibuang secara diam-diam.
Membaca ulang sebuah file akan mengganti baris-barisnya, bukan menambahkannya. Apa pun yang sebelumnya disumbangkan oleh file tersebut akan dihapus dan kontennya saat ini akan dimasukkan dalam satu transaksi, sehingga partisi yang ditulis ulang tidak akan meninggalkan duplikat atau tabel yang setengah diperbarui jika terjadi kegagalan di tengah proses.
Semua pengaturan Parquet, dan kapan harus mengubahnya
Hal paling berguna yang bisa dikatakan tentang kartu ini adalah apa bukan di atasnya. Konektor Folder Parquet sama sekali tidak memiliki pengaturan khusus format. Sebuah folder CSV memiliki pembatas, karakter kutipan, pengkodean, string kosong, dan format tanggal. Sebuah folder Excel memiliki daftar lembar kerja. Sebuah folder JSONL memiliki kedalaman perataan. Parquet tidak memiliki satupun dari itu, dan alasannya adalah footer: skema dideklarasikan di dalam setiap file, sehingga tidak ada yang perlu diberitahukan kepada konektor dan tidak ada yang perlu ditebak oleh konektor. Seluruh kategori "opsi mana yang salah saya pilih?" tidak ada di sini.
Yang tersisa hanyalah daftar singkat. Semua hal lain yang Anda lihat di Koneksi tab — folder root, pemindaian subfolder dan kedalaman maksimum, pola pengecualian, mengikuti symlink, pola penguraian nama file, nama token folder, interval pemindaian, hashing konten, kebijakan penghapusan, retensi log peristiwa, dan pengaman pemindaian — berperilaku identik pada setiap jenis folder dan didokumentasikan sekali, secara lengkap, di panduan konektor File SetBagian ini hanya mencakup hal-hal yang spesifik untuk folder file Parquet.
Nama tabel
Diperlukan. Parquet adalah penggerak tabel tunggal: setiap file yang dicocokkan oleh pola penyertaan akan digabungkan menjadi satu tabel, dan inilah nama tabel tersebut dalam SQL — pesanan, acara, perjalanan, apa pun isi folder sebenarnya. Hanya huruf, angka, dan garis bawah, dan tidak boleh diawali dengan angka; hal lain akan ditolak saat Anda menyimpan, bukan saat sinkronisasi.
Pilih nama tersebut dengan sengaja, karena nama itulah yang akan digunakan oleh setiap kueri yang tersimpan, setiap pertanyaan Nova, dan setiap penyegaran spreadsheet. Mengganti namanya nanti tidak akan merusak, tetapi itu berarti Anda harus kembali memeriksa semua yang telah Anda buat sebelumnya. Sebuah folder berisi file-file bagian yang disebut... bagian-00000.parket Nama tabel tidak memberi tahu Anda apa isi setiap baris, jadi biasanya hanya nama tabel yang dapat dibaca manusia yang tertera pada data tersebut.
Sertakan pola
Bawaan: **/*.parket — diatur untuk Anda saat Anda memilih kartu Folder Parquet. Pola glob, satu per baris, menentukan file mana di bawah folder root yang termasuk dalam cakupan. Jika dibiarkan, ia akan mengambil setiap file Parquet di dalam struktur folder, yang merupakan hal yang Anda inginkan saat pertama kali mengarahkannya ke ekspor.
Mempersempit hal ini adalah tuas utama yang Anda miliki, dan hampir selalu merupakan langkah yang lebih baik daripada menaikkan tutupnya. Ekspor data lake dipartisi, sehingga struktur folder sudah memuat filter yang Anda inginkan. Jika pemindaian gagal karena share memuat lebih banyak file daripada batas yang diizinkan, batasi pola ke partisi yang sebenarnya Anda kueri daripada mencoba mencapai batas file — konektor yang membaca empat ribu file lebih cepat dipindai, lebih cepat disinkronkan, dan jauh lebih mudah dipahami daripada konektor yang membaca empat ratus ribu file dan memfilternya setelahnya.
**/*.parquet setiap file Parquet di pohon (default) tahun=2026/**/*.parquet satu tahun dari lake yang dipartisi Hive **/part-*.parquet File bagian Spark, melewati ekstra yang dijatuhkan secara manual orders/**/*.parquet satu dataset dari share yang berisi beberapa
Satu aturan seringkali membingungkan orang, dan sang penyihir menyatakannya langsung di lapangan permainan: Folder campuran adalah dua konektor pada root yang sama, satu untuk setiap driver. Jika ekspor danau menyimpan file CSV di samping Parquet, memperluas pola ini menjadi **/*.* tidak memberikan Anda keduanya — kedua format tersebut tidak dapat berbagi bentuk yang disematkan. Buat konektor Folder Parquet dan sebuah Konektor Folder CSV mengarah ke jalur yang sama, masing-masing dengan pola penyertaan (include pattern) dan nama tabelnya sendiri.
Penggantian manifes (JSON)
Tersembunyi di balik Tampilkan opsi lanjutan, dan lebih berguna di Parquet daripada di tempat lain. Di tempat lain dalam keluarga ini, penggantian (override) adalah cara untuk memperbaiki sesuatu yang ditebak oleh konektor. Di sini tidak ada yang ditebak — jadi penggantian adalah cara untuk memperbaiki sesuatu yang saluran pipa Memang benar, dan itulah tepatnya kasus di mana Anda tidak bisa begitu saja memperbaiki file-file tersebut.
Tiga skenario mencakup hampir setiap penggunaan nyata. Sebuah job Spark yang diberi nama sebuah kolom. kolom_14 atau amt_net_x Dan tidak ada yang mau menulis itu dalam laporan. Sebuah kolom berisi sesuatu yang rahasia dan seharusnya tidak ada di dalam tabel sama sekali. Atau kolom numerik membutuhkan presisi lebih tinggi di dalam tabel daripada yang dideklarasikan dalam file. Ketiga hal tersebut hanyalah suntingan satu baris di sini, yang diterapkan saat bentuk tabel dikunci, sehingga menjadi bagian dari definisi tabel dan bukan sesuatu yang Anda terapkan kembali di setiap kueri.
{ "mengganti nama": { "qty": "kuantitas" }, "mengetik ulang": { "harga": "DECIMAL(18,4)" }, "mengecualikan": [ "catatan_internal" ] }
- mengganti nama — Beri nama kolom yang lebih baik. Anda tidak dapat mengganti nama kolom.
berkas sumberatau_id_baris, dan dua kolom tidak dapat diganti namanya menjadi hal yang sama. - mengetik ulang — Memaksa tipe kolom. Tipe yang Anda tetapkan di sini adalah instruksi yang disengaja, sehingga diterapkan tanpa pemeriksaan footer ketat yang seharusnya akan menahan file. Nama tipe biasa dengan presisi opsional saja:
DESIMAL(18,4),VARCHAR,BIGINT,TANGGAL. - mengecualikan — Menghapus kolom dari tabel sepenuhnya. Perlu diketahui bahwa kolom yang dikecualikan juga merupakan kolom yang tidak lagi diperhatikan oleh pemeriksaan pergeseran (drift check), jadi ini adalah cara yang tepat untuk mengabaikan kolom yang terus berubah dalam pipeline.
Kotak tersebut harus berisi objek JSON atau kosong sama sekali — JSON yang tidak valid akan ditolak saat Anda menyimpan, bukan diabaikan begitu saja. Mengosongkan kotak akan menghapus pengaturan penggantian Anda. dan mengembalikan tabel ke bentuk yang ditentukan oleh footer, yang merupakan cara yang dimaksudkan untuk membatalkan penimpaan daripada menghapus dan membangun kembali konektor.
Mengapa tidak ada opsi tata letak Tabel?
Folder CSV, Excel, dan JSONL menawarkan Tata letak tabel Pilihan — satu tata letak yang disematkan, atau satu tabel per tata letak — karena itulah format yang disusun manusia secara manual, dan sebuah folder berisi format tersebut benar-benar mengakumulasi berbagai set kolom yang berbeda selama bertahun-tahun. Parquet tidak memiliki pengaturan itu, dengan sengaja. Parquet pada dasarnya ditulis oleh mesin: sesuatu menghasilkan file-file tersebut secara terprogram, dan jika sesuatu itu mengeluarkan beberapa bentuk berbeda ke dalam satu folder, memisahkannya ke dalam tabel terpisah hanya akan menutupi masalah alur kerja daripada mengungkapkannya.
Jadi, sebuah folder Parquet hanya mendapatkan satu tabel, dan ketidaksepakatan dilaporkan daripada diakomodasi. Kolom yang hilang diserap ke dalam gabungan dan ditandai sebagai dapat bernilai null; terjadi konflik. jenis merupakan penolakan yang disebutkan namanya. Jika Anda benar-benar menyimpan beberapa dataset yang tidak terkait pada satu share, jawabannya adalah satu konektor per dataset, dengan cakupan tertentu. Sertakan pola — yang bagaimanapun juga lebih jelas, karena masing-masing kemudian mendapatkan nama tabelnya sendiri.
Batas penyerapan dan batas pemindaian
Keempat batasan penyerapan (baris dan byte, per file dan per sinkronisasi) dan batasan pemindaian (file per pemindaian, kedalaman, anggaran waktu, paralelisme per root) berlaku untuk semua jenis folder, dan berada di balik Tampilkan opsi lanjutan, dan ikuti satu aturan yang patut diulang: biarkan satu kotak kosong untuk menerima pengaturan default, karena angka nol tidak pernah berarti tak terbatas dan ditolak mentah-mentah. Nilai-nilai mereka dan alasan untuk mengangkat masing-masing nilai tersebut terdapat di dalam Panduan konektor Set File; hal-hal yang paling sering menjadi perhatian seorang editor Parquet tercantum dalam tabel pembatas di atas.
Parquet memang memiliki satu keunggulan di sini, seperti yang dijelaskan sebelumnya: karena jumlah baris ada di footer, batasan jumlah baris per file diperiksa sebelum data file dibaca, sehingga pelanggaran akan berupa penolakan yang diberi nama, bukan pemuatan yang gagal di tengah jalan. Menaikkan batasan tetap menjadi solusi terbaik kedua. Persempit pola penyertaan terlebih dahulu.
Memasukkan data Parquet ke Microsoft Excel
Permintaan di balik sebagian besar hal ini adalah mengkonversi Parquet ke Excel, dan jawaban jujurnya adalah Anda seharusnya tidak mengonversinya sama sekali. Setelah folder menjadi konektor, add-in Query Streams untuk Microsoft Excel menjalankan kueri yang tersimpan dan memasukkan baris ke dalam lembar kerja, yang diperbarui setiap kali Anda memintanya. Anda mendapatkan Parquet di Excel tanpa langkah konversi, tanpa kluster Spark, dan tanpa salinan data yang diam-diam tersimpan di folder Unduhan seseorang. Kueri yang sama berfungsi tanpa perubahan di Google Sheets.
Anda memerlukan akun Query Streams dan Network Agent yang berjalan pada mesin yang dapat melihat folder tersebut — server, workstation dengan share yang dipetakan, atau laptop Anda sendiri. Konektor Folder Parquet memerlukan Agen Jaringan 2.6 atau yang lebih baru.
- Instal agen dari halaman unduhan jika belum berjalan.
- Di portal, tambahkan konektor data dan pilih Folder Parket.
- Masukkan jalur folder seperti yang dilihat oleh mesin agen, dan beri nama tabel — kolom ini wajib diisi, karena semua isi folder akan digabungkan menjadi satu tabel.
- Biarkan pola include tetap aktif.
**/*.parketkecuali jika folder tersebut memuat lebih banyak data daripada yang Anda inginkan dalam tabel, dalam hal ini persempit tabelnya —**/bagian-*.parket, atau partisi tunggal sepertitahun=2026/**/*.parquet. - Simpan. Agen membaca footer hingga 64 file, menetapkan skema, dan melaporkan kolom serta tipe yang ditemukannya.
- Buka pembuat kueri, pilih konektor, dan tulis SQL — atau minta Nova AI untuk menuliskannya untuk Anda.
- Simpan kueri tersebut, lalu jalankan dari add-in Microsoft Excel atau Google Sheets setiap kali Anda membutuhkan angka-angka tersebut.
pesanan ekspor danau, atau jalur lokal di mesin agen itu sendiri, dan periksa apakah akun yang digunakan agen dapat membacanya. Ekspor data lake sering kali berada di bawah struktur folder partisi tanggal, jadi biarkan pengaturan kedalaman apa adanya kecuali jika struktur foldernya benar-benar lebih dalam dari delapan level.
Dari situ, folder tersebut berperilaku seperti sumber data lainnya. Folder tersebut dapat terhubung ke Microsoft SQL Server, PostgreSQL, MySQL, BigQuery, dan lainnya, serta ke konektor API seperti Stripe atau Shopify, sehingga tabel gudang data yang diarsipkan di berbagi file dapat digabungkan dengan data produksi langsung dalam satu pernyataan baca saja tanpa perlu memuat apa pun ke dalam gudang data terlebih dahulu.
Pertanyaan yang Sering Diajukan
Bagaimana cara membaca file Parquet tanpa Spark? +
Bisakah saya membuka file Parquet di Microsoft Excel? +
Apakah saya perlu memberi tahu Query Streams tentang tipe kolomnya? +
DESIMAL(18,2) Data dalam file tersebut masuk ke dalam tabel sebagai angka desimal yang tepat, tidak pernah sebagai angka desimal.
Apakah semua file Parquet memerlukan kolom yang identik? +
BATAL untuk file yang tidak memilikinya. Kolom dengan tipe berbeda di file yang berbeda disebut penolakan bernama — konektor memberi tahu Anda kolom dan kedua tipenya, bukan mengkonversi satu ke yang lain.
Pipeline saya menambahkan kolom. Apakah folder tersebut masih akan berfungsi? +
Mengapa salah satu berkas Parquet saya diparkir? +
file_kejadian dengan nama file dan perselisihan spesifik, dan setiap file lainnya terus disinkronkan.
Berapa banyak file Parquet yang dapat dibaca oleh satu konektor? +
Bisakah saya mengetahui dari file mana suatu baris berasal? +
berkas sumber menamai file-nya dan _id_baris mengidentifikasinya secara unik di seluruh tabel. Untuk Parquet, pengidentifikasi dibangun dari posisi ordinal sebenarnya dari baris di dalam file-nya, dengan tambahan nol sehingga pengurutan berdasarkan _id_baris Benar-benar mengurutkan baris sesuai urutan file. Pengelompokan berdasarkan berkas sumber Ini biasanya merupakan cara tercepat untuk menemukan partisi yang bertanggung jawab atas gambar yang terlihat salah.
Apa yang terjadi ketika pipeline menulis file bagian baru? +
file_kejadian.
Apakah data Parquet saya sudah diunggah atau dimodifikasi? +
PILIH, DENGAN, PRAGMA, MENGGAMBARKAN atau MENJELASKAN pernyataan — apa pun yang dapat menulis akan ditolak sebelum dijalankan.
Memulai
Lihat ke dalam folder file Parquet tersebut.
Arahkan agen ke folder dan kueri setiap file bagian sebagai satu tabel SQL — dengan nama dan tipe kolom yang persis sama seperti yang sudah dideklarasikan dalam file tersebut. Tanpa Spark, tanpa Python, dan tidak ada yang keluar dari jaringan Anda.
Panduan terkait: Cara melakukan query pada folder berisi file menggunakan SQL. | Gabungkan beberapa file CSV menjadi satu tabel. | Unduh Agen Query Streams | Semua panduan Konektor Set File
Kategori: Konektor Set Berkas
Tag: parquet ke excel, kueri file parquet, membaca parquet tanpa spark, folder parquet, parquet di excel, konektor folder parquet, sql pada parquet, ekspor data lake
Deskripsi Meta: Meng querying sebuah folder berisi file Parquet sebagai satu tabel SQL dan menariknya ke Microsoft Excel. Tanpa Spark, tanpa unggahan.

