このドキュメントでは、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エンドポイントを中心に構築された既存のデータ ガバナンス アプリケーションがあり、ストリーミング レスポンス コンシューマーを実装せずに構造的な下位互換性を維持したい。