Skyvia を使って BigQuery と Hubspot を連携させる
この記事を読んで分かること
BigQuery に溜まっているデータを Hubspot に連携させる方法
全体像
今回は MySQL に溜まっているプロダクトのデータを分析目的で BigQuery に転送していることを想定し、それを Skyvia を使って Hubspot に連携させるフローを作成する
Skyvia とは
Skyvia はチェコに本社を持つ ETL ツール。他のツールと同様に様々なツールを連携させて、データを加工したり転送したりすることができる。類似ツールとしては DataSpider や Trocco がある。
他のツールと比較すると数千円から使い始めることができ、非常に低価格で使用することができる。
料金プラン
Pricing について。料金プランはこの4つに分かれており、それぞれ個別に課金される。通常の ETL 目的であれば Data Integraion のみ使うのがお勧め
Product | About | Description |
---|---|---|
Data Integration | データ連携 | ETL としての使い方。データを読み込み、加工して、書き込む |
Backup | CSV によるデータ出力 | S3 へのデータ出力など、単純な CSV Export で使う |
Query | クエリを発行するインターフェース | Sequel, Workbench のようにクライアントとして使用できる |
Connect |
Connections
まずは使いたいアプリケーションを接続させる。上のメニューから NEW > Connection を選択し、アプリケーションを選択する。例えば BigQuery の場合、Google アカウントで Sign in して認証して、DataSet Id などを設定する。Extract, Load の対象をすべてここで接続する。
Integrations
次に接続したアプリを Integration から連携させる。ここでもいくつか選択肢があるが、NEW > INTEGRATION > Data Flow がお勧め。他にも CSV から Import / Export したり、データを完全に同期させる Synchronization があったりする。
Sources
まずは左のメニューから Source を追加する。これが Extract のデータソースとなる。データを取得する方法はいくつかあるが、重要なのは Actions の設定。ここで Execute Command を選択するとクエリを書くことができ、Execute Query だと GUI から取得する情報を選ぶことができる。単純にデータを取得するだけでいいなら Query, 複雑な JOIN などが発生するなら Command を使う。
取得の設定をした後、Schema 設定を確認すると、取得できるデータのカラム名を確認することができる。
Targets
次に、取得したデータをどこに Load させるかを設定する。ここでは Actions で Insert や Update などを設定し、Parameters で具体的にどのカラムにどのデータを連携させるかマッピングさせる。
Transformations
シンプルな EL であれば Sources と Targets を設定すれば十分だが、T を実現するには様々な方法でデータを変換する。よく使うものとしては以下のようなものがある。
Name | Description |
---|---|
Conditional Split | 条件分岐。Target からデータを Lookup した上で、既存のデータがあるなら Update, なければ Insert のように条件分岐させる |
Lookup | Load の前に既存のデータを確認する。重複するデータがないかの確認、削除対象の ID の確認などに使う |
Extend | データの変換。取得したデータの型を変換したり、データを加工したりする。Targets の中でもできるが、分かりやすさの観点からは Extend を使うのがお勧め |
Run
名前の通り、単発の実行。Run した後に Monitor や Log を確認すると、実行結果を確認することができる。ただしログは分かりづらいことも多く、詳細を知りたいときはサポートに問い合わせる必要がある。
Schedule
動作を確認できたら、それを定期実行させることができる。左上の Schedule から実行するタイミングを設定し、State を Enabled にすることで、作成した Integration が定期実行される。
ちなみに Skyvia では Integraion のバージョン管理をすることができない。定期実行中の Integration を変更する際は注意すること。
その他、注意点など
ログの出力
Destinations の中から CSV Target を追加すると、実行結果を CSV ファイルに出力することができる。これを使うと Monitor の実行結果からより詳細な情報を得ることができる。特に追加した Target から赤い線を接続すると、エラー情報のみを出力できる。
ただし CSV に書き込んだ情報も課金対象になるため、すべての情報を出力するのはお勧めしない。
エラー通知
定期実行した Integraion がエラーになった際に通知するには、Account 設定の中から Notifications のメールアドレスを追加する。デフォルトだと Don't send notifications になっているため、Send to emails するのがお勧め。必要ならそれを Slack に転送する。
最新情報の確認
BigQuery のカラムを追加したり、Hubspot にプロパティを追加した際、Skyvia はその情報を自動では読み込まない。Skyvia で使えるようにするには、Connection や Integration にある更新ボタンを押す必要がある。
「みんなの想いを集め、社会を良くするお金の流れをつくる」READYFORのエンジニアブログです。技術情報を中心に様々なテーマで発信していきます。 ( Zenn: zenn.dev/p/readyfor_blog / Hatena: tech.readyfor.jp/ )
Discussion