近年データを一元管理するデータ分析基盤が注目を集めています。
分析基盤を構築するときに欠かせないのがETLツールとデータウェアハウスでしょう。
数ある選択肢の中でもFivetranとSnowflakeの組み合わせは良く簡単に連携ができます。
連携方法は主に2通りです。
- ダッシュボードを使う
- APIを使う
簡単な連携も初めてだと詰まりますよね。
今回はFivetranとSnowflakeを連携する方法についてそれぞれ紹介します。
Snowflakeアカウントを作成する
はじめにSnowflakeアカウントを用意しましょう。
まだ作成していない場合は以下のURLから作成できます。
Snowflakeでは30日間の無料トライアルがあります。
期間中は400ドル分のクレジットがもらえるため、実質無料で試験運用できますね。
アカウントを作成したら連携するデータベースを作成しましょう。
+Databaseから新規作成ができます。
FivetranでSnowflake Destinationを作成する
FivetranでDestinationを作成します。
Destination(宛先)とはデータソースの格納先です。
Fivetranは多種多様なデータソース(データベース、SaaSアプリケーション、ファイルストレージなど)を自動的に抽出・統合し、指定したDestinationにデータを流します。
Destinationの作成方法は主に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
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"
}
}
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を確認します。
Connectedが表示され正常に連携されましたね。
APIを通じた設定は、自動化された環境やカスタム統合が必要な場合に特に便利です。
まとめ
今回はFivetranを使ってSnowflakeにデータを転送する方法を2つ紹介しました。
- ダッシュボードを使う場合
- APIを使う場合
ダッシュボードの場合はサイドバーにセットアップ手順が表示されるため、初めて連携するときに良さそうですね。
一方で、APIの場合はプログラミングの知識がないと厳しいように感じました。
設定の自由度はAPIの方が高いため、独自に設定を加えたいときはAPI連携が良いと思います。
どちらの方法も効果的なデータ分析基盤を築くために不可欠ですね。
手順に従って設定することで、データの統合と分析がさらに簡単になります。
FivetranとSnowflakeを連携させることで、データドリブンな意思決定を支援し、ビジネスの成長を加速させましょう!