「Fivetranによるデータロード」と「HightouchによるReverseETL」のサイクルを回す時の注意事項を2つ挙げてみる

2023.07.11

さがらです。

Fivetranでデータロード、HigthtouchでReverseETL、というサイクルを社内検証で回してみた時、2点注意すべきことに気づいたので、備忘録的に本記事でまとめておきます。

Fivetranでは日本語カラムは中国語読み・ローマ字読みでロードされること

これはFivetran特有の仕様なのですが、日本語カラムは中国語読み・ローマ字読みでロードされるという仕様があります。

例えば、下図は左がMixpanelのUserの画面、右側がFivetranでロードしたSnowflake上のUserテーブルなのですが、フォロー店舗FORO_DIAN_PUとなっています。

このFivetranでロードしたSnowflakeのUserテーブルをそのままHightouchで別のSaaSなどにSyncしようとすると、正直カラム名から何を意味しているのかが全くわかりません…

この対策としては、大きく以下2種類あると思っています。案1か案2どちらかを環境に応じて選定するのが良いと思います。

  • 案1:Fivetranでロードしたいデータソース側で、最初から日本語名で属性を作ることを避ける
    • メリット:データソース上の属性名~DWH上のテーブルのカラム名まで一貫した名称で管理できる
    • デメリット:データソース側で英語表記にしてしまうと、そのデータソース側の操作を行う際に使いづらくなってしまう可能性がある
  • 案2:Fivetranでロード後、dbt等を用いてカラム名を訂正する
    • メリット:データソース側では日本語で運用できる
    • デメリット:カラム名を変換するための処理と、別のテーブルやビューが増えてしまう

HightouchでReverseETL先のアプリケーションで自動で作成される属性と同名のカラムをSyncすると、アプリケーション上で同じ属性名で重複してしまう

HightouchではSync画面で、ReverseETL先のアプリケーションにどのような属性名でSyncするか設定できますが、ReverseETL先のアプリケーションで自動で作成される属性と同じ名称でSync設定すると、同じ属性名で重複登録されていまいます。

例を見たほうがわかりやすいと思うので、具体例としてMixpanelでは対象ユーザーの最終更新日がUI上ではUpdated at、裏のデータ上はlast_seenとして登録されます。(参考:Mixpanelの公式ドキュメント

このとき、Hightouchで「last_seen」という属性名でMixpanelへSyncしてしまうと、Mixpanelのデータ上「last_seen」が2つになってしまいます。(下図でいうUpdated atは、裏側ではlast_seenという属性名で登録されています。)

また、この注意点に関連してアプリケーション(今回はMixpanel)上に同じ属性名が2つあるときに、アプリケーションのデータをFivetranでDWHにSyncしようとしたとき、下図のような警告が出てきました。

そのため、HightouchでSyncするときにアプリケーション上の属性名を入力する際は、アプリケーション上のデフォルトの属性名と重複しないように気をつけるようにしましょう!

最後に

簡単ではありますが、FivetranとHightouchを併せて使ってみて気づいた注意点をまとめてみました。

もっと深く使っていくと他にもあると思うので、そのときはまたブログにします!