Tutorial dlt: Pipeline Ingestion Data Berbasis Python
# Membangun Pipeline EL Berbasis Python dengan dlt (data load tool)
Sebagian besar tim data menghabiskan waktu yang tidak sedikit pada bagian pipeline yang kurang menarik: menarik data dari sebuah AP...
Membangun Pipeline EL Berbasis Python dengan dlt (data load tool)
Sebagian besar tim data menghabiskan waktu yang tidak sedikit pada bagian pipeline yang kurang menarik: menarik data dari sebuah API dan menempatkannya di warehouse dengan skema yang rapi. dlt (singkatan dari data load tool, dari dltHub) adalah pustaka Python ringan yang dibuat khusus untuk pekerjaan itu. Tutorial ini membahas cara kerjanya dan bagaimana ia melengkapi perkakas dbt serta Dagster yang mungkin sudah Anda gunakan.
Satu catatan soal penamaan, karena singkatannya rancu: dlt yang dibahas di sini adalah pustaka ingesti Python open-source dari dltHub. Ini bukan Delta Lake (format penyimpanan) dan bukanDLT milik PyTorch. Ketika kita menyebut dlt, yang dimaksud adalah pip install dlt.
Posisi dlt dalam Modern Data Stack
Modern analytics stack umumnya digambarkan sebagai EL + T: Extract dan Load data mentah dulu, lalu Transform di warehouse.
Extract + Load adalah ranah dlt. Ia membaca dari sumber (REST API, database, file, generator) dan menulis data ke warehouse tujuan, menangani inferensi skema, normalisasi, serta state inkremental untuk Anda.
Transform adalah tempat dbt bekerja. Setelah tabel mentah masuk ke warehouse, model dbt membentuknya menjadi mart yang bersih, teruji, dan terdokumentasi.
Orkestrasi adalah tempat Dagster (atau Airflow, cron, GitHub Actions) bekerja. Ia menentukan kapan extract-load dlt berjalan dan kapan transform dbt berjalan, serta menyambungkan dependensi di antaranya.
Jadi dlt tidak menggantikan dbt atau Dagster. Ia mengisi celah yang sengaja dibiarkan keduanya: memasukkan data mentah ke warehouse dengan andal, dalam Python murni, tanpa harus menyiapkan platform ingesti yang berat. Berbeda dari platform konektor seperti Fivetran atau Airbyte — bagus saat konektornya ada, canggung saat tidak ada — dlt membiarkan Anda menulis fungsi Python biasa yang menghasilkan (yield) record, mendekorasinya, lalu mendapat pipeline yang tangguh, sadar skema, dan inkremental. Jika Anda bisa memanggil sebuah API di Python, Anda bisa memuatnya dengan dlt.
Instalasi dan Penyiapan Proyek
dlt berjalan di mana saja Python 3.8+ berjalan. Pasang paket inti beserta extras untuk destinasi Anda.
# Pustaka inti
pip install dlt
Dengan dependensi destinasi tertentu
pip install "dlt[duckdb]" # analitik lokal, sangat baik untuk pengembangan
Berkas .dlt/secrets.toml otomatis ditambahkan ke .gitignore. Jangan pernah meng-commit-nya.
Konsep Inti: Resource, Source, Pipeline
dlt memiliki tiga blok bangunan yang perlu dipahami sebelum menulis kode.
Resource (@dlt.resource): fungsi yang menghasilkan data — biasanya baris atau halaman (page) record. Setiap resource dipetakan ke satu tabel di destinasi.
Source (@dlt.source): fungsi yang mengelompokkan beberapa resource terkait (misalnya semua endpoint dari satu API). Ia mengembalikan resource yang dikelolanya.
Pipeline (dlt.pipeline(...)): objek yang menghubungkan source ke destinasi, menjalankan pemuatan, dan melacak state (skema, cursor inkremental, riwayat run).