DearOneの小林と申します。グロースマーケティング部という部署で主に「Hightouch」の営業や導入の支援を行っています。実家に帰る度にベランダのガジュマルが明らかに大きくなっていて、最近では将来の不安の種になりつつあります。
今回は、HightouchとdbtやGitHubを連携させることでデータパイプラインの構築、管理、運用を効率化させる事例を紹介いたします。
DearOneではHightouchの日本唯一のリセラー代理店としてHightouch社からも様々な情報共有を受けています。そういった情報を皆様にできるだけ早く、日本語でわかりやすく伝えていきたいと思います。
Hightouchのdbt連携
Hightouchは、クラウドDWHなどのデータソースのデータを元にHightouch上で定義したmodelを使い、データを様々なマーケティングツールへと連携することができるリバースETLツールです。
Hightouchは、広告プラットフォーム、CRMツール、MAツールを含む200以上のマーケティングツールとの連携が可能です。また、コネクタがないツールともAPIを使ったデータ連携を簡単に構築する機能を持っているため、すでにお使いのメール配信ツールと自由にデータを連携することもできます。
>>Hightouchのコネクタ一覧はこちら
>>Hightouchとのコネクタがないツールへのデータ連携方法はこちら
そして、Hightouchではdbtと連携させることでmodelの管理やdbt CloudのワークフローにHightouchの処理を組み込むことが可能です。(dbt連携のHightouch公式ドキュメントはこちら)
Hightouchのdbt連携における主なメリットは下記の3点になります。
今回の事例では主にHightouchのデータ連携処理であるsyncをdbt Exposureとして登録できる機能を紹介いたします。
ユースケース
dbt repositoryに、営業担当が活用する商談情報をSalesfoeceへ連携するためのmodelを作成し、そのmodelをHightouchで使ってデータパイプラインを構築します。
dbt Exposureとの連携では、dbt modelを使ったsyncがHightouch上で新たに作られる度に自動的にGit repositoryにdbt exposureが更新されます。exposureの記述をHightouch側が自動で行ってくれるため、自分でexposureへの記述をする必要がなくなります。
そしてどのHightouchのsyncでどのmodelが使われているのかということが、dbtのドキュメント上のLineage Graphで視覚的に確認することもできるようになります。
さらに、dbt modelの変更をGitHubに連携していて、変更が下流工程に与える影響をLineage Graphで確認するのを忘れてしまった場合でも、dbt CI checks機能を使ってdbt modelの変更に関連するHightouch Syncの不整合を自動でチェックすることができます。
このようにdbtとの連携を行うことで、データパイプラインにおけるそれぞれのmodelの状態や前後の処理との依存関係のオブザーバビリティを格段に向上させ、運用効率を高めることができます。
連携作業イメージ
では、最後に実際のHightouchのUIを見ながら連携作業のイメージを持っていただきます。
dbt Exposuresのセットアップ
HightouchのUI上にある外部連携のタブからdbtとの接続設定を行います。
まずは設定画面からdbt連携を行うデータソースを指定します。
(Extensions > dbt models)
次にdbt exposureとの接続設定画面で接続するブランチなどの指定を行います。この際、指定したブランチへの書き込みの権限をHightouch側に許可する必要があります。
Hightouch上でdbt modelを使ったsyncを作成します。
この状態でdbt repositoryを見ると、modelsフォルダ内にhightouch_sync_exposure.ymlと付いたyamlファイルが追加されています。
dbt modelを使ったsyncに変更があった際には、その内容が自動で追記されていきます。
dbtのLineage Graphを見ると、作成したexposureが追加されていることが確認できます。
dbt CI checksのセットアップ
先ほどのHightouch上のdbt連携設定の画面でGitHub Pull Request checksをONにします。
これによって、GitHubのブランチでHightouchのsyncで使用するdbt modelの1つに編集を加えた際に、Hightouchのsyncに対するチェックが実行されているのが確認できます。
チェックで不備が見つかった場合は、以下のような形で確認することができます。
これによって、Hightouchのsyncを停止したりdbt modelを修正するなどの必要なアクションプランを素早く立てることができます。
活用のヒント
このdbt連携の機能を活用しHightouchで使う全てのモデルをdbtで管理することができれば、リバースETLにおけるデータパイプライン管理を格段に楽にすることができます。
その際はHightouchのsync用のdbtディレクトリを作成し、Hightouchでデータを連携する様々な連携先ごとに管理することが望ましいのではないでしょうか。
製品サイトでHightouch機能を詳しく知りたい方は以下からご確認ください。
Hightouch無料プランのご紹介
そしてHightouchでは無料プランを提供しており、リバースETL機能をこのプラン内でお試しいただくことが可能です。プランは下記のリンクから数分でご利用開始いただくことが可能で、お支払情報の入力なども必要ありません。
ご興味がありましたらぜひお試しください。(リンク先ページの”Start for free”から)
最後に
Hightouchやdbtといったツールを活用することでデータパイプラインの構築や運用を効率化するだけでなく、これまでエンジニアの方がこういった作業にかけていた工数を削減し、他の作業に注力する環境を作り出すことなども可能になります。
今後も皆様に何かしらの刺激や気づきを与えられるような記事や発信ができたらと思っております。最後まで記事を読んでいただき誠にありがとうございました。この記事が皆様にとって何かお役に立てましたら幸いです。