Data Source
ETL Data Source mendefinisikan data apa yang akan diekstrak dari ETL Data Connection. Ini menentukan sumber (tabel atau query) dan parameter ekstraksi seperti segmentasi dan filtrasi.
Referensi Kolom
Konfigurasi Dasar
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Source Name | Data | Ya | Pengenal unik untuk sumber data ini |
| Source Kind | Select | Ya | Tipe sumber data (SQL Table, SQL Query, REST) |
| Data Connection | Link | Ya | ETL Data Connection yang akan digunakan |
| Application | Link | Ya | Aplikasi tempat sumber data ini berada |
| Active | Check | Tidak | Aktifkan/nonaktifkan sumber ini (default: dicentang) |
Konfigurasi SQL Table
Tersedia ketika Source Kind = "SQL Table"
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Schema Name | Data | Tidak | Skema database yang berisi tabel |
| Table Name | Data | Ya | Nama tabel yang akan diekstrak |
| Select Fields | Long Text | Tidak | Daftar kolom, dipisahkan koma (default: *) |
| Distinct | Check | Tidak | Tambahkan klausa DISTINCT ke query |
| Where Clause | Code | Tidak | Kondisi SQL WHERE tanpa kata kunci "WHERE" |
| Order By | Data | Tidak | Klausa SQL ORDER BY tanpa kata kunci "ORDER BY" |
| Limit Rows | Int | Tidak | Jumlah maksimum baris yang akan diekstrak |
Konfigurasi SQL Query
Tersedia ketika Source Kind = "SQL Query"
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| SQL Query | Code | Ya | Statement SELECT lengkap yang akan dieksekusi |
Catatan Keamanan: Hanya statement SELECT yang diizinkan. Sistem memvalidasi dan memblokir operasi INSERT, UPDATE, DELETE, dan operasi berbahaya lainnya.
Konfigurasi Runtime
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Chunk Size | Int | Tidak | Jumlah record per segmen (default: 1000) |
| Max Rows | Int | Tidak | Jumlah maksimum total record yang akan diekstrak |
Pembuatan SQL Query
Untuk sumber SQL Table, sistem menghasilkan query dalam format ini:
SELECT [DISTINCT] {select_fields}
FROM {schema_name}.{table_name}
WHERE {where_clause}
ORDER BY {order_by}
LIMIT {limit_rows}
Aksi
Pratinjau Data
Mengekstrak sampel kecil (10 record) untuk memverifikasi konfigurasi sumber data tanpa membuat batch impor penuh.
Extract to Staging
Memulai proses ekstraksi penuh:
- Membuat sebuah ETL Import Batch
- Mengekstrak data dalam segmen berdasarkan Chunk Size
- Menyimpan data mentah sebagai JSONL dalam ETL Import Chunks
- Mengembalikan nama batch untuk transformasi
Contoh Penggunaan
Contoh SQL Table
- Source Kind: SQL Table
- Schema Name: public
- Table Name: customers
- Select Fields: customer_id, name, email, created_date
- Where Clause:
active = true AND created_date >= '2024-01-01' - Order By: created_date DESC
- Chunk Size: 500
Contoh SQL Query
- Source Kind: SQL Query
- SQL Query:
SELECT c.customer_id, c.name, c.email, COUNT(o.order_id) as order_count
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
WHERE c.active = true
GROUP BY c.customer_id, c.name, c.email
HAVING COUNT(o.order_id) > 0
Pertimbangan Performa
- Chunk Size: Seimbangkan antara penggunaan memori dan jumlah operasi database
- Max Rows: Gunakan untuk testing guna membatasi volume data
- Indexing: Pastikan kolom ORDER BY diindeks untuk performa yang lebih baik
- Where Clauses: Tambahkan filter selektif untuk mengurangi volume data