データマネジメントの学校
← コースに戻る

未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。

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はモデルの作成と同じトランザクション内で実行される。