コンテンツに移動
データ分析

編集機能を使用して CDF パイプラインを簡単に管理

2023年11月28日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 11 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。

データ パイプラインの複雑度が増して多くのチームメンバーが関わるようになると、変更点の追跡や効果的なコラボレーションを行うこと、そして統制のとれた形でさまざまな環境にパイプラインをデプロイすることが困難になりがちです。

そこで、Cloud Data Fusion(CDF)バッチ パイプライン用に導入された Google の新しいパイプライン編集機能が役立ちます。

バージョニングによるパイプラインの改善

一般的なパイプライン開発プロセスは本質的に反復的です。パイプラインに小さな単位の変更を加え、小規模なデータでテストし、次に本番環境データでテストして、パイプラインに機能を繰り返し追加します。反復パイプライン設計は、パイプラインの開発とテストのオーバーヘッドを削減するため、Cloud Data Fusion ユーザーにシームレスな利用体験を提供するうえでも重要です。ETL 開発者はパイプラインを反復的に設計でき、変更の完全な履歴を維持しながら改善点を段階的に追加できます。

Cloud Data Fusion バージョン 6.9 以降では、パイプラインを編集できます。すでにデプロイされているパイプラインを編集する場合、パイプラインを複製したり、複数のパイプラインにわたってバージョニング戦略を導入したりする必要はありません。代わりに、単一のパイプラインを編集すると、バージョンが追跡されます。デプロイ後にパイプライン編集機能を導入すると、パイプラインを複製して人為的にバージョニングを行う必要がなくなります。これにより、ユーザー エクスペリエンスと生産性が向上し、パイプラインのさまざまなクローン間の相関マッピングが維持されます。

パイプライン編集の利点

パイプライン編集機能を使用すると、次のことが可能になります。

  • パイプライン構造、構成、メタデータ、設定、コメントなど、デプロイされたパイプラインのあらゆる要素に段階的に変更を加えられます。
  • デプロイされたパイプライン用に編集した JSON ファイルをエクスポートすることもできます。

CDF 複製パイプライン機能との違いは?

  • パイプラインを複製すると、別の名前の新しいパイプラインが作成される一方、パイプラインの編集では、同一のパイプラインの新しいバージョンが作成されることから、パイプラインの急増が防止され(下図を参照)、より適切に整理できます。
https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_pipelines_list_view.max-1500x1500.png
  • 編集されたパイプラインのすべてのバージョンの履歴を維持できます。Google ドキュメントの機能のように、パイプラインの古いバージョンを表示できます。

始める前に

  • バージョン 6.9.1 以降の Cloud Data Fusion インスタンスが必要です。

6.9.1 以降にアップグレードすると、GitHub を使用した Source Control Management も利用できるようになります。こちらのブログ投稿を参照してください。

注: パイプライン編集機能は、CDF バッチ パイプラインでのみサポートされます。

この機能の使用方法

パイプラインを編集すると、CDF によって新しいドラフトが作成され、デプロイされるとそれがパイプラインの最新バージョンになります(インスタンスのアップグレードの場合、アップグレードされたパイプラインが、そのパイプラインの最新バージョンになります)。最新バージョンでは、以前のバージョンのトリガー、パイプライン構成、ランタイム引数、メタデータ、コメント、スケジュールが保持されます。最新バージョンはパイプラインのアクティブなバージョンです。実行することも、実行をスケジュールすることもできます。

デプロイされたパイプラインを編集するには、次の手を実施します。

  • 編集するパイプラインに移動し、[Edit] をクリックします。これには、パイプライン スタジオ ページとパイプライン リスト ページの両方から UI でアクセスできます。
https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_edit_button_from_studio.max-1100x1100.png

パイプライン スタジオ ページから編集する場合

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_-_edit_button_from_list_pipelines.max-600x600.png

パイプライン リスト ページから編集する場合

  • パイプラインの新しいドラフトが作成されます。パイプラインを編集し、必要な変更を加えます。オプション: パイプラインの編集を後で完了するには、[Save] をクリックします。同時実行の問題を軽減する目的で、ドラフトのステータスが表示されます(詳細は後述)。
https://storage.googleapis.com/gweb-cloudblog-publish/images/4_-_pipeline_edit_draft.max-1200x1200.png

編集ドラフトが開き、変更が可能に

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_-_in_progress_editing_status.max-700x700.png

まだデプロイされていない編集ドラフトについては「In-Progress」(進行中)の編集ステータスが表示される。

  • パイプラインの編集が完了したら、[Deploy] をクリックします。[Enter Change Summary] ダイアログ ボックスが開いたら、パイプラインに加えた変更の説明を入力し、[Deploy] をクリックします。編集バージョンを識別できるように、変更の概要の説明を入力することをおすすめします。
https://storage.googleapis.com/gweb-cloudblog-publish/images/6_-_edit_change_summary.max-1300x1300.png

: パイプライン ドラフトをデプロイするには、パイプライン ドラフトを変更する必要があります。変更しない場合、エラー メッセージが表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/7_-_edit_changes_required_to_deploy.max-400x400.png

変更履歴の表示

パイプライン スタジオ ページに導入された履歴ボタンをクリックすると、編集バージョンのリストが表示されます。このリストから、パイプラインの以前の編集バージョンにアクセスできます。古い編集バージョンに対して実行できるアクションは、表示復元のみです。古いバージョンは、作成日と変更の概要によって識別できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8_-_version_history_tab.max-1200x1200.png
  • [View] をクリックすると、スタジオ ページの古いパイプライン バージョンにリダイレクトされます。これは非アクティブなバージョンであり、実行したり、実行をスケジュールしたりできないことに注意してください。
https://storage.googleapis.com/gweb-cloudblog-publish/images/9_-_view_older_edit_version.max-1500x1500.png

[Return to latest version] リンクから最新バージョンに戻ることができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/10_-_return_to_latest_version.max-1000x1000.png
  • 古いバージョンで [Restore] をクリックすると、古いバージョンが復元され、最新のアクティブなバージョンになるため、このバージョンで実行または実行のスケジュールを設定できます。: 最新バージョンを復元することはできません。
https://storage.googleapis.com/gweb-cloudblog-publish/images/11_-_restore_older_version.max-1500x1500.png
https://storage.googleapis.com/gweb-cloudblog-publish/images/12_-_latest_version_in_version_history_tab.max-1600x1600.png

古い編集バージョンのエクスポート

古いバージョンのパイプライン JSON を表示または操作する場合は、それをローカルにエクスポートできます。編集された JSON は、インポートしてパイプライン編集ドラフトに戻すことができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/13_-_export_older_edit_version.max-800x800.png

孤立した編集ドラフト

パイプラインが削除されると、ドラフト ステータスで開かれているパイプラインを除く、デプロイされたパイプラインのすべてのバージョンが削除されます。関連するパイプラインが削除されると、ドラフトは既存のパイプラインに属さなくなるため、ドラフト パイプラインは Orphaned(孤立)ステータスになります。ドラフトをデプロイすると、新しいパイプラインがデプロイされ、Orphaned ステータスが解決されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/14_-_orphaned_edit_draft.max-1200x1200.png

陳腐化した編集ドラフト

現在編集中のパイプラインよりも新しいバージョンが有効になると、変更内容は最新のものではなくなります。これは、編集が完了する前に別のユーザーがパイプラインをデプロイした場合に発生します。その後、ドラフトは Out of date / Obsolete(最新ではない / 陳腐化)ステータスになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/15_-_obsolete_edit_draft.max-1200x1200.png

デプロイがブロックされ、変更を手動で調整するように求めるエラー メッセージが表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/16_-_manual_reconciliation_error.max-600x600.png

パイプラインを手動で調整するには、プロンプトで [Export and Rebase] をクリックします。その時点の JSON ドラフトがローカルにエクスポートされ、スタジオが最新バージョンにリベースされます。これにより、Out of date / Obsolete ステータスが解決されます。重複を手動で解決し、変更をインポートしてドラフトに戻すことをおすすめします。

詳細

ー ソフトウェア エンジニア Sanjana Sandeep

投稿先