Menggabungkan Beberapa File CSV Menjadi Satu Tabel
Hentikan penggabungan ekspor secara manual. Arahkan Query Streams ke folder dan setiap CSV di dalamnya akan menjadi satu tabel SQL yang dapat dikueri — file baru bergabung secara otomatis, dan Anda tetap dapat mengetahui dari file mana setiap baris berasal.
JUMLAH (pendapatan)
DARI penjualan
KELOMPOKKAN BERDASARKAN wilayah;
Query Streams adalah platform integrasi basis data real-time yang aman yang mengubah seluruh folder file CSV menjadi satu tabel SQL langsung yang dapat Anda kueri dari Microsoft Excel, Google Sheets, Airtable, dan asisten AI Anda. Pelajari selengkapnya di QueryStreams.com dan Daftar gratis untuk menggabungkan folder CSV pertama Anda dalam hitungan menit.
Menggabungkan file CSV adalah salah satu pekerjaan yang terlihat sepele sampai Anda benar-benar melakukannya. Menyalin dan menempel (copy-paste) bisa dilakukan untuk tiga file. Untuk tiga puluh file, hanya butuh satu sore. Untuk tiga ratus file, itu menjadi skrip yang harus dipelihara oleh seseorang, dan untuk tiga ribu file, itu menjadi alur data yang tidak ingin dimiliki siapa pun.
Bagian yang merepotkan adalah pekerjaan itu tidak pernah selesai. Ekspor baru akan datang besok, jadi apa pun yang Anda gabungkan hari ini sudah usang. A Konektor Folder CSV Hal itu diatasi dengan tidak pernah membuat file gabungan sama sekali. Ia menyajikan folder sebagai tabel SQL secara langsung. Tambahkan file dan file tersebut akan langsung ada di tabel pada sinkronisasi berikutnya.
Bagaimana cara ini berbeda dari cara-cara biasa untuk menggabungkan file CSV?
Ada banyak cara untuk menggabungkan file CSV. Perbedaan yang penting adalah apakah Anda akhirnya mendapatkan hasil yang sama. artefak gabungan yang menjadi basi, atau tampilan langsung itu tidak.
| Mendekati | Tetap terkini | Berapa biayanya bagi Anda? |
|---|---|---|
| Salin dan tempel di Microsoft Excel | TIDAK | Setiap kali harus manual, dan batasan jumlah baris akan membatasi Anda hingga sekitar satu juta baris. |
| Power Query “Dari Folder” | Saat disegarkan | Berada di dalam satu buku kerja, perlu disegarkan, dan memuat setiap baris ke dalam file. |
| Skrip Python atau PowerShell | Saat berjalan | Seseorang memiliki, menjadwalkan, dan memperbaiki kesalahan (debugging) program tersebut — biasanya orang yang menulisnya. |
| Penggabungan CSV online | TIDAK | Anda mengunggah data Anda ke server orang asing. Untuk hal-hal yang bersifat komersial, di situlah percakapan berakhir. |
| Folder CSV Aliran Kueri | Selalu | Tidak ada yang digabungkan, diunggah, atau disalin — folder tersebut dicari di lokasi asalnya. |
Perbedaan praktis lainnya adalah jangkauan. Penggabungan Power Query hanya terdapat di buku kerja yang memilikinya. Konektor Query Streams adalah sumber data, sehingga tabel gabungan yang sama tersedia di Microsoft Excel, Google Sheets, Airtable, Smartsheet, Nova AI, dan asisten AI Anda secara bersamaan — dan itu bergabung dengan basis data Anda yang sudah ada seperti meja lainnya.
Apa yang terjadi pada sinkronisasi pertama?
Query Streams mengambil sampel hingga 64 file dalam folder dan menentukan tiga hal yang harus disepakati: pengkodean karakter, itu dialek (pemisah, karakter kutipan, karakter escape, ada atau tidaknya baris header) dan kolom dan jenisnyaBentuk yang disepakati itu menjadi definisi tabel, dan itu ditetapkan — dituliskan dan dipertahankan sejak saat itu.
Persetujuan diperlukan, bukan diasumsikan. Jika setengah dari file dipisahkan koma dan setengahnya lagi dipisahkan titik koma, konektor menolak untuk menyematkan dan memberi tahu Anda file mana yang tidak sepakat dan bagaimana, daripada memilih pemenang dan diam-diam mengabaikan sisanya. Hal yang sama berlaku untuk tipe: jika ID pesanan adalah angka di sebagian besar berkas dan teks dalam satu berkas, itu adalah penolakan yang disebutkan namanya, bukan penolakan diam-diam.
Setelah dikunci, setiap file dibaca secara ketat berdasarkan definisi tersebut. Baris yang tidak sesuai dengan tipe yang dikunci tidak akan pernah dipaksa atau dilewati — file tempat baris tersebut berada akan diparkir, yang akan dibahas lebih lanjut di bawah ini.
Pengkodean karakter, hal yang paling sering menyebabkan kegagalan penggabungan.
Jika Anda pernah menggabungkan file CSV dan akhirnya mendapatkan hasil seperti ini: é di mana sebuah é Jika berupa, atau tanda pagar yang rusak, berarti Anda telah menemukan masalah pengkodean. Hal ini terjadi karena sebagian besar alat penggabungan menganggap setiap file berformat UTF-8, dan ekspor dari aplikasi Windows seringkali tidak demikian.
Query Streams mendeteksi pengkodean per file daripada mengasumsikannya. Ia memeriksa tanda urutan byte (byte order mark/BOM) terlebih dahulu, kemudian mencoba dekode UTF-8 yang ketat; jika gagal, ia memperlakukan file tersebut sebagai Windows-1252, yang sebenarnya merupakan pengkodean sebagian besar ekspor Windows tanpa BOM. File yang tidak dapat dibaca secara native dialirkan melalui transcoder dalam potongan 64 KB, sehingga file berukuran 2 GB tidak perlu memuatnya ke dalam memori.
| Pengkodean | Juga diterima sebagai | Sumber umum |
|---|---|---|
utf-8 | utf8 | Ekspor modern, sebagian besar basis data, apa pun yang dihasilkan web. |
cp1252 | jendela-1252 | Microsoft Excel “Simpan sebagai CSV” di Windows, sistem bisnis lama. |
latin-1 | latin1, iso-8859-1 | Ekstraksi sistem dan komputer mainframe Eropa yang lebih lama |
utf-16le | utf-16, utf16 | Teks Unicode Excel, pengalihan PowerShell |
utf-16be | - | Beberapa ekspor Java dan mainframe |
Pengkodean harus konsisten di seluruh folder. Pengkodean campuran adalah penolakan bernama yang mencantumkan file mana yang terdeteksi sebagai apa, sehingga Anda dapat memperbaiki file yang berbeda, mengecualikannya, atau mengaturnya. pengkodean secara eksplisit dan memastikan setiap file dibaca dengan cara yang sama.
Kolom keuangan tetap akurat.
Yang satu ini agak halus dan patut diperhatikan sejenak, karena ini adalah cara senyap data CSV yang digabungkan bisa mengalami kesalahan.
File CSV tidak memiliki tipe — 19.99 Hanya terdiri dari empat karakter. Sebagian besar alat menginferensikan angka floating point, yang tidak dapat merepresentasikan sebagian besar jumlah desimal secara tepat. Jumlahkan beberapa ratus ribu baris mata uang floating point dan totalnya akan bergeser satu atau dua sen, yang merupakan jenis kesalahan yang akan diperhatikan oleh seorang akuntan, bukan oleh Anda.
Query Streams memeriksa teks sebenarnya. Ketika setiap nilai yang diambil sampelnya dalam kolom yang tampak numerik adalah desimal biasa dengan tidak lebih dari empat digit setelah titik desimal dan tidak lebih dari empat belas digit sebelum titik desimal, kolom tersebut ditetapkan sebagai kolom yang bermasalah. desimal tepat alih-alih angka desimal, teks diuraikan langsung sebagai angka desimal pada saat dibaca. Jumlah total kemudian dijumlahkan hingga sen.
Ketika satu berkas tidak cocok dengan berkas lainnya
Folder ekspor mengalami pergeseran. Seseorang menambahkan kolom di bulan September, sistem mengubah format tanggal, satu file disimpan dari alat yang berbeda. Ketika sebuah file tidak lagi sesuai dengan bentuk yang disematkan, maka file tersebut diparkir: baris-barisnya tetap berada di luar tabel, alasannya dicatat, dan setiap file lainnya tetap disinkronkan secara normal.
Header diperiksa terlebih dahulu sehingga alasannya spesifik. Anda mendapatkan "kolom" kode diskon "Terdapat di header tetapi tidak di tabel yang disematkan" alih-alih ketidaksesuaian jumlah kolom yang harus Anda diagnosis sendiri. Nama header yang duplikat, kolom yang sebelumnya ada dalam file tetapi sekarang telah dihapus, dan baris terakhir yang terpotong semuanya terdeteksi dengan cara yang sama.
SELECT relative_path, detail, occurred_at FROM files_events WHERE event_type = 'drift' ORDER BY occurred_at DESC;
Berkas yang sebagian sudah ditulis adalah kasus khusus yang perlu diketahui. Jika ekspor masih sedang ditambahkan saat sinkronisasi berjalan, baris terakhir akan tidak lengkap. Alih-alih memasukkan baris yang utuh dan membuat Anda bertanya-tanya mengapa berkas terlihat pendek, seluruh berkas akan disimpan dan diambil secara lengkap pada proses berikutnya setelah ukurannya berhenti berubah. Oleh karena itu, sebuah berkas selalu dimasukkan seluruhnya atau dikeluarkan seluruhnya, tidak pernah setengahnya.
Ketika folder tersebut benar-benar berisi beberapa tata letak
Terkadang file-file tersebut memang seharusnya berbeda. Folder ekspor mungkin berisi pesanan, pengembalian dana, dan pengiriman berdampingan. Daripada memaksanya menjadi satu bentuk atau membuat Anda membuat tiga konektor, ubah tata letak tabel dari disematkan ke satu meja per tata letakQuery Streams mengelompokkan file berdasarkan kolom yang sebenarnya dimilikinya dan memberikan setiap kelompok tabelnya sendiri, hingga 25 tata letak yang berbeda.
Nama tabel berasal dari file itu sendiri — pola nama file yang sama menjadi nama tabel, jadi sekelompok orders_2026_*.csv berkas masuk ke dalam tabel yang disebut pesananNama akan tetap sama saat pertama kali diberikan, jadi tabel yang sudah dirujuk oleh kueri tersimpan Anda tidak akan diubah namanya di bawahnya.
Setiap baris mengingat dari file mana ia berasal.
Inilah yang hilang dari file yang digabungkan dan selalu Anda inginkan. Menggabungkan seribu file CSV itu mudah; yang sulit adalah menentukan file mana dari seribu file tersebut yang menyumbang angka yang tampak salah.
Setiap baris dalam tabel Folder CSV berisi sebuah berkas sumber kolom yang menyebutkan nama file asalnya, dan sebuah _id_baris Nilai tersebut unik di seluruh tabel dan diurutkan berdasarkan posisi di dalam file. Keduanya dapat diakses seperti kolom lainnya.
SELECT _source_file, COUNT(*) AS row_count, SUM(revenue) AS revenue FROM sales GROUP BY _source_file ORDER BY _source_file;
Karena seluruh folder merupakan satu tabel, pertanyaan lintas file menjadi SQL biasa. Membandingkan bulan ini dengan bulan yang sama tahun lalu adalah sebuah DI MANA klausa, bukan latihan membuka dua buku kerja berdampingan.
Semua pengaturan CSV, dan kapan harus mengubahnya.
Ini adalah pengaturan khusus untuk folder CSV. Pengaturan yang dimiliki semua jenis folder — folder root, pola penyertaan dan pengecualian, interval pemindaian, hashing, pengaman, dan penggantian manifes — didokumentasikan di panduan konektor File Set.
Hal penting yang perlu dipahami terlebih dahulu: Semua ini akan terdeteksi untuk Anda pada sinkronisasi pertama dan kemudian disematkan.Anda hanya mengatur satu nilai untuk mengesampingkan deteksi, atau untuk memaksakan konsistensi di seluruh folder yang tidak sepenuhnya seragam. Setelah ditetapkan, pengaturan tidak akan pernah ditebak ulang per file — itulah sebabnya file yang berhenti cocok akan diparkir dan dilaporkan daripada dibaca ulang secara diam-diam dengan cara yang berbeda.
Nama tabel
Wajib. Ini adalah nama tabel gabungan Anda dalam SQL — penjualan, pengiriman, apa pun isi folder sebenarnya. Huruf, angka, dan garis bawah, tidak diawali dengan angka. Pilih sesuatu yang bermakna sekarang: ini adalah nama yang akan digunakan setiap kueri yang disimpan, pertanyaan Nova, dan penyegaran spreadsheet.
Pembatas
Default: koma. Atur ini saat file Anda sebenarnya tidak dipisahkan oleh koma — titik koma hampir universal dalam ekspor Eropa, tab umum digunakan dalam alat basis data, dan tanda pipa muncul dalam ekstrak mainframe. Ketik karakter itu sendiri, jadi ; atau |; untuk tab, sebagian besar ekspor berfungsi dengan deteksi sehingga Anda jarang membutuhkannya.
Mengapa Anda harus menimpa (override) daripada membiarkannya mendeteksi sendiri: Deteksi membutuhkan kesesuaian antara file yang diambil sampelnya. Jika sebuah folder berisi beberapa file dengan pemisah koma di antara file dengan pemisah titik koma, deteksi akan menolak dan tidak memilih salah satu yang benar. Dengan menetapkan pemisah secara eksplisit, deteksi akan memberi tahu file mana yang benar, dan file yang berbeda kemudian akan diblokir dengan alasan yang jelas, bukan memblokir seluruh konektor.
Kutipan karakter
Default: tanda kutip ganda. Ini adalah karakter yang membungkus bidang yang berisi pembatas — alasannya "Smith, John" Tetap dalam satu kolom. Ubah hanya untuk ekspor yang tidak biasa yang menggunakan tanda kutip tunggal. Jika Anda melihat alamat terpisah di beberapa kolom, inilah pengaturan yang perlu Anda periksa.
Baris pertama adalah judul.
Pengaturan default: aktif. Biarkan opsi ini aktif untuk semua data yang dihasilkan oleh manusia atau alat pelaporan. Matikan opsi ini untuk ekstrak tanpa header, di mana kolom menjadi berdasarkan posisi dan Anda mendapatkan nama generik yang dapat Anda ganti dengan penggantian manifes.
Kesalahan dalam pengaturan ini mudah terlihat dan tidak berbahaya: jika diaktifkan secara salah, baris data pertama akan hilang dan menjadi nama kolom. Jika dinonaktifkan secara salah, header sebenarnya akan muncul sebagai baris teks dan memaksa setiap kolom menjadi teks.
Pengkodean
Default: deteksi otomatis, yang hampir selalu merupakan jawaban yang benar — ia memeriksa tanda urutan byte, memvalidasi UTF-8 yang ketat dan kembali ke heuristik Windows-1252, kemudian menetapkan hasilnya. Pilihan eksplisitnya adalah UTF-8, Windows-1252 (cp1252), UTF-16 LE dan Latin-1.
Kapan harus menimpa (override): ketika deteksi gagal karena file yang diambil sampelnya tidak sesuai, dan Anda tahu mana yang benar. UTF-16 LE Hal ini perlu diketahui secara khusus — ini adalah apa yang ditulis Excel ketika Anda memilih "Teks Unicode", dan file-nya dimulai dengan byte yang sama sekali tidak terlihat seperti apa pun bagi pembaca awam.
Satu perbedaan yang disengaja: Windows-1252 dan Latin-1 adalah bukan keduanya diperlakukan sebagai hal yang sama, karena mereka tidak sepakat mengenai rentang yang memuat tanda kutip pintar, yaitu simbol euro dan tanda hubung. Memilih salah satu dari keduanya akan berakibat fatal. € menjadi karakter kontrol alih-alih menimbulkan kesalahan, jadi pilihlah karakter yang sebenarnya ditulis oleh eksportir Anda.
String kosong
Default: tidak ada. Satu nilai per baris. Setiap alat ekspor memiliki cara penulisan "tidak ada nilai" yang berbeda-beda — BATAL, Tidak tersedia, NA, -, #TidakTersedia, (tidak ada) — dan tanpa ini, teks tersebut akan sampai sebagai teks literal.
Mengapa hal ini lebih penting daripada yang terlihat: satu Tidak tersedia pada kolom numerik memaksa seluruh kolom menjadi teks, lalu JUMLAH() berhenti berfungsi dan pengurutan menjadi alfabetis. Mencantumkan placeholder di sini biasanya merupakan perbedaan antara kolom numerik dan kolom teks.
Format tanggal
Default: tidak ada — Tanggal ditentukan secara otomatis. Tetapkan opsi ini ketika urutan hari dan bulan tidak jelas, yang merupakan kesalahan tersembunyi paling merusak dalam penggabungan CSV: 03/04/2026 Tanggalnya adalah 3 April atau 4 Maret, tergantung siapa yang menulisnya, dan tidak ada keterangan dalam berkas tersebut.
%Y-%m-%d 2026-08-24 %d/%m/%Y 24/08/2026 (hari pertama - Inggris, Uni Eropa) %m/%d/%Y 08/24/2026 (bulan pertama - AS) %d-%b-%Y 24-Agustus-2026 %Y%m%d 20260824
Formatnya dikunci seperti hal lainnya, jadi file yang berhenti sesuai dengan format tersebut akan dihentikan sementara dan dilaporkan, alih-alih diinterpretasikan ulang dengan pembacaan angka yang sama secara berbeda. Itulah perilaku yang Anda inginkan di sini — tanggal yang dibalik secara diam-diam jauh lebih buruk daripada file yang baru Anda ketahui.
Tata letak tabel
Default: satu tata letak yang disematkan, yang mengharapkan setiap CSV dalam cakupan memiliki kolom yang sama. Beralih ke satu meja per tata letak ketika folder tersebut benar-benar telah mengumpulkan berbagai set kolom yang berbeda dari waktu ke waktu dan Anda menginginkan semuanya daripada penolakan — setiap tata letak yang berbeda mendapatkan tabelnya sendiri, hingga 25 tabel.
Mengubah ini akan mengambil sampel ulang folder dan membangun ulang, sesuai desainnya. Nama tabel yang sudah digunakan akan tetap digunakan, sehingga kueri tersimpan yang sudah ada tetap berfungsi.
Menyiapkannya
Anda memerlukan akun Query Streams dan Network Agent yang terpasang di suatu tempat yang dapat melihat folder tersebut — server, workstation dengan share yang sudah dipetakan, atau laptop Anda sendiri. Konektor Folder CSV 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 CSV.
- Masukkan jalur folder seperti yang dilihat oleh mesin agen. Tambahkan pola file seperti
penjualan_*.csvjika folder tersebut memuat lebih banyak data daripada yang ingin Anda gabungkan. - Biarkan pengaturan encoding dan delimiter tetap otomatis kecuali Anda sudah tahu bahwa folder tersebut tidak konsisten.
- Simpan. Agen tersebut mengambil sampel folder, menyematkan bentuknya, dan melaporkan berapa banyak file yang ditemukan serta kolom-kolomnya.
- Buka pembuat kueri, pilih konektor, dan kueri tabel — atau minta Nova AI untuk menuliskan SQL untuk Anda.
\\fileserver\ekspor\penjualan, atau jalur lokal pada mesin agen itu sendiri, dan periksa apakah akun yang digunakan agen tersebut dapat membacanya.
Di mana tabel gabungan dapat ditempatkan
- Microsoft Excel dan Google Sheets — Jalankan kueri dari add-in dan baris yang digabungkan akan muncul di lembar kerja, diperbarui sesuai permintaan.
- Airtable, Smartsheet, Baserow, SeaTable dan Anvil — Sinkronisasi terjadwal mengirimkan data gabungan ke alat yang sudah digunakan tim Anda.
- Nova AI — Ajukan pertanyaan dalam bahasa Inggris sederhana dan terapkan SQL di setiap file, beserta grafik.
- Claude, Cursor, ChatGPT dan Grok — melalui server Query Streams MCP, asisten AI dapat melakukan kueri folder secara langsung.
- API REST — mengubah tabel gabungan menjadi titik akhir untuk mitra atau aplikasi internal.
Dan karena ini adalah konektor biasa, tabel CSV gabungan akan bergabung dengan data Anda yang lain. Sebuah folder ekspor pengiriman dapat digabungkan ke tabel pesanan di PostgreSQL dan ke pembayaran Stripe dalam satu pernyataan baca saja, tanpa perlu memuat apa pun ke dalam gudang data terlebih dahulu.
Pertanyaan yang Sering Diajukan
Bagaimana cara menggabungkan beberapa file CSV menjadi satu tabel? +
penjualan_*.csvSetiap berkas yang cocok menjadi bagian dari satu tabel SQL. Tidak ada yang digabungkan ke dalam berkas baru — folder tersebut dicari di tempatnya berada, sehingga berkas yang ditambahkan kemudian akan disertakan secara otomatis.
Berapa banyak file CSV yang dapat digabungkan sekaligus? +
Apakah semua file CSV memerlukan kolom yang sama? +
Bisakah program ini menangani file yang dipisahkan oleh titik koma, tab, atau pipa? +
Mengapa karakter beraksen terlihat salah saat saya menggabungkan file CSV di tempat lain? +
pengkodean.
Akankah nilai mata uang tetap akurat? +
Apa yang terjadi ketika file CSV baru ditambahkan ke folder? +
file_kejadian.
Bisakah saya mengetahui dari file mana suatu baris berasal? +
berkas sumber kolom yang menamai file-nya dan sebuah _id_baris unik di seluruh tabel. Pengelompokan berdasarkan berkas sumber Memberikan Anda jumlah baris dan total per file, yang biasanya merupakan cara tercepat untuk menemukan ekspor yang bertanggung jawab atas angka yang terlihat salah.
Apakah file CSV saya sudah diunggah atau dimodifikasi? +
Memulai
Hentikan penggabungan file CSV secara manual.
Arahkan agen ke folder tersebut sekali dan kueri setiap ekspor sebagai satu tabel — dari Microsoft Excel, Google Sheets, Airtable, atau asisten AI Anda. File baru bergabung secara otomatis, dan data Anda tidak pernah meninggalkan jaringan Anda.
Panduan terkait: Cara melakukan query pada folder berisi file menggunakan SQL. | Unduh Agen Query Streams | Semua panduan Konektor Set File
Kategori: Konektor Set Berkas
Tag: menggabungkan file csv, menggabungkan beberapa file csv menjadi satu, konektor folder csv, kueri csv dengan sql, csv ke excel, pengkodean csv
Deskripsi Meta: Menggabungkan beberapa file CSV ke dalam satu tabel SQL langsung. Tanpa penggabungan, tanpa unggahan, file baru bergabung secara otomatis.

