Makro dan fungsi makro

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().

  1. Dapatkan plugin Transformasi Adder Kolom dari Cloud Data Fusion Hub. Setelah di-deploy, plugin akan muncul dalam daftar Transform sebagai Add Field.
  2. 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