Slide 24
Slide 24 text
© ZOZO, Inc.
24
dbtデータマートタスクグループの定義
● manifest.jsonをロード
● 各モデルの情報を取得
● モデルごとにDbtModelクラスを
インスタンス化
● DbtModelインスタンスが要素となる
dbt_modelsリストを作成
with open('target/manifest') as f:
manifest_dict = json.load(f)
dbt_models = []
# manifest.jsonに記載の各nodeでループ
for node in manifest_dict["nodes"].keys():
if node.split('.')[0] == "model":
# model情報を取得
model_conf = manifest_dict["nodes"][node]
unique_id = model_conf['unique_id']
project_id = model_conf['database']
dataset = model_conf['schema']
table = model_conf['name']
depends_on_models = model_conf['depends_on']['nodes']
# 取得した情報を元に
DbtModelをインスタンス化
dbt_model = DbtModel(
project_id,
unique_id,
dataset,
table,
depends_on_models,
)
# dbt_modelsリストに格納
dbt_models.append(dbt_model)