FivetranとSnowflakeを連携するには?ダッシュボードとAPIそれぞれ手順を紹介

Fivetran_Snowflake クリエイティブツール

近年データを一元管理するデータ分析基盤が注目を集めています。

分析基盤を構築するときに欠かせないのがETLツールとデータウェアハウスでしょう。
数ある選択肢の中でもFivetranとSnowflakeの組み合わせは良く簡単に連携ができます。

連携方法は主に2通りです。

  1. ダッシュボードを使う
  2. APIを使う

簡単な連携も初めてだと詰まりますよね。

今回はFivetranとSnowflakeを連携する方法についてそれぞれ紹介します。

Snowflakeアカウントを作成する

はじめにSnowflakeアカウントを用意しましょう。
まだ作成していない場合は以下のURLから作成できます。

Snowflake Trial

Snowflakeでは30日間の無料トライアルがあります。
期間中は400ドル分のクレジットがもらえるため、実質無料で試験運用できますね。

アカウントを作成したら連携するデータベースを作成しましょう。

+Databaseから新規作成ができます。

FivetranでSnowflake Destinationを作成する

FivetranでDestinationを作成します。

Destination(宛先)とはデータソースの格納先です。
Fivetranは多種多様なデータソース(データベース、SaaSアプリケーション、ファイルストレージなど)を自動的に抽出・統合し、指定したDestinationにデータを流します。

Destinationの作成画面|クリックすると拡大します

Destinationの作成方法は主に2通りあります。

  1. ダッシュボードから作成する
  2. APIから作成する

ダッシュボードから作成すると横にセットアップガイドが表示されるので困ったときの助けになるでしょ。

APIから作成する場合は必ずリファレンスを確認することをおすすめします。

ダッシュボードで作成する場合

ダッシュボードから作成する手順を紹介します。

はじめにDestination名を決めます。

続いてDestination先を選びます。
今回はSnowflakeですね。

接続には次の項目が必要です。

  • Host:<組織名>.<リージョン>.snowflakecomputing.com
  • Port:デフォルトは443
  • User:Snowflakeのユーザー
  • Database:先ほど作成したデータベース名
  • Auth:Password or Key Pair どちらかを選ぶ
  • Password:アカウントのパスワード(AuthでPasswordを選んだ場合)
  • Data processing location:Japan
  • Cloud Service provide:AWS, GCP, Azureいずれか1つを選ぶ
  • Time zone:JST
Fivetran Snowflake Destinationの設定画面|クリックすると拡大します

HostはSnowflakeのログイン画面で確認できます。

Host名はsnowflakeのログイン画面で確認できる|クリックすると拡大します

入力できたらSave&Testをクリックして認証情報に問題ないか確認しましょう。

エラーが発生しなければこのままSnowflakeと連携します。

Connectedが表示されたので正常に連携できましたね。

APIから作成する場合

続いてAPIから作成する手順を紹介します。

ダッシュボードのときと同じように、はじめにDestinationを作成します。

そして以下のエンドポイントにPOSTリクエストを投げます。

https://api.fivetran.com/v1/connectors

リクエストと一緒に送るパラメーターは基本的にダッシュボード作成時と変わりありません。

{
    "service": "snowflake_db",
    "group_id": "target_group_id",
    "config": {
        "schema_prefix": "test_snowflake_db",
        "auth": "password",
        "host": "host",
        "port": 443,
        "database": "database",
        "user": "user",
        "password": "password",
        "connectionType": "Directly",
        "passphrase": "passphrase",
        "private_key": "privateKey",
        "is_private_key_encrypted": true,
        "role": "role",
        "update_method": "TELEPORT"
    }
}
Connector Management API - Config Details
Find config details for each connector type in Connector Management API

group_idはDestination詳細ページで確認できます。

group_idはDestinationの詳細から確認できる|クリックすると拡大します

リクエスト用のBashスクリプトを作成しました。

# 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":"<組織名>.japan-east.azure.snowflakecomputing.com",
        "port":443,
        "database":"SNOWFLAKE_DEV",
        "auth":"PASSWORD",
        "user":"RyutoS",
        "password":"xxxxxxxxxx"
    }
}'

# APIリクエストの実行
curl -X POST "$URL" \
     -u "$API_KEY:$API_SECRET_KEY" \
     -H "Content-Type: application/json" \
     -d "$BODY" | jq
実行結果|クリックすると拡大します

Destinationが作成できたのでFivetranを確認します。

Snowflake Destinationが作成された|クリックすると拡大します

Connectedが表示され正常に連携されましたね。

APIを通じた設定は、自動化された環境やカスタム統合が必要な場合に特に便利です。

まとめ

今回はFivetranを使ってSnowflakeにデータを転送する方法を2つ紹介しました。

  1. ダッシュボードを使う場合
  2. APIを使う場合

ダッシュボードの場合はサイドバーにセットアップ手順が表示されるため、初めて連携するときに良さそうですね。

一方で、APIの場合はプログラミングの知識がないと厳しいように感じました。
設定の自由度はAPIの方が高いため、独自に設定を加えたいときはAPI連携が良いと思います。

どちらの方法も効果的なデータ分析基盤を築くために不可欠ですね。
手順に従って設定することで、データの統合と分析がさらに簡単になります。

FivetranとSnowflakeを連携させることで、データドリブンな意思決定を支援し、ビジネスの成長を加速させましょう!