こちらの記事は弊社技術ブログに掲載していた内容です。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。目次 Toggleノンプログラミングで使えるデータパイプラインツール Cloud Data Fusion とはコンポーネント概要クイックスタートまとめGoogle Cloud ならクラウドエースこんにちは。クラウドエース編集部です。ノンプログラミングで使えるデータパイプラインツール Cloud Data Fusion とは先日サンフランシスコで開催されたGoogle Cloud Next’19では、さまざまな新サービスや既存サービスの強化が発表されました。 発表された新サービスや強化点は Google Cloud Japan 公式ブログ にまとめられていますので、是非一度ご覧ください。その中から、今回はデータアナリティクス分野の注目の新サービスCloud Data Fusionについてご紹介します。Cloud Data Fusionを一言で表すと、GUIからノンプログラミングでデータパイプラインが構築可能な、グラフィカルETLツールという感じでしょうか。 2018年に新たにGoogleグループの一員に加わった、CaskData社のETLツール『CDAP』をベースに、GCPのマネージメントサービスとして提供されます。 現時点ではベータのサービスです。近いカテゴリのツールで馴染みのあるところを挙げますと、アステリア株式会社様の『ASTERIA Warp』や、株式会社セゾン情報システムズ様の『DataSpider Servista』、Talend社様の『Talend』などのツールと近い印象を受けるツールですので、これらのツールをご存知の方はイメージを掴んで頂けると思います。Cloud Data Fusionのパイプラインエディタ画面スクリーンショットがこちらです。グリッドの上に、コンポーネントを配置して、コンポーネントを処理順に矢印で結ぶタイプの、ノンプログラミングツールでよくあるタイプのGUIですね。UIも洗練されている印象で、ノンプログラミングツールの特徴である、キャッチアップコストの低さ、(比較的シンプルな構成における)生産性の高さ、運用チームとの連携のやりやすさなど期待できそう。第一印象はかなり良さそうです。コンポーネント概要それでは、配置可能なコンポーネントの一覧画面を見ながら、Cloud Data Fusionにどんな機能があるのか、概要を探っていきましょう。 パイプラインエディタを起動して、コンポーネント一覧を開いてみます。データ入力 コンポーネントSourceタブの中には、パイプラインのデータソースとして使用可能なコンポーネントが一覧表示されています。GCPサービスだと、下記のデータソースがリストアップされています。BigQueryCloud StorageCloud DatastoreCloud Spanner定番のCloud Storage(GCS)やBigQueryだけでなく、ベータ時点でCloud DatastoreやCloud Spannerにも対応しているのが、頼もしいですね。FTPAmazon S3また、GCPサービス以外にも外部FTPやSFTPサーバーに接続するコンポーネントや、AWSのS3に接続するコンポーネントもあります。 GCP以外で動いているシステムから、分析に必要なデータを取得するのも、低コストで実装できそうですね。データ出力先 コンポーネント次にSinkタブを見てみます。 Sinkタブの中には、パイプラインの処理結果セットの書き込み先として使用可能なストレージ系のコンポーネントが一覧表示されています。GCPサービスだと、下記のストレージがリストアップされています。BigQueryBigQuery MultiTableCloud StorageCloud DatastoreCloud SpannerCloud Pub/Sub必要なストレージはほぼ網羅されていますね。面白いのはBigQueryのMultitableコンポーネントです。 このコンポーネントは、データに含まれる特定のフィールドをテーブル名として扱い、一つのデータから複数テーブルに書き込むコンポーネントです。 書き込み先を日付別のテーブルにシャーディングしたい場合でも、コンポーネント一つで対応できそうですね。 こちらもSourceと同様、AWS S3などGCP以外への接続に対応しています。データ変換 コンポーネント次はTransformタブです。 データ入力のSourceコンポーネントと、データ出力のSinkコンポーネントの間を繋ぐのが、データ変換のTransformコンポーネントです。Transformタブはコンポーネントが多く、データ変換に必要な様々な種類のコンポーネントが一覧表示されています。具体的には、GCS上にコピーしたサンプルデータを元に、スプレッドシートやExcelをイメージしたグラフィカルなフィルタ操作で、インタラクティブに設定が可能なコンポーネントを筆頭に、CSV Formatter/ParserJSON Formatter/Parserなど、テキストファイルと構造化データを変換するコンポーネントや、Encoder/Decoder(BASE64, BASE32, HEX)Encryptor/Decrypter(AES, CBC, PKCS5Padding)Compressor/Decompressor(SNAPPY, ZIP, GZIP)MD5/SHA Hash(MD2, MD5, SHA1, SHA256, SHA384, SHA512)などの、よく利用する暗号化やハッシュ化、データ圧縮のコンポーネント。フィールドがNULLかどうかでデータを分割するフィールドの型でデータを分割するなどの、データ分割のコンポーネントなど、多数のコンポーネントがあります。 また、少し変わったコンポーネントとして、JavaScriptを直接コンポーネント内に記述して、データを変換をプログラミングできるJavaScriptコンポーネントもあります。このコンポーネントの使いどころは、複雑な変換ロジックへの対応でしょうか。 一般的な話として、このようなノンプログラミングツールは、変換ルールに複雑なロジックが含まれる場合、コンポーネント数とコネクタが増え、接続が複雑化してしまう事があります。そのような場合、変換ルールをコードで記述し、複雑なロジックを1つのコンポーネントとしてパーツ化できると、処理の見通しがよくなる場合がありますが、Cloud Data Fusionでは対応可能です。 なお、データ変換をすべてコードで記述した方が良いレベルであれば、CloudDataflowなど、プログラミングを前提としたツールの方がマッチする可能性もあります。このように、Cloud Data Fusionではパイプライン構築に使える多数のコンポーネントを標準装備しています。これらを組み合わせて、データパイプラインを組み立てていきます。クイックスタート全体的な概要が掴めたところで、公式ドキュメントのクイックスタートをなぞりながら、パイプライン構築の流れを確認してみましょう。なお、上記ドキュメントにも記載がありますが、試す場合は新規にGCPプロジェクトを作成して頂くことをおすすめいたします。 Cloud Data Fusionに紐づく複数のサービスアカウントや、パイプラインの実行時のCloud Dataprocリソースなど、多くのリソースが作成されるため、新規プロジェクトでお試し頂いた方が、完了後のクリーンナップが非常に楽です。 それでは試していきましょう。Cloud Data Fusionの有効化とインスタンスの作成まずは、Cloud Data Fusionの有効化とインスタンスの作成を行います。① Cloud Data Fusion APIを有効化まずは、Cloud Data Fusion APIを有効にします。『メインメニュー→APIとサービス』から『APIとサービス』画面を開き『+APIとサービスを有効化』をクリックし、APIライブラリを表示します。 『APIとサービスを検索』のボックスに「Cloud Data Fusion」を入力し検索します。 『Cloud Data Fusion API』の画面で『有効にする』ボタンを押下して、APIを有効化します。 API有効化には数分かかります。完了までお待ちください。② Cloud Data Fusionインスタンス作成APIの有効化が完了したら、Cloud Data Fusionのインスタンスを作成します。メニューから『Data Fusion』を選択、『Create Instance』をクリックし、インスタンス詳細画面で、インスタンス名など必要なパラメータを入力します。 『Edition』は無料枠のあるBasicを選択しました。インスタンスの作成には非常に時間がかかります。ドキュメントでは最大20分との記載があります。スクリーンショット撮影時は13分ほどかかりました。 インスタンス作成完了までのんびりとお待ちください。なお、記事執筆時点では、日本国内のリージョンはまだ選択できません。 (アジアではシンガポールと台湾) 本記事では『us-central1(オレゴン)』リージョンを選択しました。完了するとグリーンのチェックマークが表示されます。③ サービスアカウントへのIAM役割付与Cloud Data FusionのGUIを開く前に、作成したインスタンスのサービスアカウントに、IAM役割を付与する必要があります。 インスタンスの詳細画面からサービスアカウントの情報を確認し、『IAMと管理→IAM』で、役割を付与します。付与する役割は『Cloud Data Fusion APIサービスエージェント』です。サンプルパイプラインのデプロイ④ Cloud Data FusionのGUIを開く有効化と役割付与が完了したので、Cloud Data Fusionの管理コンソールGUIを開きます。 Cloud Data Fusionの一覧画面から、リンクをクリックしてください。 最初にGoogleアカウントでの認証が入ります。このような管理コンソールが表示されれば完了です。 『Start Tour』をクリックすると、画面の概要をごく簡単にガイダンスしてくれますので活用しましょう。⑤ サンプルパイプラインをデプロイする標準で用意されているサンプルパイプラインをデプロイし、実行してみましょう。 サンプルパイプラインは『HUB』内から読み込みする事ができます。 下記の手順で行います。画面右上の『HUB』をクリックする 開いたダイアログの『Pipelines』タブをクリックする 最下段の『Cloud Data Fusion Quickstart』を選択する 『Create』ボタンを押下する パイプライン名を入力して『Finish』ボタンを押下する 確認ダイアログで『Customize pipeline』ボタンをクリックする 手順を完了すると、パイプラインエディタでサンプルパイプラインが表示されます。 画面左側には、前のセクションで説明した、コンポーネント一覧が表示されています。パイプラインの実行には、パイプラインのデプロイが必要です。 画面右上の『Deploy』ボタンを押下します。⑥ パイプラインを実行するパイプラインのデプロイが完了すると、画面が遷移します。 それではパイプラインを実行してみましょう。 『Run』ボタンを押下してください。ステータス表示が『Deployed』に変わり、ジョブ実行が開始されます。 実行中のログは『Logs』ボタンからリアルタイムに確認可能です。パイプラインはCloud Dataprocのジョブとして実行されます。 裏で自動的にCloud Dataprocクラスタが作成され、ジョブが実行されます。Dataprocクラスタにより、GCE上にワーカーノードが作成されています。パイプラインの実行が完了すると、処理ステータスが『Succeeded』に変わります。実行が完了すると、Cloud Dataprocのクラスタも、自動的に削除されました。⑦ パイプラインの結果を表示する処理結果を確認してみましょう。 『BigQuery』のメニューからBigQueryの管理コンソールに遷移し、集計結果のデータセット『GCPQuickStart』をプレビューしてみます。集計結果が表示されました。クリーンナップクイックスタートの完了後、GCPアカウントに課金が発生しないようにするには、クイックスタートドキュメントの『Clean up』の項目を参考に、作成されたリソースを削除します。 クイックスタートドキュメント:Clean upまとめ駆け足ですが、注目の新サービスCloud Data Fusionの機能概要を確認してきました。 ノンプログラミングで、GCP内外のサービスと連携したデータパイプラインが構築できる事や、洗練されたGUIによる分かり易い操作は、まだベータのサービスながら将来性が大変楽しみです。課金は分単位での計算なので、定期的にバッチ実行するような大容量データの処理だけでなく、ワンショットのデータ処理にも使えそうです。今回のサンフランシスコNext’19では、他にもデータアナリティクス関連の新サービスや機能強化が多数発表されており、相互にシナジーが発揮できそうなものばかりです。 今後もGCPのデータ処理関連プロダクトに大注目ですね。Google Cloud ならクラウドエースクラウドエースは Google Cloud に特化したシステムインテグレーターです。国内トップクラス、400社以上の支援実績と知見をもとに、Google Cloudの導入から設計開発まであらゆるご要望にお応えいたします。Google Cloud やクラウドに関するご不明点がございましたら、お気軽にご相談ください。こちらの無料資料では、Google Cloud とクラウドエースについてさらに詳しく記載していますので、ぜひ合わせて御覧ください。