Scheduled ETL Job
Scheduled ETL Job menyediakan penjadwalan otomatis untuk proses ETL. DocType ini menggabungkan ETL Data Source dan ETL Transform Map ke dalam pekerjaan terjadwal yang menjalankan ekstraksi dan transformasi secara otomatis.
Referensi Kolom
Konfigurasi Job
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Display Name | Data | Ya | Nama untuk job ini |
| Application | Link | Ya | Aplikasi tempat job ini berada |
| Active | Check | Tidak | Aktifkan/nonaktifkan eksekusi job (default: dicentang) |
Konfigurasi ETL
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Data Source | Link | Ya | ETL Data Source untuk mengekstrak data |
| Transform Map | Link | Ya | ETL Transform Map yang akan diterapkan selama transformasi |
Penjadwalan
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Event Frequency | Select | Ya | Seberapa sering dijalankan (All, Hourly, Daily, Weekly, Monthly, Yearly, Cron, Custom) |
| Time | Time | Tidak | Jam berapa dalam sehari untuk dijalankan (default: 00:00:00) |
Kolom Custom Frequency
Tersedia ketika Event Frequency = "Custom"
| Kolom | Tipe | Deskripsi |
|---|---|---|
| Custom Frequency | Select | Daily, Weekly, Monthly, atau Yearly |
| Weekday | Select | Hari dalam minggu (untuk Weekly) |
| Day | Select | Hari dalam bulan (untuk Monthly/Yearly) |
| Month | Select | Bulan (untuk Yearly) |
Jadwal Cron
Tersedia ketika Event Frequency = "Cron"
| Kolom | Tipe | Deskripsi |
|---|---|---|
| Cron Format | Data | Ekspresi cron standar (misalnya, "0 2 * * *" untuk setiap hari pada pukul 2 pagi) |
Cara Kerja ETL Jobs
Ketika Anda menyimpan ETL Job, sistem secara otomatis:
- Membuat Server Script dengan tipe event scheduler
- Menghasilkan kode eksekusi yang memanggil pipeline ETL:
mantera.run_etl_job("data_source_name", "transform_map_name") - Mengonfigurasi penjadwalan berdasarkan pengaturan Event Frequency
- Mengelola siklus hidup Server Script (update/delete ketika job berubah)
Eksekusi Pipeline ETL
Setiap eksekusi terjadwal:
- Mengekstrak data dari Data Source yang dikonfigurasi
- Membuat Import Batch dengan data yang diekstrak dalam chunk
- Menerapkan Transform Map untuk membuat/memperbarui record target
- Mencatat hasil dalam Transform Run dengan event detail
- Berjalan di background untuk menghindari memblokir sistem
Aksi
Run ETL Job
Secara manual memicu eksekusi job untuk tujuan testing. Job berjalan dalam antrian background dengan timeout 1 jam.
Opsi Frekuensi
Frekuensi Standar
- All: Berjalan setiap menit (gunakan dengan hati-hati)
- Hourly: Setiap jam pada menit ke-0
- Daily: Sekali per hari pada waktu yang ditentukan
- Weekly: Sekali per minggu pada hari Minggu pada waktu yang ditentukan
- Monthly: Sekali per bulan pada tanggal 1 pada waktu yang ditentukan
- Yearly: Sekali per tahun pada 1 Januari pada waktu yang ditentukan
Varian Long-Running
- Hourly Long, Daily Long, dll.: Jadwal yang sama tetapi dengan timeout diperpanjang untuk dataset besar
Penjadwalan Custom
Memberikan kontrol yang lebih granular:
- Daily: Tentukan waktu yang tepat
- Weekly: Pilih hari dalam minggu dan waktu
- Monthly: Pilih hari dalam bulan dan waktu
- Yearly: Pilih bulan, hari, dan waktu
Ekspresi Cron
Fleksibilitas penuh menggunakan sintaks cron standar:
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ day of week (0-6) (0 is Sunday)
│ │ │ └──── month (1-12)
│ │ └─────── day of month (1-31)
│ └────────── hour (0-23)
└───────────── minute (0-59
Contoh Konfigurasi
Impor Customer Harian
Display Name: Daily Customer Sync
Data Source: Customer Database Extract
Transform Map: Customer Import Mapping
Event Frequency: Daily
Time: 02:00:00
Laporan Sales Mingguan
Display Name: Weekly Sales Data
Data Source: Sales API Endpoint
Transform Map: Sales Record Transform
Event Frequency: Custom
Custom Frequency: Weekly
Weekday: Monday
Time: 08:00:00
Jadwal Cron Kompleks
Display Name: Business Hours API Sync
Data Source: External CRM API
Transform Map: Contact Data Transform
Event Frequency: Cron
Cron Format: 0 9,13,17 * * 1-5
(Berjalan pada pukul 9 pagi, 1 siang, dan 5 sore pada hari kerja)
Monitoring Jobs
Status Job
- Job aktif muncul dalam daftar Server Script dengan nama yang sesuai
- Job tidak aktif memiliki Server Scripts yang dinonaktifkan
- Log eksekusi job muncul dalam DocType Scheduled Job Log
Troubleshooting
- Periksa Error Log untuk kegagalan background job
- Tinjau record ETL Transform Run untuk detail pemrosesan
- Monitor status ETL Import Batch untuk masalah ekstraksi
- Verifikasi Data Connection aktif dan dapat diakses
Praktik Terbaik
Penjadwalan
- Hindari eksekusi yang tumpang tindih untuk sumber data yang sama
- Jadwalkan selama jam lalu lintas rendah untuk performa yang lebih baik
- Gunakan timeout yang sesuai untuk ukuran volume data
- Pertimbangkan zona waktu saat mengatur waktu eksekusi
Penanganan Error
- Monitor log eksekusi job secara teratur
- Siapkan notifikasi email untuk error kritis
- Uji dengan dataset kecil sebelum menjalankan produksi penuh
- Siapkan prosedur rollback untuk masalah kualitas data
Performa
- Optimalkan ukuran chunk berdasarkan volume data
- Buat indeks pada kolom coalesce dalam target DocTypes
- Gunakan ekstraksi inkremental jika memungkinkan
- Arsipkan Import Batches dan Transform Runs lama secara berkala
Pertimbangan Keamanan
- ETL Jobs mewarisi izin dari sistem Server Script
- Eksekusi background berjalan dengan hak akses tingkat sistem
- Pastikan validasi data yang tepat dalam Transform Maps
- Monitor perubahan jadwal yang tidak sah
- Gunakan koneksi SSL untuk semua sumber data eksternal
DocTypes Terkait
- ETL Data Source: Mendefinisikan data apa yang akan diekstrak
- ETL Transform Map: Mendefinisikan cara mentransformasi dan memuat data
- Server Script: Script scheduler yang dibuat secara otomatis
- ETL Import Batch: Dibuat untuk setiap eksekusi job
- ETL Transform Run: Mencatat setiap operasi transformasi