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