
Airbyteを使って、HubspotのデータをBigQueryに流し込んでみた
背景
Airbyteはやはり良さそうだなぁ・・・
— がく@心も、ふくよかに (@gak_t12) February 3, 2022
EmbulkもローカルGUIがあったっけ・・あればいいんだけどね。dockerであれば、サーバにすぐ乗っけられる
・・ていうと、Airbyteはやはり最先端なETLツールでいいなぁ
と紹介されており気になってました。
「へーーーー」知らないツールだ…と思い、調べて見ると…数多くのコネクターが提供されている素敵なツール!
「Tableau Prepのコネクター提供されていないHubspot やStripeもBigQueryにデータを送り込みたい」
という直近ニーズと合致しました。
そして検証した結果、そこまで時間を掛けずに実装できました。
ただ、日本語ドキュメントが少ない範囲なので備忘録兼ねてnoteに書きます。
環境
Windows11、16GB、Git&Docker Desktopは既にインストール済み
Airbyte
AirbyteはOSS TypeのELTツールです。Local実行ならば転送費用もかかりません。早速手元でAirbyteのサーバーを立ち上げます。
上記の手順に従います、
※注意…下記コードはドキュメントが更新に伴い、古くなるケースがあります。ご容赦ください。
git clone https://github.com/airbytehq/airbyte.git
まずはGit Cloneです。Airbyteの環境をCloneできました。

cd airbyte
上記のフォルダに移動しましょう
docker-compose up
Gitにあるdockerを実行しましょう。ちなみにdocker-composeのyamlファイルの中身は非常に膨大でした…本当にいい時代ですね…
実行後Containerでは多くのairbyteの環境が動いています。
ここまで成功していれば、
http://localhost:8000/
にアクセスするとこのようなAirbyteの画面に移動することになるかと思います。

すごい…ちなみに左側のアイコンは下記のような意味です。

わかりやすいですね。
そしてここからは基本シンプル

New Sourceでは、どのサービスと接続するかを選びます。
New Destinationでは、どのサービスにアウトプットするかを選びます。

その後、どの程度Hubspot からBigQueryにデータを更新するか。またどのテーブルを対象とするかを選択できます。


そしてLaunchを押すと実行できます。(成功するとチェックマーク、失敗していると✕マークがついています…Mailchimpなぜだ…)
これで転送は完了です…!なんてシンプルなんでしょう。

ちなみにHubspotの場合は、APIコールの結果は、Json側で書き出されます。
最近はBigQueryのネイティブJSON型がサポートされたという話題もありますが、あくまでPublic Preview…なくなく今回は、Json extractを利用して、データを抽出します。
Jsonの文字列取得は下記が参考になりました。
WITH tmp AS (
SELECT properties as json from `XXXXXX`)
SELECT
JSON_EXTRACT(json, '$.hubspot_owner_assigneddate') AS hubspot_owner_assigneddate,
JSON_EXTRACT(json, '$.email') AS email,
FROM tmp

無事に取得できました!
所管
非常にシンプル過ぎてびっくりしました…GCE上でDeployすれば、驚くほどに安価なデータ転送が実現できる気がします。
またOSSではなく、Airbyte Cloudという形でサービスも展開しているようです(早速Trialを申し込みました!)
サーバーメンテナンス考えずに実装できる気軽さもあるならば非常に楽しみなツールです…!
