Extract transform load (ETL): sempadan aliran kerja ETL dan ELT
Oleh Ai Flowi · Diterbitkan
Extract transform load (ETL), iaitu pengekstrakan, transformasi dan pemuatan, ialah saluran data yang membaca rekod daripada sumber, mengubahnya kepada perwakilan yang dipersetujui dan menulis hasil yang diterima ke destinasi. ELT mengubah turutan: rekod yang diekstrak dimuatkan sebelum transformasi berlaku dalam persekitaran destinasi. Sempadan yang berguna ialah tempat pengesahan, rekod yang ditolak dan pemulihan dikendalikan, bukan sekadar alat yang memindahkan data.
Berkaitan: reverse ETL: fahami pengaktifan data operasi dan batas penulisan.
Maksud tiga peringkat tersebut
Pengekstrakan mengenal pasti rekod sumber yang tergolong dalam sesuatu kelompok dan membacanya tanpa mengubah maknanya secara senyap. Eksport CSV, pertanyaan pangkalan data atau respons API boleh membekalkan kelompok itu. Kekalkan rujukan sumber dan peraturan pemilihannya supaya pengendali kemudian dapat menjelaskan sebab sesuatu rekod disertakan.
Transformasi menggunakan kontrak destinasi: nama medan, jenis yang diterima, unit, nilai yang diperlukan dan peraturan penolakan. Pengecam yang mempunyai sifar di hadapan ialah teks walaupun mengandungi digit sahaja. Menukarkannya kepada nombor boleh memusnahkan maklumat sebelum pemuatan bermula. Simpan nilai mentah bersama nilai yang diubah apabila perubahan tersebut penting bagi audit atau pembetulan.
Pemuatan menulis rekod yang diterima dan menyemak perkara yang benar-benar disimpan oleh destinasi. Permintaan yang dihantar ialah bukti yang lebih lemah daripada penulisan yang disahkan. Jika respons hilang selepas penulisan, hasilnya tidak diketahui sehingga destinasi diperiksa; mengulangi permintaan dengan segera boleh menghasilkan pendua.
Satu kelompok rekaan, bersama keputusannya
Contoh sintetik untuk pembelajaran; baris dan kiraan ini bukan hasil aliran kerja yang direkodkan. Bayangkan eksport inventori yang kontraknya memerlukan ID item berbentuk teks dan kuantiti integer bukan negatif. Kelompok ini mengandungi empat baris. Setiap baris sumber menerima rujukan tetap yang bebas daripada ID itemnya.
| Baris sumber | ID item mentah / kuantiti | Keputusan | Calon pemuatan |
|---|---|---|---|
| A | “0017” / “4” | Kekalkan ID; sahkan dan tukar kuantiti. | “0017” / 4 |
| B | “0021” / “0” | Sifar memenuhi kontrak yang diisytiharkan ini. | “0021” / 0 |
| C | “0032” / “many” | Kuarantin: kuantiti bukan perwakilan integer. | Tiada calon. |
| D | “” / “2” | Kuarantin: ID yang diperlukan kosong. | Tiada calon. |
Kiraan pengekstrakan ialah empat; kiraan keputusan transformasi ialah dua diterima dan dua ditolak. Jika hanya A disahkan telah ditulis, pemuatan belum lengkap: satu baris yang diterima telah disahkan, manakala satu lagi masih tertunda atau tidak pasti. Jangan laporkan dua baris telah dimuatkan hanya kerana transformasi menghasilkan dua calon.
Artifak penolakan perlu menyimpan rujukan sumber, nilai mentah dan sebab yang khusus. Pembetulan C menghasilkan keputusan baharu yang telah disemak dan dipautkan kepada C; ia tidak sepatutnya memadamkan bukti cubaan pertama. Untuk konfigurasi pemindahan yang terperinci, ikuti CSV ke Google Sheets.
Apakah perbezaan antara ETL dengan ELT menggunakan rekod yang sama?
| Sempadan | ETL | ELT |
|---|---|---|
| Kandungan awal destinasi | Hanya calon pemuatan yang telah disemak memasuki jadual sasaran. | Empat baris mentah memasuki kawasan pementasan terkawal. |
| Transformasi | Pengesahan kuantiti dijalankan sebelum pemuatan ke sasaran. | Pengesahan kuantiti dijalankan pada rekod mentah yang dipentaskan. |
| Rekod yang ditolak | Disimpan di luar sasaran yang diterima. | Disimpan dalam pementasan bersama keputusan penolakan. |
| Bukti pemulihan | Salinan keadaan sumber pada waktu tertentu, keputusan dan penulisan yang disahkan. | Kelompok pementasan, versi transformasi dan keadaan sasaran yang diterbitkan. |
ELT bukan kebenaran untuk menerbitkan data yang belum disahkan. Kawasan pementasan memerlukan akses yang sesuai dan pembezaan yang jelas daripada jadual yang digunakan untuk pelaporan. ETL boleh menghalang rekod yang tidak sesuai daripada memasuki sasaran, tetapi masih memerlukan tempat yang selamat untuk menyimpan rekod yang ditolak. Kedua-dua turutan itu sahaja tidak membuktikan sokongan transaksi atau pemprosesan semula yang selamat.
Titik semak, penanda kemajuan dan pemprosesan semula
Penanda kemajuan menerangkan kemajuan melalui sumber yang berubah, seperti kedudukan kemas kini terakhir yang telah disemak. Titik semak merekodkan kerja yang telah selesai pada sempadan yang ditetapkan. Merekodkan kemajuan pengekstrakan sebelum mengesahkan pemuatan yang berkaitan boleh menyebabkan rekod dilangkau selepas kegagalan. Asingkan kemajuan pemilihan sumber daripada pengesahan destinasi.
Apabila beberapa rekod mempunyai masa kemas kini yang sama, cap masa sahaja mungkin tidak mengenal pasti sempadan yang lengkap. Tetapkan kaedah pemutus seri yang tetap atau bacaan bertindih dengan pengendalian pendua yang disengajakan. Perubahan lewat memerlukan dasar penyelarasan rekod tersendiri; penanda kemajuan yang lebih baharu tidak membuktikan rekod lama tidak akan berubah lagi.
Untuk pemprosesan semula, kenal pasti kelompok dan setiap rekod sumber. Tentukan sama ada data yang diproses semula perlu ditulis ganti, digabungkan, diabaikan atau disemak. Tindakan menambah rekod tidak dapat menetapkan dasar itu dengan sendirinya. Jika pemuatan separa gagal, periksa rekod destinasi yang telah disahkan dan cuba semula hanya mengikut peraturan pemulihan yang dipilih.
Mewakili sempadan inventori dalam pembina
Gunakan rujukan Load CSV, JSON Operations dan penulisan Google Sheets untuk antara muka bacaan, pemetaan dan destinasi dalam ilustrasi kelompok ini.
Keputusan khusus saluran ini ialah masa sesuatu baris sumber layak ditulis. A dan B layak di bawah kontrak inventori; C dan D kekal dalam lejar penolakan. Jangan hantar keempat-empat baris kepada komponen penulisan dan menganggap pemformatan destinasi akan melakukan pengesahan. Bagi saluran inventori yang dicadangkan ini, Load CSV, JSON Operations dan Append Rows didokumentasikan dalam katalog; belum diuji dalam persekitaran produksi oleh Ai Flowi. Konfigurasi gabungan bacaan, pemetaan dan penulisan ini belum diuji.
contoh konfigurasi, bukan ujian yang direkodkan
- Bekalkan eksport rekaan melalui Load CSV.
csv_file; periksa baris JSONnya sebelum memilih medan. - Untuk percubaan pemetaan yang telah disemak, tetapkan JSON Operations.
datakepada JSON sumber yang telah diperiksa dan pilih"JQ Expression"dalamoperations. Letakkan ungkapan pengesahan dan pemetaan baris yang telah disemak dalamquery; simpan rekod yang ditolak secara berasingan sebelum memilih calon pemuatan. - Append Rows menerima tatasusunan yang diluluskan dalam
values; pilih"RAW"bagivalue_input_optionuntuk mengekalkan perwakilan sel yang telah disemak semasa penulisan yang dicadangkan ini. Ikatrange_namekepada kawasan inventori,spreadsheet_idkepada dokumennya dangoogle_accountkepada sambungan yang dibenarkan. - Bandingkan nilai yang ditulis dengan lejar baris yang diterima sebelum menandakan kelompok sebagai lengkap.
Penyelarasan rekod memerlukan identiti baris serta jumlah keseluruhan. Destinasi yang mengandungi A dua kali mempunyai dua baris, tetapi belum memuatkan A dan B dengan betul. Bandingkan set rujukan sumber yang diterima dengan set rujukan destinasi yang disahkan, kemudian periksa kuantiti berdasarkan calon yang telah disemak. Kekalkan B sebagai tertunda jika penulisannya tidak dapat disahkan. Jumlah kelompok mungkin sepadan walaupun satu item tiada dan satu lagi direkodkan dua kali.
Gunakan panduan persediaan CSV ke helaian untuk prasyarat akaun dan sambungan; bawa eksport inventori yang dibenarkan ke pembina bagi ilustrasi kelompok ini. Kontrak inventori menggunakan peraturan yang jelas tanpa panggilan model; sebarang caj penyedia adalah di luar langganan Flowi.
Perubahan skema dan batasan
Jika lajur sumber hilang, berubah makna atau mula mencampurkan unit, hentikan proses pada sempadan kontrak yang terjejas. Penamaan semula medan hanya selamat apabila maknanya masih diketahui. Simpan versi skema dan tolak perubahan yang tidak dikenali, bukannya membenarkan lajur kosong dianggap sebagai data yang sah.
Kelompok ini memerlukan tiga artifak berasingan: rekod yang diterima, lejar penolakan dan bukti penulisan ke destinasi. Entri katalog ini tidak membuktikan adanya penangkapan perubahan data natif, pemuatan berbilang peringkat yang atomik atau penghantaran tepat sekali. Gunakan sistem dengan tingkah laku transaksi dan pemulihan yang telah disahkan apabila keperluan itu menentukan pelaksanaan tugas. Layari kes penggunaan yang didokumentasikan untuk mengetahui skop resipi sedia ada.
Istilah berkaitan
Pembersihan data menerangkan pembetulan dan nilai yang belum diselesaikan dalam transformasi. Integrasi API berkaitan dengan sempadan perkhidmatan yang boleh digunakan untuk pengekstrakan atau pemuatan.