数少ない事例を投稿している方にも感D r zenn: “DataplexのデータリネージAPIを使って、対象のテーブルに 依存しているテーブルをスクリプトで列挙する” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 from import def for in if return google.cloud datacatalog_lineage_v1 (fully_qualified_name: , location: ) [ ]: project_id, dataset_id, table_name fully_qualified_name.split( ) bq_fqn {fully_qualified_name} target datacatalog_lineage_v1.EntityReference() target.fully_qualified_name bq_fqn request datacatalog_lineage_v1.SearchLinksRequest( target target, parent {project_id} {location} , ) lineage_client datacatalog_lineage_v1.LineageClient() page_result lineage_client.search_links(request request) dependencies [] link page_result: source_fqn link.source.fully_qualified_name source_fqn.startswith( ): bq_name source_fqn[ ( ) :] dependencies.append(bq_name) dependencies get_table_dependencies str str -> list str = = = = = = = = = = = = = len "." f"bigquery: " f"projects/ /locations/ " "bigquery:" "bigquery:" # BigQuery用のFQNフォーマット # 検索リクエストを作成 (指定viewをターゲットとするリンクを検索) # APIを呼び出し、結果を取得 # 結果を処理 # ソースからBigQueryの完全修飾名を抽出 # bigquery:project.dataset.tableから project.dataset.table 形式に変換 9 / 15 fqn指定で依存するリソースリンクを取得する例