Parameter penjadwalan berfungsi sebagai nilai dinamis dalam konfigurasi node sinkronisasi data—menggantikan tanggal statis, nama tabel, atau nilai bidang dengan nilai yang dihitung saat runtime berdasarkan waktu data node tersebut. Topik ini mencakup empat skenario umum: menyinkronkan data inkremental, menangani nama tabel atau file dinamis, menentukan bidang tujuan, dan mengisi ulang data historis.
Sebelum memulai
Sebelum mengklik Run atau Run with Parameters di bilah alat atas pada tab konfigurasi node sinkronisasi batch, tetapkan secara manual nilai konstan ke variabel yang dirujuk dalam kode node. Data Integration tidak mendukung pengujian asap pada node sinkronisasi batch di lingkungan pengembangan.
Untuk memverifikasi bahwa parameter penjadwalan diganti sesuai harapan, gunakan salah satu metode berikut:
-
Lakukan pengujian asap pada node SQL yang menggunakan parameter penjadwalan yang sama. Jika node SQL berhasil, berarti parameter telah dikonfigurasi dengan benar. Untuk detailnya, lihat Konfigurasikan dan gunakan parameter penjadwalan.
-
Komit node ke Operation Center di lingkungan pengembangan.
Ikhtisar skenario
| Skenario | Plugin Reader yang didukung (contoh) | Detail |
|---|---|---|
| Sinkronisasi data inkremental | MySQL Reader, LogHub Reader, Kafka Reader | Skenario 1 dan Skenario 4 |
| Sinkronisasi data dari tabel atau file dengan nama dinamis | Object Storage Service (OSS) Reader, FTP Reader, MySQL Reader | Skenario 2 |
| Menetapkan nilai konstan atau berbasis waktu ke bidang tujuan | Bervariasi tergantung sumber data | Skenario 3 |
Skenario 1: Sinkronisasi data inkremental
Parameter penjadwalan dalam kondisi filter berfungsi sebagai batas waktu dinamis: saat runtime, setiap ekspresi diganti dengan tanggal aktual yang diturunkan dari waktu data node. Hal ini memastikan setiap eksekusi hanya membaca data yang dihasilkan dalam jendela waktu target, sehingga menghindari pemuatan ulang penuh. Pastikan sintaksis kondisi filter didukung oleh sumber data.
Untuk informasi lebih lanjut, lihat Skenario: Konfigurasikan task sinkronisasi data offline inkremental.
Rentang waktu yang digunakan dalam kondisi filter merupakan interval tertutup-kiri dan terbuka-kanan.
Contoh 1: Sinkronkan data LogHub setiap 10 menit ke partisi MaxCompute T-1
Node menghasilkan instans penjadwalan setiap 10 menit. $bizdate menentukan waktu data node sinkronisasi data, dan ekspresi filter partisi diselesaikan menjadi batas jendela 10 menit yang sesuai saat runtime.
Poin kunci konfigurasi task: Atur Data Source ke LogHub, atur Log Start Time ke ${startTime}, dan atur Log End Time ke ${endTime}. Atur Data Destination ke MaxCompute (ODPS), atur Partition ke pt = ${bizdate}, dan atur Write Mode ke Insert Overwrite. Dalam konfigurasi penjadwalan, definisikan parameter berikut:
bizdate=$bizdatestartTime=${yyyymmddh24miss-10/24/60}endTime=${yyyymmddh24miss}
Atur Scheduling Cycle ke Day dan Scheduled Time ke 00:05.
Contoh 2: Sinkronkan data LogHub hari sebelumnya ke partisi MaxCompute T-1 setiap pukul 00:00
Kondisi filter menggunakan $bizdate untuk mengambil semua data yang dihasilkan pada hari sebelumnya. Rentang waktu merupakan interval tertutup-kiri dan terbuka-kanan.
Dalam task sinkronisasi batch offline, lakukan konfigurasi berikut untuk mengaitkan parameter penjadwalan dengan sumber data:
Tambahkan tiga parameter penjadwalan di bagian atas panel konfigurasi penjadwalan di sisi kanan:
startTime=${yyyymmdd},endTime=${yyyymmdd},bizdate=${yyyymmdd}.Data Source (Logstore): Atur Log Start Time ke
${startTime}000000, Log End Time ke${endTime}000000, dan Batch Size ke256.Data Destination (MaxCompute): Atur Partition ke
pt=${bizdate}dan Cleaning Rule ke Insert Overwrite.Konfigurasi penjadwalan: Atur Scheduling Cycle ke Day, Scheduled Time ke
00:00(ekspresi cron:00 00 00 * * ?), dan Instance Generation ke T+1 (generate on the next day).
Skenario 2: Sinkronisasi data dari tabel atau file dengan nama dinamis
Sisipkan parameter penjadwalan langsung ke dalam nama tabel sumber atau path file agar node secara otomatis membaca dari tabel atau file yang tepat pada setiap eksekusi.
Untuk beberapa plugin Reader, Anda harus menggunakan editor kode untuk mengonfigurasi parameter penjadwalan guna nama dinamis. Pratinjau data tidak didukung ketika variabel digunakan dalam konfigurasi.
Contoh 1: Sinkronkan file OSS dengan nama berbasis tanggal ke MaxCompute
Konfigurasikan path objek sumber dengan parameter penjadwalan agar node membaca dari folder bertanggal yang sesuai setiap hari dan menulis data ke partisi yang sesuai di MaxCompute.
Pada langkah Select Data Source task sinkronisasi data, konfigurasikan sebagai berikut:
Data Source: Pilih sumber data OSS. Atur jenis teks ke CSV, path file ke
/xx/user_log_${var1}.txt, pemisah kolom ke koma, dan encoding ke UTF-8.${var1}adalah parameter penjadwalan yang digunakan untuk mencocokkan tanggal dalam nama file secara dinamis.Data Destination: Pilih sumber data MaxCompute (ODPS). Atur tabel target ke
ods_raw_log_d, partisi kedt=${var1}, mode tulis ke Insert Overwrite, dan Convert empty strings to null values ke No.
Pada panel konfigurasi Scheduling Parameters, atur parameter berikut:
Nama parameter
bizdate, nilai parameter$bizdate, sumber: ditambahkan secara manual.Nama parameter
var1, nilai parameter${yyyymmdd-1}, sumber: ditambahkan secara manual.
Contoh 2: Sinkronkan tabel MySQL dengan nama berbasis tanggal ke MaxCompute
Konfigurasikan nama tabel sumber dengan parameter penjadwalan agar node membaca dari tabel bertanggal yang sesuai setiap hari. Konfigurasi editor kode dan pengaturan parameter penjadwalan ditunjukkan di bawah ini.
"version": "2.0",
"steps": [
{
"stepType": "mysql",
"parameter": {
"envType": 0,
"useSpecialSecret": false,
"column": [
"id"
],
"tableComment": "",
"connection": [
{
"datasource": "xc_workshop_public",
"table": [
"person_${var1}"
]
}
],
"where": "",
"splitPk": "id",
"encoding": "UTF-8"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "odps",
"parameter": {
"partition": "ds=${var1}",
"truncate": true,
"datasource": "odps_first",
"isSupportThreeModel": false,
"column": [
"id"
Pada area konfigurasi Parameters, konfirmasi pengaturan parameter penjadwalan: parameter bizdate memiliki nilai $bizdate (ditambahkan secara manual), dan parameter var1 memiliki nilai ${yyyymmdd-1} (dihasilkan otomatis melalui penguraian kode). Setelah menyelesaikan konfigurasi, klik Preview Parameters untuk melihat hasil penggantian parameter.
Skenario 3: Menentukan bidang tujuan
Saat mengonfigurasi pemetaan bidang, tetapkan nilai konstan yang diturunkan dari waktu data node ke bidang tujuan. Sistem akan memperbarui bidang tersebut secara otomatis pada setiap eksekusi berdasarkan nilai parameter penjadwalan. Dukungan bervariasi tergantung jenis sumber data.
Sebagai contoh, konfigurasi berikut menetapkan waktu data ke bidang ds di tabel tujuan, yang diperbarui setiap hari.
Pada area Field Mapping, tambahkan baris dengan tipe Constant untuk bidang tujuan, dan atur nilainya ke ${bizdate}. Di panel Scheduling sisi kanan, pada area parameter, tambahkan parameter bizdate = $bizdate agar parameter penjadwalan ini berlaku sebagai nilai konstan dalam pemetaan bidang.
Skenario 4: Sinkronisasi data historis
Parameter penjadwalan secara otomatis diganti dengan nilai spesifik berdasarkan waktu data node dan format nilai parameter penjadwalan. Hal ini memungkinkan konfigurasi parameter dinamis untuk penjadwalan node. Dalam eksekusi pengisian ulang data, setiap parameter diganti menggunakan waktu data yang ditentukan oleh operasi pengisian ulang tersebut.
Gunakan fitur pengisian ulang data di Operation Center untuk menghasilkan data dalam rentang waktu historis tertentu. Untuk detailnya, lihat Pengelolaan dan pemeliharaan instans pengisian ulang data.
Contoh: Isi ulang data inkremental MySQL ke tabel MaxCompute yang dipartisi berdasarkan waktu
Contoh berikut menunjukkan cara menulis data inkremental dari sumber MySQL ke partisi waktu tertentu di MaxCompute menggunakan pengisian ulang data.
Dalam task sinkronisasi batch offline, parameter penjadwalan bizdate harus dikonfigurasi di tiga lokasi berikut:
Pada kondisi Data Filter sumber data, rujuk
${bizdate}. Contoh:STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time AND gmt_modify_time < DATE_ADD(STR_TO_DATE('${bizdate}','%Y%m%d'), interval 1 day)Pada bidang Partition tujuan data, atur nilainya ke
pt=${bizdate}, dan atur aturan pembersihan ke Insert Overwrite.Pada area Parameters panel Scheduling sisi kanan, konfigurasikan
bizdate=$bizdate, dan atur Instance Generation ke T+1 (generate on the next day).