Cloud Service
Cloud Data Fusion
GUI でドラッグ&ドロップして ETL/ELT パイプラインを組めるフルマネージドのデータ統合サービス。AWS Glue に相当。
- 1.コードを書かずに GUI でデータ統合パイプラインを組める。
- 2.実体は CDAP ベースで、実行は Dataproc 上の Spark に変換される。
- 3.AWS の Glue 相当。豊富なコネクタで多様なソースをつなげる。
解決する課題
- 複数のデータソースを統合する ETL/ELT を、コードを書かずに GUI で素早く構築したい
- データエンジニア以外(アナリストなど)でも、ドラッグ&ドロップでパイプラインを組めるようにしたい
- オンプレ DB、SaaS、各種クラウドストレージなど多様なソースへのコネクタをその都度自作したくない
- 取り込んだデータの変換・クレンジング・品質チェックを視覚的に設計し、再利用したい
- パイプラインの系統(リネージ)やメタデータを管理し、データの出所を追跡したい
主要概念と用語
- CDAP: Cloud Data Fusion の基盤となるオープンソースのデータ統合プラットフォーム。Data Fusion はこの CDAP をフルマネージドで提供したもの
- パイプライン (Pipeline): データの取り込みから変換、書き込みまでの一連の流れを表す有向グラフ。バッチ用とリアルタイム用がある
- プラグイン (Plugin): パイプラインを構成する部品。ソース(読み取り元)、トランスフォーム(変換)、シンク(書き込み先)、アナリティクスなどの種類がある
- Wrangler(ラングラー): データを対話的にプレビューしながら、変換ルール(列の分割・型変換・フィルタなど)を視覚的に組み立てる機能
- Hub: 再利用できるプラグイン、パイプラインのサンプル、ドライバなどを配布・取得するカタログ
- インスタンス (Instance): Data Fusion 環境の単位。Developer / Basic / Enterprise といったエディションがあり、機能や同時実行性が異なる
- 実行環境 (Compute Profile): パイプラインを実際に走らせる計算基盤。既定では一時的な Dataproc クラスタが起動して Spark / MapReduce として実行される
仕様・制限・クォータ
- パイプラインは GUI で設計され、内部的には実行可能なワークフローへ変換される。バッチパイプラインは Spark や MapReduce、リアルタイムは Spark Streaming として実行される
- 実体としての処理は Dataproc 上で動くため、計算リソースは Dataproc クラスタの設定(マシンタイプ、ワーカー数など)に依存する
- インスタンスには複数のエディションがあり、利用できるプラグインや並列実行数、可用性の特性が異なる。本番の高並列用途は上位エディションが前提になる
- プラグインの種類や同時実行パイプライン数には上限があり、プロジェクト/リージョン単位のクォータが設定される。具体的な数値は変動するため公式ドキュメントで確認する
- インスタンスはリージョンに紐づく。マルチリージョンをまたぐ構成は設計時に考慮が必要
内部の仕組み
Cloud Data Fusion は、オープンソースの CDAP をマネージド化したサービスです。利用者が GUI で組んだパイプライン(ソース・トランスフォーム・シンクのグラフ)は、論理的な定義として保存され、実行時に Spark や MapReduce のジョブへ変換されます。
このジョブを実際に走らせるのが Dataproc です。多くの構成ではパイプライン実行のたびに一時的な Dataproc クラスタが起動し、処理が終わると破棄されます。つまり Data Fusion 自体は設計・オーケストレーション層であり、重い計算は Dataproc にオフロードされる二層構造になっています。この分離により、設計者は基盤の詳細を意識せずに視覚的にパイプラインを構築でき、必要なときだけ計算資源が確保されます。
各プラグインは Hub から取得・追加でき、ソースとシンクの組み合わせで多様なデータの流れを表現します。実行結果やメタデータ、データの**リネージ(系統)**はプラットフォーム側で記録され、どのデータがどこから来てどう変換されたかを追跡できます。
Data Fusion で「パイプラインを組む」操作と、それを「実行する」基盤は分かれています。設計は Data Fusion インスタンス、実行は Dataproc クラスタ。コストやパフォーマンスのチューニングは主に Dataproc 側(クラスタサイズや一時クラスタの設定)で行うと理解しておくと、トラブル時の切り分けが速くなります。
設計パターン / ベストプラクティス
- GUI で素早く組みたい・非エンジニアも触るケースに向く。逆に細かいコード制御や複雑なロジックが中心なら Dataflow(Apache Beam)の方が適することが多い
- 実行は一時的な Dataproc クラスタで行わせ、処理が終われば破棄してコストを抑える。常時クラスタを立てっぱなしにしない
- 変換ロジックは Wrangler で対話的に作り込み、再利用可能な部品として整理する
- パイプラインをパラメータ化し、開発・本番などの環境差分を引数で吸収して使い回す
- データ品質チェックやエラーレコードの分岐をパイプライン内に組み込み、不正データを別シンクへ退避させる
- 大量・複雑な変換は、実行基盤の Dataproc クラスタを適切にサイジングしてスループットを確保する
運用・監視
- パイプラインの実行状況(成功・失敗、所要時間、処理レコード数)は Data Fusion の実行履歴画面で確認できる
- 実行基盤である Dataproc 側のログ・メトリクスと合わせて見ることで、性能問題の原因(リソース不足、データ偏りなど)を切り分ける
- ログは Cloud Logging、メトリクスは Cloud Monitoring に連携して集約・アラート設定できる
- パイプラインのスケジュール実行やトリガー連携で、定期的なバッチ処理を自動化する
- リネージ機能でデータの出所と変換経路を追跡し、影響範囲調査や監査に活用する
コスト
| 費用要素 | 課金の考え方 | 抑えるコツ |
|---|---|---|
| Data Fusion インスタンス | インスタンスの稼働時間(エディションごとに単価が異なる) | 用途に合うエディションを選び、不要なら停止/削除 |
| Dataproc 実行基盤 | パイプライン実行時に起動する Dataproc クラスタの計算時間 | 一時クラスタを使い処理後に破棄、クラスタサイズを最適化 |
| 関連サービスの送受信 | BigQuery、GCS など連携先の読み書きや保存量 | 不要な再処理を避け、増分処理を活用 |
Data Fusion のインスタンスは、パイプラインを動かしていなくても稼働しているだけで課金される考え方です。Dataproc は実行時のみの課金ですが、インスタンスは常時費用が発生しうるため、開発・検証用の環境は使い終わったら停止または削除することを検討してください。
セキュリティ
- アクセス制御は IAM で行い、パイプラインの設計者・実行者・閲覧者などの役割を最小権限で分離する(AWS の IAM 相当)
- パイプライン実行に使うサービスアカウントに必要な権限のみを付与し、認証情報のハードコードを避ける
- ネットワークは プライベート IP 構成にして、インスタンスや実行基盤を外部公開しないようにできる
- データソースの接続情報などの機密値は Secret として管理し、パイプライン定義に平文で埋め込まない
- 保存データは既定で暗号化され、要件に応じて CMEK(顧客管理鍵, Cloud KMS) を適用できる。境界防御に VPC Service Controls を併用する
Well-Architected の観点
- 運用上の優秀性 (Operational Excellence): GUI による視覚的な設計で属人化を抑え、パイプラインをパラメータ化・再利用して標準化する。リネージとログで運用の可観測性を高める
- 設計層(Data Fusion)と実行層(Dataproc)が分かれているため、役割分担と責任範囲が明確になり、変更やトラブル対応のオペレーションが整理しやすい
- スケジュール実行・トリガーによる自動化で、手作業のバッチ運用を減らせる
試験で問われるポイント
- GUI でコードレスに ETL を組むニーズなら Cloud Data Fusion。コード中心・複雑なストリーミングなら Dataflow(Apache Beam)という選び分けを押さえる
- Data Fusion の実行基盤は Dataproc(Spark / MapReduce)であり、多くは一時クラスタで処理する、という二層構造を理解しておく
- 基盤がオープンソースの CDAP をマネージド化したものである点
- AWS Glue に相当するサービスであるという対応関係
- インスタンスにはエディションがあり、機能・並列性・可用性が異なる点
- データのリネージ(系統)やメタデータ管理を提供し、Wrangler で対話的に変換を組める点
関連サービス・比較
| 観点 | GCP(Cloud Data Fusion) | AWS(Glue) |
|---|---|---|
| 位置づけ | GUI 中心のフルマネージド データ統合 | サーバーレスなデータ統合 ETL |
| パイプライン作成 | ドラッグ&ドロップの GUI(CDAP ベース) | Glue Studio の GUI またはコード |
| 実行基盤 | Dataproc 上の Spark / MapReduce | Glue 内部の Spark(サーバーレス) |
| メタデータ/カタログ | リネージ・メタデータ管理を内蔵 | Glue Data Catalog |
| 対話的データ整形 | Wrangler | Glue DataBrew |
| 権限付与 | IAM + サービスアカウント | IAM ロール |
同じ「データ処理」でも、コードレスで多様なソースを統合したいなら Data Fusion、Apache Beam でストリーミングや高度な変換を書くなら Dataflow、SQL でデータウェアハウス分析なら BigQuery、既存の Spark/Hadoop 資産を動かすなら Dataproc が基本の軸です。
ハンズオン / CLI例
# 1) Cloud Data Fusion API を有効化
gcloud services enable datafusion.googleapis.com
# 2) Data Fusion インスタンスを作成(エディションとリージョンを指定)
gcloud data-fusion instances create my-instance \
--location=asia-northeast1 \
--edition=basic
# 3) 作成したインスタンスの詳細(GUI への apiEndpoint など)を確認
gcloud data-fusion instances describe my-instance \
--location=asia-northeast1
# 4) プロジェクト内のインスタンス一覧を表示
gcloud data-fusion instances list --location=asia-northeast1
# 5) 使い終わったインスタンスを削除してコストを抑える
gcloud data-fusion instances delete my-instance \
--location=asia-northeast1
Google Cloud Service
Cloud Data Fusionを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
分析
比較で見る軸
クラウド: Google Cloud / カテゴリ: 分析 / 難易度: intermediate
導入後に効く点
実体は CDAP ベースで、実行は Dataproc 上の Spark に変換される。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- 分析
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「分析 / operational」に近いか確認する。
- 強みである「コードを書かずに GUI でデータ統合パイプラインを組める。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。