Slide 9
Slide 9 text
Data Lineage APIについて
r 公式のReferenceくらいしか情報がなくて結構にらめっこ
しC
r LLMにRefつっこんでもハルシネーションしまくりだった
ので結局引数と返り値を確認しながら実c
r 数少ない事例を投稿している方にも感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指定で依存するリソースリンクを取得する例