Makro adalah placeholder dalam properti plugin Cloud Data Fusion
konfigurasi standar. Elemen tersebut diwakili oleh variabel yang disertakan dalam ${ }
, seperti
${input_file_path}
. Untuk mengaktifkan konfigurasi dinamis untuk elemen, seperti file
jalur dan nama tabel, {i>placeholder<i} diganti dengan nilai sebenarnya di
waktu beroperasi.
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 yang logis dari suatu lari
pipeline sebagai nilai string.
Jika tidak ada parameter yang diberikan, waktu mulai akan ditampilkan dalam milidetik. Semua parameter bersifat opsional. Fungsi tersebut mengambil format waktu, offset, dan zona waktu sebagai argumen dan menggunakan waktu mulai pipeline yang logis 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 yang logis. Saat runtime, nilai makro diganti dengan
2019-12-31T03:30:00
karena offsetnya berarti 20,5 jam. Seluruh
makro mengevaluasi ke 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 dalam file berbasis plugin.
Menyertakan waktu mulai pipeline dalam milidetik dalam nama file
Untuk merekam 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 bidang:
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 bidang:
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 Tambahkan Kolom
transformasi dan logicalStartTime()
.
- Dapatkan plugin Transformasi Adder Kolom dari Cloud Data Fusion Hub. Setelah di-deploy, plugin akan muncul dalam daftar Transform sebagai Add Kolom.
- Saat Anda mengonfigurasi properti plugin, tambahkan stempel waktu ke
—misalnya, untuk nama kolom, masukkan nama
dan untuk nilai kolom, masukkan makro
logicalStartTime()
.
Fungsi aman
Fungsi makro secure()
menggunakan satu kunci sebagai argumen dan mencari
nilai string yang terkait dengan kunci dari Secure Store.
Untuk melakukan substitusi, kunci yang disediakan sebagai argumen harus sudah
ada di Penyimpanan Aman. Hal ini berguna untuk melakukan
substitusi dengan
data sensitif.
Contoh
Dalam contoh ini, untuk plugin yang terhubung ke database MySQL, Anda mengonfigurasi kolom properti {i>password<i} 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. Makro argumen dievaluasi dari argumen yang terdalam hingga yang terluar.
Contoh
Dalam contoh ini, Anda memiliki server yang mengacu ke nama {i>host<i} dan porta. Anda menyediakan 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.