← コースに戻る
未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。
pre-hook/post-hook
pre-hook・post-hookは、モデル(やシード・スナップショット)の実行の直前・直後に実行される任意のSQL文を設定する仕組み。dbtの組み込み機能だけではカバーできない、ウェアハウス固有の操作を行いたいときに使う。
# dbt_project.yml
models:
jaffle_shop:
marts:
finance:
+post-hook:
- "analyze table {{ this }} compute statistics for all columns"
用途の例としては、テーブル作成後の統計情報の更新、権限(GRANT)の付与、監査ログの記録などが挙げられる。dbt_project.ymlとモデルのconfigブロックの両方でhookを定義した場合、両方が実行される点に注意が必要。デフォルトでは、hookはモデルの作成と同じトランザクション内で実行される。