Makro adalah placeholder dalam konfigurasi properti plugin Cloud Data Fusion. Kolom tersebut diwakili oleh variabel yang disertakan dalam ${ }
, seperti
${input_file_path}
. Guna mengaktifkan konfigurasi dinamis untuk elemen, seperti jalur
file dan nama tabel, placeholder diganti dengan nilai sebenarnya saat
runtime.
Saat melihat properti plugin, Anda dapat menambahkan makro ke kolom properti mana pun yang memiliki tanda M di sampingnya. Untuk menambahkan makro, klik M.
Untuk informasi selengkapnya, lihat Mengelola makro, preferensi, dan argumen runtime.
Fungsi makro
Selain makro, Anda dapat menggunakan fungsi makro standar berikut:
logicalStartTime()
secure()
Fungsi Waktu Mulai Logis
Fungsi makro logicalStartTime()
menampilkan waktu mulai logis dari proses
pipeline yang dijalankan sebagai nilai string.
Jika tidak ada parameter yang diberikan, waktu mulai akan ditampilkan dalam milidetik. Semua parameter bersifat opsional. Fungsi ini menggunakan format waktu, offset, dan zona waktu sebagai argumen, serta menggunakan waktu mulai yang logis dari pipeline untuk melakukan substitusi:
${logicalStartTime([timeFormat[,offset [,timezone])}
Daftar berikut menunjukkan parameter opsional untuk logicalStartTime()
:
Parameter | Deskripsi |
---|---|
timeFormat |
Pola format waktu, dalam format SimpleDateFormat Java. |
offset |
Offset waktu sebelum waktu mulai yang logis. |
timezone |
Zona waktu yang akan digunakan untuk waktu mulai yang logis. |
Contoh
Dalam contoh ini, waktu mulai logis dari proses pipeline adalah
2020-01-01T00:00:00
dan Anda memberikan makro berikut:
${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}
Formatnya adalah yyyy-MM-dd'T'HH-mm-ss
dan offsetnya adalah 1d-4h+30m
sebelum
waktu mulai logis. Pada saat runtime, nilai makro diganti dengan
2019-12-31T03:30:00
karena offsetnya diterjemahkan menjadi 20,5 jam. Seluruh
makro mengevaluasi hingga 20, 5 jam sebelum tengah malam pada 1 Januari 2020.
Menggunakan logicalStartTime()
pada plugin berbasis file
Cara paling umum untuk menggunakan fungsi ini adalah di kolom Path di plugin berbasis file.
Menyertakan waktu mulai pipeline dalam milidetik dalam nama file
Untuk mencatat waktu mulai sebenarnya dalam milidetik dalam nama file, hilangkan parameter dalam fungsi makro.
Contoh
Dalam contoh ini, Anda menyertakan waktu mulai pipeline, dalam milidetik, dalam nama file Amazon S3:
sales_012345671011.csv
Di properti sink Amazon S3, masukkan nilai berikut di kolom Path:
s3a://sales-data/sales_${logicalStartTime()}.csv
Menyertakan tanggal hari ini dalam nama {i>file<i}
Anda dapat menggunakan fungsi makro logicalStartTime()
dalam nama file untuk merekam
tanggal saat ini.
Contoh
Dalam contoh ini, Anda mengambil tanggal hari ini dalam nama file S3 berikut:
s3a://sales-data/sales_20210204.csv
Di properti sink Amazon S3, masukkan nilai berikut di kolom Path:
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
Menggunakan logicalStartTime
untuk menambahkan kolom Stempel waktu ke data terstruktur
Anda dapat menambahkan stempel waktu ke data terstruktur menggunakan transformasi Tambahkan Kolom
dan logicalStartTime()
.
- Dapatkan plugin Transformasi Adder Kolom dari Cloud Data Fusion Hub. Setelah di-deploy, plugin akan muncul dalam daftar Transform sebagai Add Field.
- Saat Anda mengonfigurasi properti plugin, tambahkan stempel waktu ke data terstruktur—misalnya, untuk nama kolom, masukkan nama kolom baru dan untuk nilai kolom, masukkan fungsi makro
logicalStartTime()
.
Fungsi aman
Fungsi makro secure()
menggunakan satu kunci sebagai argumen dan mencari nilai string terkait kunci tersebut dari Secure Store.
Untuk melakukan substitusi, kunci yang disediakan sebagai argumen harus sudah
ada di Secure Store. Hal ini berguna untuk melakukan substitusi dengan
data sensitif.
Contoh
Dalam contoh ini, untuk plugin yang terhubung ke database MySQL, Anda mengonfigurasi kolom properti sandi dengan nilai berikut:
${secure(password)}
Makro ini mengambil sandi dari Secure Store saat runtime.
Makro rekursif
Makro dapat merujuk ke makro lain secara rekursif hingga sepuluh level. Argumen makro dievaluasi dari argumen terdalam hingga terluar.
Contoh
Dalam contoh ini, Anda memiliki server yang mengacu ke nama {i>host<i} dan porta. Anda memberikan argumen runtime berikut, yang terakhir adalah makro yang merujuk ke makro lain:
- nama host:
examplepetstore.com
- port:
9991
- alamat-server:
${hostname}:${port}
Dalam konfigurasi pipeline, Anda menggunakan ekspresi berikut:
server-address: ${server-address}
Saat runtime, atribut tersebut diganti dengan nilai berikut:
examplepetstore.com:9991
Langkah selanjutnya
Pelajari makro, preferensi, dan argumen runtime lebih lanjut.
Pelajari cara menggunakan template plugin.