はじめに 私が所属しているライフイズテックのデータ基盤グループでは、データのTransformationにdbtを利用しています。今回はdbtのmacroを使って、共通処理をまとめてリファクタリングした事例を紹介します。 リファクタリングに至った背景 ライフイズテックではSnowflakeを導入し、Snowflakeにデータをロードする際にスキーマ検出とスキーマ進化を利用しています。その際にタイムスタンプのカラムはTIIMESTAMP_NTZとしてデータがロードされます。 プロダクトのタイムスタンプはUTCとして保存されているため、UTCのタイムスタンプがTIMESTAMP_NTZとして保存されています。ただサービス自体は日本でしか展開していないため、下記のように分析のためにdbtで事前に日本時間に変換をしています。 タイムスタンプのタイムゾーン変換は何度も同じ処理が各モデルに必要になるた