Fivetranとは?Fivetran APIの使い方と各種設定方法を紹介

Fivetran_API クリエイティブツール

今やデータ統合はビジネスの成功に不可欠ですね。
Fivetranを活用すると複雑なデータも簡単に統合ができ、効率的に分析基盤を構築できます。

Fivetranは接続先は豊富でほぼ全てAPIからも連携ができます。

今回はAPIを利用して、Fivetranのコネクタやディスティネーションを作成する方法を紹介します。

Fivetranとは

Fivetranは、データソースを統合し、リアルタイムでの分析を可能にするクラウドベースのデータ統合ツールです。データベースやSaaS製品(Salesforceなど)と自動でデータを同期し分析する準備を整えてくれます。

Fivetran | Automated data movement platform
Effortlessly centralize all the data you need so your team can deliver better insights, faster. Start for free.

Fivetran APIの使い方について

ほとんど全ての機能はAPIを通じて操作ができます。
リソース別にAPIでできることをまとめました。

REST APIできること
ユーザー(Users)ユーザーの一覧、招待、編集、削除
ロール(Roles)事前定義されたロールとカスタムロールの一覧
グループ(Groups)グループ内のコネクタとグループの理解
チーム(Teams)チームの一覧、編集、削除、チームメンバーシップと権限の管理
デスティネーション(Destinations)グループ内でのデスティネーションの作成、編集
コネクター(Connectors)コネクターの作成、編集、削除、および一部のコネクターの管理
証明書(Certificates)TLS証明書の承認
WebhooksWebhooksの一覧、作成、編集、削除、テスト
dbt Core用の変換(Transformations for dbt Core)dbtプロジェクト、モデル、変換の一覧、作成、編集、削除、テスト
ログサービス(Log Services)ログサービスの一覧、作成、編集、削除、テスト
REST API Resourceの一覧表|Fivetran REST API Documentation

APIを利用するメリットとして再現性が挙げられます。

コードが残っていれば誰でも同じ設定ができますよね。
ダッシュボードで設定をすると操作履歴は残らないため再現するのが大変です。

APIキーを発行する

APIで連携するとき、はじめにFivetranでAPIキーを発行しましょう。

API Keyから発行ができます。

API Key→Generate new SecretでAPIキーを発行する|クリックすると拡大します

FivetranではAPIを発行した履歴は残りません。
後からキーを確認できないので大切に保管してください。

またGenerate New secretをクリックすると今までのAPIキーは使えなくなります。
慎重に再発行しましょう。

ユーザー一覧を表示する

ここからはいくつかAPIを実行します。
使う技術はBashです。

まずはユーザー情報を確認しましょう。

User Management with Fivetran REST API
Learn how to manage account users with Fivetran REST API

エンドポイントhttps://api.fivetran.com/v1/usersGETリクエストを送ります。

# 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を選びました。

必要なパラメーターは接続するコネクタによって変わるので詳しくはリファレンスを確認しましょう。

Connector Management API - Config Details
Find config details for each connector type in Connector Management API

エンドポイント 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コネクタが作成されている|クリックすると拡大します

Google Calendarのコネクタが作成されセットアップも完了していますね。

ディスティネーションを作成する

最後はディスティネーション(Destination)を作成します。

作成するディスティネーションはSnowflakeです。

Destination Management API - Config Details
Find config details for each destination type in Destination Management API

エンドポイント 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を確認します。

Snowflakeディスティネーションが作成されている|クリックすると拡大します

ディスティネーションが正常に作成されたことが分かります。

まとめ

今回はFivetran APIの使い方と各種設定方法を紹介しました。

Fivetranはデータ連携を簡単にするSaaSツールです。
ダッシュボード画面もシンプルで使いやすいなと思いました。

API連携をするときは公式のリファレンスが役に立ちます。
現在のところ日本語には対応していないようですが、翻訳ツールを使えば問題ないでしょう。

実例があると作業が簡単になると思うので今回の記事を参考にしてください。

Fivetran REST API
Fivetran REST API allows to perform key management actions such as creating and managing new users and creating and managing connectors.