マクロは、Cloud Data Fusion プラグイン プロパティの構成内のプレースホルダです。これらは、${ }
で囲まれた変数(${input_file_path}
など)で表されます。ファイルパスやテーブル名などの要素の動的構成を有効にするために、プレースホルダがランタイムで実際の値に置き換えられます。
プラグインのプロパティを表示しているときに、横に M が付いているプロパティ フィールドにマクロを追加できます。マクロを追加するには、[M] をクリックします。
詳細については、マクロ、環境設定、ランタイムの引数を管理するをご覧ください。
マクロ関数
マクロに加えて、次の事前定義されたマクロ関数を使用できます。
logicalStartTime()
secure()
論理開始時刻関数
logicalStartTime()
マクロ関数は、パイプラインの実行の論理開始時刻を文字列値として返します。
パラメータが指定されていない場合、開始時刻をミリ秒単位で返します。パラメータはすべて省略可能です。この関数は、時刻形式、オフセット、タイムゾーンを引数として受け取り、パイプラインの論理開始時刻を使用して置換を行います。
${logicalStartTime([timeFormat[,offset [,timezone])}
logicalStartTime()
のオプション パラメータを以下の一覧に示します。
パラメータ | 説明 |
---|---|
timeFormat |
時刻の表示形式のパターン(Java の SimpleDateFormat 形式)。 |
offset |
論理開始時刻より前の時間オフセット。 |
timezone |
論理開始時刻に使用するタイムゾーン。 |
例
この例では、パイプライン実行の論理開始時刻は 2020-01-01T00:00:00
であり、次のマクロを指定します。
${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}
形式は yyyy-MM-dd'T'HH-mm-ss
であり、オフセットは論理開始時刻の 1d-4h+30m
前です。オフセットが 20.5 時間に変換されるため、ランタイム時にマクロ値は 2019-12-31T03:30:00
に置き換えられます。マクロ全体の評価結果は、2020 年 1 月 1 日の午前 0 時の 20.5 時間前です。
ファイルベースのプラグインで logicalStartTime()
を使用する
この関数を使用する最も一般的な方法は、ファイルベースのプラグインの [パス] フィールドで使用することです。
パイプラインの開始時間をミリ秒単位でファイル名に設定する
実際の開始時刻をミリ秒単位でファイル名にキャプチャするには、マクロ関数のパラメータを省略します。
例
この例では、パイプラインの開始時刻(ミリ秒単位)を Amazon S3 ファイル名に配置します。
sales_012345671011.csv
Amazon S3 シンクのプロパティで、[パス] フィールドに次の値を入力します。
s3a://sales-data/sales_${logicalStartTime()}.csv
ファイル名に当日の日付を設定する
ファイル名で logicalStartTime()
マクロ関数を使用すると、現在の日付を取得できます。
例
この例では、次の S3 ファイル名に今日の日付をキャプチャします。
s3a://sales-data/sales_20210204.csv
Amazon S3 シンクのプロパティで、[パス] フィールドに次の値を入力します。
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
logicalStartTime
を使用して構造化レコードにタイムスタンプ フィールドを追加する
構造化レコードにタイムスタンプを追加するには、フィールドの追加変換と logicalStartTime()
を使用します。
- Cloud Data Fusion ハブから Field Adder Transform プラグインを取得します。プラグインをデプロイすると、[変換] リストに [フィールドを追加] として表示されます。
- プラグイン プロパティを構成するときに、タイムスタンプを構造化レコードに追加します。たとえば、フィールド名には新しいフィールドの名前を入力し、フィールド値には
logicalStartTime()
マクロ関数を入力します。
セキュアな関数
secure()
マクロ関数は、単一のキーを引数として受け取り、Secure Store からキーに関連付けられた文字列値を検索します。置換を行うには、引数として指定されたキーが Secure Store にすでに存在している必要があります。これは、機密データで置換を行う場合に有効です。
例
この例では、MySQL データベースに接続するプラグインの場合、パスワード プロパティ フィールドを次の値で構成します。
${secure(password)}
このマクロは、実行時に Secure Store からパスワードを取得します。
再帰マクロ
マクロは、最大 10 レベルの他のマクロを再帰的に参照できます。マクロ引数は、最も内側の引数から最も外側の引数に向かって評価されます。
例
この例では、ホスト名とポートを参照するサーバーが存在します。次のランタイム引数を指定します。最後の引数は、他のマクロを参照するマクロです。
- hostname:
examplepetstore.com
- port:
9991
- server-address:
${hostname}:${port}
パイプライン構成では、次の式を使用します。
server-address: ${server-address}
実行時に、次の値に置き換えられます。
examplepetstore.com:9991
次のステップ
マクロ、環境設定、ランタイム引数の詳細を確認する。
プラグイン テンプレートの使用方法を学習する。