投稿者:中根 洋平

Cloud Data Fusionとは

Cloud Data FusionはNext'19で発表されたフルマネージドのデータ統合サービスです。
操作はブラウザ上で行うためコードを書く必要がありません。
ですので普段コードを書くことの無い方でも直感的に操作が出来るかと思います。

2019年6月現在Cloud Data Fusionはベータ版です。
しかしベースとなるOSSのCDAPは2015年以前より開発が行われておりコミュニティも活発なようです。
先月はメジャーバージョンアップがあり、GCPとの連携機能の追加が多くみられました。

エディション

エディションがBasicとEnterpriseの2種類があります。
違いはこちらをご覧ください。
大きな違いとしてあげられるのは

  • パイプライン実行数
  • ストリーミングパイプライン
  • トリガー/スケジュール
  • 高可用性

ではないでしょうか。

料金

Cloud Data Fusionはパイプラインの開発のためにインスタンスの作成が必要となります。
このインスタンスにたいして時間課金が発生します。
パイプラインの実行はDataproc上で行われます。ですのでパイプラインはDataprocとして課金されます。
ですのでBasicエディションでは一部無料枠がありますが、パイプラインの実行分はDataprocとして課金されるので注意しましょう。

他のETLサービスとの比較

GCPでは他にもETLツールとしてDataflowやDataprepがありますが、これらとの違いは何でしょうか。

data-fusionimage_002.jpg

Cloud Data FusionはDataflowとDataprepの中間に位置するように感じます。
Dataprepと比較するとGUIベースは同じですが接続できるデータソースがCloud Data Fusion増えています。
GCSやBigQuery以外にもコネクタエコシステムがあるため多くのDBに接続ができます。
またAWSやAzureへのコネクタも用意されています。

一方Dataflowと比較するとGUIベースで操作ができるCloud Data Fusionはより学習コストが低くなるかと思います。
リアルタイムパイプラインをGUIベースで構築できるのはCloud Data Fusionのメリットですね。

さわってみる

まずはインスタンスを作成する必要があります。
基本的にHow-to guidesの通りに行えばOKです。
2019年6月現在まだasia-northeastでの提供はなくアジア圏はasia-eastとasia-southeastのみとなります。
デプロイ時間は最大30分とありましたが今回は大体15分ほどで完了しました。

Cloud Data FusionにはサンプルのパイプラインとしてがCloud Data Fusion Quickstartが用意されていますが、今回は以下のようなフローを作成してみます。

data-fusionimage_003.jpg

データソースとしてSAP HANAよりテーブルを読み込みます。
読み込んだデータをBQの2つのテーブルに書き出します。
1つはSAP HANAのテーブルをそのまま、もう一つはフィルタリングして集約したテーブルを作成します。

HANA用のコネクタ作成

Cloud Data Fusionは多くのコネクタエコシステムを持ちます。

data-fusionimage_004.jpg

今回接続するHANAはプリセットでは用意されていないのでJDBCドライバをアップロードする必要があります。
右上の+ボタンからドライバのアップロードでも良いですがWranglerからAdd Connection→Databaseを選択するとSAP HANAのJDBC Driverのアップロード画面にたどりつきます。

data-fusion-gif_001.gif

両方試しましたがこちらからだとすでにNameとClass nameが最初から入力されているだけのようです。

パイプラインの作成

ドライバのアップロードが完了したら接続情報を入力しましょう。

data-fusionimage_008.jpg

問題がなければGCSやBQと同様テーブル一覧が表示されます。
処理したテーブルを選択すると画面右側のタブにデータが表示されます。
Wranglerではデータの状態確認や変換が行えます。

data-fusionimage_009.jpg

パイプラインを作成しているときにちゃんと動くか確認したい場合がありますよね。
Cloud Data Fusionでは最初の何件かのみデータを流すプレビューモードがあります。
こちらを実行することでパイプライン上のデータを確認することができます。

data-fusionimage_013.jpg

プレビューを実行して問題が無いようでしたらパイプラインをデプロイをしましょう。

パイプラインの実行

デプロイが完了したらパイプラインを実行しましょう。
実行中はCloud Data FusionのIn/Outから処理件数が確認できます。
下の画像は早送りをしています。

data-fusion-gif_002.gif

また実際の処理はDataproc側で行われているためクラスタがデプロイされているのが確認できます。

data-fusionimage_010.jpg

出力の確認

完了になったらBigQueryを見てみましょう。問題なくBigQueryに書き込まれていますね。

data-fusionimage_014.jpg

まとめ

Cloud Data FusionはDataflowとDataprepの中間といった感じでGUIベースの操作で扱いやすいサービスになっているかと思います。
リアルタイムパイプラインも作成できますし、外部データソースを利用する場合は簡単に接続できるためGCPへのLiftにも使用できると思います。
まだベータ版ということで手探りなところが多いですが、OSSのCDAPの情報も合わせて調べてみるとが役に立つかと思います。

参考

Cloud Data Fusion
CDAP.io
Github CDAP
Github CDAP Guides
Cloud Data Fusion: Data Integration at Google Cloud (Cloud Next '19)