Cloud Data Fusion の概要

Cloud Data Fusion は、データ パイプラインを迅速に構築し管理するための、フルマネージドかつクラウド ネイティブなエンタープライズ データ統合サービスです。

Cloud Data Fusion ウェブ UI を使用すると、インフラストラクチャを管理することなく、データのクリーニング、準備、ブレンド、転送、変換を行うスケーラブルなデータ統合ソリューションを構築できます。

Cloud Data Fusion は、オープンソース プロジェクト CDAP の機能を利用しています。このページのいたるところに、詳細を確認できる CDAP ドキュメント サイトへのリンクを記載しています。

インターフェース

Cloud Data Fusion を使用するには、視覚的なウェブ UI またはコマンドライン ツールを使用できます。

コードを意識させないウェブ UI を使用する

Cloud Data Fusion を使用する際は、Cloud Console と個別の Cloud Data Fusion ウェブ UI の両方を使用します。

  • Google Cloud Console では、Google Cloud プロジェクトの作成、Cloud Data Fusion インスタンス(Cloud Data Fusion 固有のデプロイメント)の作成と削除、Cloud Data Fusion インスタンスの詳細の表示を行います。

  • Cloud Data Fusion UI では、Pipeline StudioWrangler などのさまざまなページを使用して、視覚的にデータ パイプラインを設計したり、Cloud Data Fusion 機能を使用したりします。

大まかな流れは次のとおりです。

  1. Google Cloud Console で Cloud Data Fusion インスタンスを作成します。

  2. Cloud Console の [インスタンス] ページで Cloud Data Fusion インスタンスを見つけて、[操作] 列の [インスタンスを表示] リンクをクリックします。Cloud Data Fusion UI が新しいブラウザタブで開きます。

  3. Cloud Data Fusion ウェブ UI のさまざまなページを使用して、視覚的にパイプラインを設計し、メタデータを管理します。

コマンドライン ツールを使用する

ウェブ UI の代わりに、コマンドライン ツールを使用して Cloud Data Fusion インスタンスとパイプラインを作成、管理できます。

  • REST リファレンスで、Google Cloud で Cloud Data Fusion インスタンスを作成し管理するための API について説明しています。

  • CDAP リファレンスで、パイプラインとデータセットを作成し管理するための REST API について説明しています。

基本コンセプト

このセクションでは、Cloud Data Fusion の基本コンセプトのいくつかを紹介します。いくつかのコンセプトでは、そのコンセプトの詳細を確認できる CDAP ドキュメントへのリンクが記載されています。

Cloud Data Fusion インスタンス

Cloud Data Fusion インスタンスとは、Cloud Data Fusion 固有のデプロイメントのことです。Cloud Data Fusion を使用するには、Cloud Console を使用して Cloud Data Fusion インスタンスを作成します。

1 つの Cloud Console プロジェクト内に複数のインスタンスを作成できます。また、Cloud Data Fusion インスタンスを作成する Google Cloud リージョンを指定できます。

要件と費用の制約に応じて、Developer、Basic、Enterprise インスタンスを作成できます。

Cloud Data Fusion インスタンスごとに、固有の独立した Cloud Data Fusion デプロイメントが 1 つ含まれます。このデプロイメントに、パイプラインのライフサイクル管理、オーケストレーション、調整とメタデータの管理を行う一連のサービスが含まれています。これらのサービスは、テナント プロジェクトの長時間実行リソースを使用して実行されます。

実行環境

Cloud Data Fusion では、パイプラインを手動で実行するときや、パイプラインがタイム スケジュールやパイプライン状態トリガーを介して実行されるとき、パイプラインを実行する一時的な実行環境が作成されます。 Cloud Data Fusion では、実行環境として Dataproc がサポートされています。この環境では MapReduce、Spark、または Spark Streaming のプログラムとしてパイプラインを実行するように選択できます。Cloud Data Fusion は、パイプラインの実行開始時にお客様のプロジェクトに Dataproc の一時的クラスタをプロビジョニングし、そのクラスタで MapReduce か Spark を使用してパイプラインを実行します。パイプラインの実行が完了すると、クラスタを削除します。

または、Terraform などのテクノロジーを使用して、制御された環境で Dataproc クラスタを管理する場合、クラスタをプロビジョニングしないように Cloud Data Fusion を構成することもできます。このような環境では、既存の Dataproc クラスタに対してパイプラインを実行できます。

自動スケーリング

Dataproc 自動スケーリングを構成して使用し、ワークロードの需要を満たすように、クラスタを自動的かつ動的にサイズ変更する方法の詳細については、クラスタの自動スケーリングのガイドをご覧ください。

推奨: クラスタのサイズを縮小するのではなく、拡大するための自動スケーリング ポリシーを使用してください。自動スケーリングでクラスタサイズを縮小すると、中間データを保持するノードが削除されるため、パイプラインの実行速度が遅くなるか、実行が失敗します。

Pipeline

パイプラインは、視覚的にデータを設計しフローを制御する手段です。パイプラインを使用して、オンプレミスやクラウドのさまざまなデータソースからデータを抽出し、変換、ブレンド、集約してからデータを読み込みます。パイプラインを構築すると、データの取り込み、統合、移行の問題を解決するのに役立つ、複雑なデータ処理ワークフローを作成できます。必要に応じて、Cloud Data Fusion を使用してバッチ パイプラインとリアルタイム パイプラインのどちらでも構築できます。

パイプラインを使用すると、データの論理フローを使用してデータ処理ワークフローを表現でき、一方、実行環境で物理的に実行するために必要となるすべての機能は Cloud Data Fusion で対処できます。Cloud Data Fusion のプランナーは、Dataproc で Apache Spark と Apache Hadoop MapReduce を使用して、論理フローを並列計算に変換します。

パイプライン ノード

Cloud Data Fusion UI の [Studio] ページでは、パイプラインが有向非巡回グラフ(DAG)に配置された一連のノードとして表されます。ノードは、ソースからの読み取り、データ変換の実行、シンクへの出力の書き込みなど、パイプラインで実行できるさまざまなアクションを表します。Cloud Data Fusion UI でソース、変換、シンクなどのノードを接続することで、データ パイプラインを形成できます。

さらに、パイプラインでログと指標にアクセスできるようにすると、管理者がデータ処理ワークフローを運用化するための簡単な手段にもなるため、カスタムツールを使用する必要がなくなります。

パイプラインに関する詳細は、CDAP ドキュメント サイトをご覧ください。

レプリケーション ジョブ

レプリケーションを実行すると、SQL Server や MySQL などの運用データストアから BigQuery にデータをリアルタイムで継続的に複製できます。

詳細については、レプリケーション ジョブのページをご覧ください。

トリガー

データ パイプライン(アップストリーム パイプライン)でトリガーを作成して、1 つ以上の異なるパイプライン(ダウンストリーム パイプライン)の完了時に実行させることができます。ダウンストリーム パイプラインを実行するタイミング(アップストリーム パイプラインの実行の成功、失敗、停止、またはそれらの組み合わせ)を選択します。

トリガーは次のような場合に役立ちます。

  • データをクレンジングし、複数のダウンストリーム パイプラインで利用できるようにします。
  • ランタイム引数やプラグイン構成などの情報をパイプライン間で共有します。これをペイロード構成といいます。
  • 実行ごとに更新する必要のある静的パイプラインとは対照的に、時間、日、週、月のデータを使用して実行できる一連の動的パイプラインを備えています。

プラグイン

プラグインとは、Cloud Data Fusion の機能を拡張するために使用できる、カスタマイズ可能なモジュールのことです。Cloud Data Fusion には、ソース、変換、集計、シンク、エラーコレクタ、アラート パブリッシャー、アクション、実行後アクション用のプラグインが用意されています。

プラグインはノードと呼ばれることもあります。Cloud Data Fusion ウェブ UI のコンテキストでは一般的にノードと呼ばれます。

Cloud Data Fusion で使用可能なさまざまなカテゴリのプラグインについて、次の表で説明します。

カテゴリ 説明
ソース ソースは、データを取得するデータベース、ファイル、リアルタイム ストリームに対するコネクタです。簡単な UI を使用してデータを取り込めるため、低レベルの接続のコーディングについて心配する必要はありません。
変換 変換を使用すると、データが取り込まれた後にデータを操作できます。たとえば、レコードのクローンを作成したり、レコードを JSON 形式に設定したりできます。さらに、JavaScript プラグインを使用してカスタム変換を作成することもできます。
分析 分析プラグインは、集約(さまざまなソースからのデータのグループ化、結合など)したり、分析、機械学習を実行したりするために使用されます。Cloud Data Fusion には、こうしたさまざまなユースケースに対応する組み込みのプラグインが用意されています。
アクション アクション プラグインでは、ワークフローで実行されるようスケジュールされるものの、ワークフロー内ではデータを直接操作しないカスタム アクションを定義します。たとえば、Database カスタム アクションを使用すると、パイプラインの最後で任意のデータベース コマンドを実行できます。または、Cloud Storage 内でファイルを移動するアクションをトリガーすることもできます。
シンク データはシンクに書き込む必要があります。Cloud Data Fusion には、Cloud Storage、BigQuery、Spanner、リレーショナル データベース、ファイル システム、メインフレームなどのさまざまなシンクがあります。
エラーコレクタ ノードに null 値、論理エラー、その他のエラーの原因が存在する場合、エラーコレクタ プラグインを使用してエラーを検出できます。このプラグインを変換プラグインや分析プラグインの出力に接続すると、定義した条件と一致するエラーを検出できます。検出したエラーは、パイプラインの別個のエラー処理フローで処理できます。
アラート パブリッシャー アラート パブリッシャーを使用すると、一般的ではないイベントが発生したときに通知をパブリッシュできます。その後、下流のプロセスでこれらの通知を設定して、アラートに対するカスタム処理をトリガーできます。
条件 パイプラインでは、条件形式での制御フロー プラグインを使用できます。 条件プラグインを使用すると、指定した条件述部の評価が true か false かに応じて、パイプラインを 2 つの別々のパスに分岐できます。

必要なプラグインが用意されていない場合は、独自のプラグインを開発できます。

警告: 信頼できないプラグインをインストールすると、セキュリティ リスクが生じる可能性があるため、おすすめしません。

コンピューティング プロファイル

コンピューティング プロファイルは、パイプラインを実行する方法と場所を指定します。プロファイルとは、パイプラインの物理的な実行環境の設定と削除に必要な情報をカプセル化したものです。プロファイルには、たとえばクラウド プロバイダの種類(Google Cloud など)、クラウド プロバイダで使用するサービス(Dataproc など)、認証情報、リソース(メモリと CPU)、イメージ、最小と最大のノード数などの値が含まれています。

プロファイルは名前で識別されます。プロファイルにはプロビジョナーおよび関連する構成を割り当てる必要があります。プロファイルは、Cloud Data Fusion インスタンス レベルまたは名前空間レベルのどちらでも存在できます。

プロファイルの詳細については、CDAP ドキュメント サイトをご覧ください。

特徴

カテゴリ 特徴
開発
  • グラフィカル パイプライン デザイナー
  • 100 以上のプラグイン - コネクタ、変換、アクション
  • コードを意識させないビジュアル変換
  • 1,000 以上の組み込み変換
  • データ品質ライブラリ
  • 開発者 SDK
テスト
  • ビジュアル パイプライン デバッグ
  • テスト フレームワーク
実行
  • Dataproc - バッチ(Apache Spark、Apache Hadoop MapReduce)とリアルタイム(Spark Streaming)
  • パイプラインの制御フローとデータフロー
運用
  • REST API
  • スケジュールとトリガー
  • モニタリング ダッシュボード
統合メタデータ
  • 自動的な技術と運用のメタデータ キャプチャ
  • ビジネス メタデータ アノテーション
  • キーワードとスキーマによるデータセットの検索
  • トレーサビリティのためのデータセットとフィールド レベルの系統
拡張性
  • カスタム プラグイン
  • 構成可能なプラグイン UI ウィジェット
  • カスタム プロビジョナー
  • カスタム コンピューティング プロファイル
再利用性
  • パイプラインとプラグインのテンプレート
  • ランタイム引数と設定
  • 再利用可能なプラグイン、パイプライン、ソリューションを分散するハブ
Google Cloud 統合
  • GKE - インスタンスのデプロイ
  • Dataproc - パイプラインの実行(バッチとリアルタイム)
  • Cloud KMS - 安全なデータ ストレージ
  • Cloud SQL と Cloud Storage - エンティティとアーティファクトのメタデータ ストレージ
  • 永続ディスク - ログと指標のストレージ
  • Cloud Console - インスタンス ライフサイクル管理
  • Google Cloud のオペレーション スイート(監査ログのみ)
コネクタ(Google Cloud)
  • Cloud Storage
  • BigQuery
  • Cloud SQL
  • Pub/Sub
  • Spanner
  • Bigtable
  • Datastore
コネクタ(Google 以外のクラウド)
  • パブリック クラウド サービス
  • ファイル システム
  • リレーショナル DB
  • NoSQL ストア
  • メインフレームと他のレガシー システム
変換
  • クレンジング、ブレンド、調和、マッピングのための、コードを意識させない変換
  • フィードバックのあるインタラクティブな変換
  • コードベース(ブラウザ内)の変換 - Scala(Apache Spark)、Python、JavaScript
  • 既存の Spark ジョブと MapReduce ジョブ
分析
  • 集計
  • 結合
  • グループ条件

次のステップ