複雑な組織全体でデータを管理する場合、適切なデータ ガバナンスと効果的なクラウド データ管理を行うには、データ リネージを理解することが不可欠です。このガイドでは、Knowledge Catalog(以前の Dataplex Universal Catalog)でマルチリージョン検索を使用して、地理的境界を越えてデータを追跡する方法について説明します。
デフォルトでは、Knowledge Catalog のデータ リネージはリージョン サービスです。データが移動または変換されるたびに、リンク、プロセス、イベントなどの結果のリネージ データは、そのアクションが発生した特定のリージョンに保存されます。
ただし、実際のデータパイプラインは、複数の Google Cloud プロジェクトとリージョンにまたがることがよくあります。たとえば、us-central1 の BigQuery テーブルで、europe-west1 のストレージ バケットにデータをコピーするとします。これらの境界を越えてデータアセットを追跡し、完全なリネージグラフを構築するには、マルチリージョン検索を実行する必要があります。
Knowledge Catalog では、次の 2 つの方法でこれらのクロスリージョン リネージ グラフを検出して接続できます。
searchLineageStreamingAPI(プレビュー版)を使用するサーバーサイドの自動化方法 - 推奨searchLinksAPI を使用するクライアントサイドのファンアウト メソッド
マルチリージョン リネージ検索の基本コンセプト
マルチリージョン リネージ検出を理解するには、システムがグラフ トラバーサルを処理する方法を理解する必要があります。
ルート条件: リネージ検索の開始点。1 つ以上のアセット名(BigQuery テーブルや Pub/Sub トピックなど)またはきめ細かい列フィールドで定義されます。
方向: ルート条件に対するグラフ走査の向き。上流(データの取得元)または下流(データの送信先)を検索できます。
幅優先探索: 接続されたノードを見つけるために使用されるアーキテクチャ メカニズム。検索では、リネージグラフをレイヤごとにトラバースし、リージョン境界を越えて接続された各アセットの実行深度を正確に計算します。
マルチリージョン検索メソッドの比較
どちらの方法でも、データのクロスリージョン ビューを組み立てることができますが、重い処理の処理方法が異なります。
| 機能 | サーバーサイドの自動化 searchLineageStreaming API |
クライアントサイドのファンアウト searchLinks API |
|---|---|---|
| 実施モデル | サーバーサイドの自動化: Google Cloud ルーティング エンジンは複数のリージョンをネイティブにトラバースします。 | クライアントサイドのオーケストレーション: アプリケーション スクリプトでリクエストを手動でループして管理する必要があります。 |
| リクエストのオーバーヘッド | 単一の API リクエスト: 単一の HTTP POST 呼び出しでマルチリージョン検索が開始されます。 |
複数の API リクエスト: リージョンとグラフレイヤごとに個別の HTTP 呼び出しが必要です。 |
| レスポンス処理 | リアルタイム ストリーム: 結果が見つかるたびにクライアントにプッシュされ、タイムアウトを防ぎます。 | 静的ペイロード: 個々の JSON 配列を手動で受信、収集、統合する必要があります。 |
| 深いグラフ(2 つ以上のレイヤ) | 最大 100 レベルのネストされたリネージグラフを自動的に処理します。 | N+1 クエリの問題が発生し、クライアントからの遅いラウンドトリップを繰り返し行う必要があります。 |
適切なマルチリージョン検索方法を選択する
次のシナリオを確認して、ワークロードに適したマルチリージョン検索方法を判断します。
次のユースケースでは、ストリーミング API メソッドを選択します。
複雑なグラフをトレースする: データが複数のリージョンにわたる複数の中間テーブル、バケット、パイプラインを移動するため、マルチレベルのトラバーサル(
maxDepthが 2 より大きい)が必要になります。列レベルのリネージを追跡する: リージョン間でフィールドを追跡したり、ワイルドカード(
*)検索を利用してすべての列の依存関係を一度に取得したりする場合。軽量なコードを維持する: 単一の API 呼び出しを行い、Google Cloud にルーティング、重複除去、グラフ アセンブリを処理させます。
パイプライン メタデータが必要: 同じリクエスト ペイロードで、パイプラインを実行するプロセスに関する構造の詳細を必要に応じて取得します。
次のシナリオでは、クライアントサイドのファンアウト メソッドを選択します。
浅い単一ホップのリネージのみをトレースする: リネージグラフが複雑ではなく、少数の既知のリージョン間で直接の親リンクまたは子リンク(
maxDepthが 1)のみを検索する必要がある。厳格なレガシー システム内で作業している: 標準の
SearchLinksエンドポイントを中心に構築された既存のデータ ガバナンス アプリケーションがあり、ストリーミング レスポンス コンシューマーを実装せずに構造的な下位互換性を維持したい。