今やデータ統合はビジネスの成功に不可欠ですね。
Fivetranを活用すると複雑なデータも簡単に統合ができ、効率的に分析基盤を構築できます。
Fivetranは接続先は豊富でほぼ全てAPIからも連携ができます。
今回はAPIを利用して、Fivetranのコネクタやディスティネーションを作成する方法を紹介します。
Fivetranとは
Fivetranは、データソースを統合し、リアルタイムでの分析を可能にするクラウドベースのデータ統合ツールです。データベースやSaaS製品(Salesforceなど)と自動でデータを同期し分析する準備を整えてくれます。
Fivetran APIの使い方について
ほとんど全ての機能はAPIを通じて操作ができます。
リソース別にAPIでできることをまとめました。
REST API | できること |
ユーザー(Users) | ユーザーの一覧、招待、編集、削除 |
ロール(Roles) | 事前定義されたロールとカスタムロールの一覧 |
グループ(Groups) | グループ内のコネクタとグループの理解 |
チーム(Teams) | チームの一覧、編集、削除、チームメンバーシップと権限の管理 |
デスティネーション(Destinations) | グループ内でのデスティネーションの作成、編集 |
コネクター(Connectors) | コネクターの作成、編集、削除、および一部のコネクターの管理 |
証明書(Certificates) | TLS証明書の承認 |
Webhooks | Webhooksの一覧、作成、編集、削除、テスト |
dbt Core用の変換(Transformations for dbt Core) | dbtプロジェクト、モデル、変換の一覧、作成、編集、削除、テスト |
ログサービス(Log Services) | ログサービスの一覧、作成、編集、削除、テスト |
APIを利用するメリットとして再現性が挙げられます。
コードが残っていれば誰でも同じ設定ができますよね。
ダッシュボードで設定をすると操作履歴は残らないため再現するのが大変です。
APIキーを発行する
APIで連携するとき、はじめにFivetranでAPIキーを発行しましょう。
API Keyから発行ができます。
FivetranではAPIを発行した履歴は残りません。
後からキーを確認できないので大切に保管してください。
またGenerate New secretをクリックすると今までのAPIキーは使えなくなります。
慎重に再発行しましょう。
ユーザー一覧を表示する
ここからはいくつかAPIを実行します。
使う技術はBashです。
まずはユーザー情報を確認しましょう。
エンドポイントhttps://api.fivetran.com/v1/users
にGET
リクエストを送ります。
# APIとAPI秘密鍵を設定する
API_KEY=$FIVETRAN_API_KEY
API_SECRET_KEY=$FIVETRAN_API_SECRET_KEY
curl -X GET "https://api.fivetran.com/v1/users" -u $API_KEY:$API_SECRET_KEY | jq
2つのユーザーアカウントを確認できました。
これらは私のFivetranアカウントに登録されているユーザーたちです。
ダッシュボードと同じようにAPIからでもユーザー情報を確認できます。
APIを実行したとき各種設定が一覧化されるので分かりやすいですね。
コネクターを作成する
続いてコネクタ(Connector)を作成します。
接続するコネクタはGoogle Calendarを選びました。
必要なパラメーターは接続するコネクタによって変わるので詳しくはリファレンスを確認しましょう。
エンドポイント https://api.fivetran.com/v1/connectors
にPOSTリクエストを送ります。
# FivetranのAPIキーとシークレットを設定
API_KEY=$FIVETRAN_API_KEY
API_SECRET_KEY=$FIVETRAN_API_SECRET_KEY
# APIエンドポイント
URL="https://api.fivetran.com/v1/connectors"
# リクエストボディ
#
BODY='{
"service": "google_calendar",
"group_id": "lore_detecting",
"config": {
"schema": "google_calendar"
},
"auth": {
"client_access": {
"client_id": "aaaaaaaaaaaaa.apps.googleusercontent.com",
"client_secret": "xxxxxxxxxxxxxx"
},
"refresh_token": "yyyyyyyyyyyyyyyy",
"access_token": "zzzzzzzzzzzzzzzzzzzzzzzzzz"
}
}'
# APIリクエストの実行
curl -X POST "$URL" \
-u "$API_KEY:$API_SECRET_KEY" \
-H "Content-Type: application/json" \
-d "$BODY" | jq
Google Calendarコネクタを作成できました。
Fivetranで確認します。
Google Calendarのコネクタが作成されセットアップも完了していますね。
ディスティネーションを作成する
最後はディスティネーション(Destination)を作成します。
作成するディスティネーションはSnowflakeです。
エンドポイント https://api.fivetran.com/v1/destinations
にPOSTリクエストを送ります。
# FivetranのAPIキーとシークレットを設定
API_KEY=$FIVETRAN_API_KEY
API_SECRET_KEY=$FIVETRAN_API_SECRET_KEY
# APIエンドポイント
URL="https://api.fivetran.com/v1/destinations"
# リクエストボディ
BODY='{
"group_id": "prohibiting_spindle",
"service": "snowflake",
"region":"AZURE_JAPANEAST",
"time_zone_offset":"+9",
"config": {
"host":"<組織名>.<リージョン>.snowflakecomputing.com",
"port":443,
"database":"SNOWFLAKE_DEV",
"auth":"PASSWORD",
"user":"RyutoS",
"password":"xxxxxxxxxxxx"
}
}'
# APIリクエストの実行
curl -X POST "$URL" \
-u "$API_KEY:$API_SECRET_KEY" \
-H "Content-Type: application/json" \
-d "$BODY" | jq
Snowflakeディスティネーションを作成できました。
Fivetranを確認します。
ディスティネーションが正常に作成されたことが分かります。
まとめ
今回はFivetran APIの使い方と各種設定方法を紹介しました。
Fivetranはデータ連携を簡単にするSaaSツールです。
ダッシュボード画面もシンプルで使いやすいなと思いました。
API連携をするときは公式のリファレンスが役に立ちます。
現在のところ日本語には対応していないようですが、翻訳ツールを使えば問題ないでしょう。
実例があると作業が簡単になると思うので今回の記事を参考にしてください。