![](https://tech.rhythm-corp.com/wp-content/uploads/2020/06/top-1-304x77.png)
こんにちは。香田です。
今回はGCP Cloud Data Fusionのマクロ機能を使ったパイプラインを紹介していきます。
Cloud Data FusionはGUIで簡単にデータパイプラインが作成できるので非常に便利ですね!
Data Fusionのマクロ機能とは
Data Fusionのマクロ機能について簡単に説明しておくと、
例えばデータソースとして指定するGCS バケットやGCPのプロジェクトIDといった値に対して、
パイプライン実行時に引数として渡すことができる機能で、SourceやSinkといった各Pluginのプロパティで指定可能です。
マクロ機能を利用することで、パイプラインをテンプレート化し汎用的に使い回すことが可能となります。
パイプラインを作成する
ではさっそくですが、パイプラインを作成していきましょう。
パイプラインはGCSのデータを変換しBigQueryにロードする流れになります。
[Integrate]の[Studio]を選択します。
![datafusion1](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion1-1024x531.png)
[Source]の[GCS]を選択し[Properties]をクリックします。
![datafusion2](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion2-1024x466.png)
下記のようにマクロ機能が利用可能な箇所はMマークが表示されています。${gcs.bucket.path}
のように${}
で指定することで利用可能となります。
![datafusion3](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion3-1024x531.png)
[Transform]で[Wrangler]を選択します。
[GCS]から矢印を[Wrangler]へドラッグし[Properties]をクリックします。
![datafusion4](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion4-1024x529.png)
[Directives]より[WRANGLE]をクリックします。
![datafusion5](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion5-1024x517.png)
変換処理は下記のような内容を設定しています。問題なければ[Apply]をクリックします。
![datafusion6](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion6-1024x541.png)
[Sink]で[BigQuery]を選択します。
[Wrangler]から矢印を[BigQuery]へドラッグし[Properties]をクリックします。
![datafusion7](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion7-1024x478.png)
[BigQuery]でも[GCS]と同じく下記のようにマクロを利用します。
![datafusion8](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion8-1024x590.png)
Pipelineの名前を設定後、[Deploy]をクリックします。
すると下記のようにPipelineが実行可能な状態となります。
![datafusion9](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion9-1024x417.png)
[Run]ボタンのプルダウンメニューをクリックすると、[Runtime Arguments]より
[GCS]、[BigQuery]のマクロで指定したプロパティが実行時の引数として入力可能となります。
![datafusion10](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion10-1024x446.png)
正常に完了している場合は、下記のように[Status]が[Succeeded]となります。
![datafusion11](https://blog.rhythm-corp.com/wp-content/uploads/2020/06/datafusion11-1024x406.png)
さいごに
いかがでしたでしょうか? マクロ機能を利用したパイプラインのテンプレート化が
イメージできましたでしょうか。
最後までご覧頂きありがとうございました!