SnowflakeのQuickstartにあるAutomating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetranを試してみた

SnowflakeのQuickstartにあるAutomating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetranを試してみた

2025.09.04

かわばたです。

表題のとおり、SnowflakeのQuickstartにあるAutomating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetranを試していきます。

【ドキュメント】

https://quickstarts.snowflake.com/guide/vhol_fivetran/index.html?index=..%2F..index#0

対象読者

  • FivetranとSnowflakeの接続の仕方が知りたい方
  • Fivetran・dbt・Snowflakeの一連の流れを体験したい方

アジェンダ

  1. 概要
  2. Snowflakeの構成
  3. Fivetranの設定
  4. Googleスプレッドシートでサンプルデータをアップロード
  5. Githubでサンプルdbtプロジェクトをフォークする
  6. Fivetran_dbt変換の設定
  7. Snowflakeの設定
  8. まとめ

概要

このハンズオンでは、Fivetran、Snowflake、dbtを使用して、Google広告データのマーケティング分析を実行するためのステップバイステップガイドを学習します。

ドキュメントより引用。

検証環境

  • SnowflakeトライアルアカウントEnterprise版
  • Fivetran
  • Githubアカウント
  • サンプルのGoogle広告データ

Snowflakeの構成

ハンズオンのとおり進めていきます。

  1. Snowflakeトライアルアカウントにログインします。
  2. 今回のハンズオンではACCOUNTADMINロールで作業します。
    2025-09-01_15h29_12
  3. SnowflakeUIの画面左側、Horizon Catalog項目のデータ共有からPartner Connectを選択します。
    スクリーンショット 2025-09-01 155733
  4. 以下のように検索画面が表示されるので、Fivetranと入力します。
    2025-09-02_11h35_04
  5. Connectをクリックします。
    ※かわばたはもともと接続していたため「起動」と表記されています。
    スクリーンショット 2025-09-02 112318
  6. 表示されるポップアップでアクティブ化をクリックします。
    スクリーンショット 2025-09-02 112222

【躓きポイント】
ここでアクティブ化を選択せずに、Activate Laterをクリックするとその後のアクティブ化が面倒になりますので注意してください。
かわばたは後ほど設定しようと思いクリックしてしまいました。

  1. 新しいブラウザタブが開き、Fivetran のサイトに移動します。そこでログイン情報を入力します。
    スクリーンショット 2025-09-02 112342

Destinationの設定

手順6でActivate Laterを選択した方向けにDestinationの設定を記載していきます。

  1. Fivetranの画面から、Destinationを開きAdd destinationを選択します。
    2025-09-03_10h48_50

  2. Select a destinationに画面が遷移するので、Snowflakeを選択します。
    2025-09-03_10h51_08

  3. 以下内容がポップアップするので、任意の名称を入れます。
    2025-09-03_10h52_00

  4. 以下のスクリプトを実行し、使用するデータベース等を作成します。

begin;

   -- ユーザー / パスワード / ロール / ウェアハウス / データベースの変数を作成します (オブジェクトの場合は大文字にする必要があります)
   set role_name = 'FIVETRAN_ROLE';
   set user_name = 'FIVETRAN_USER';

   -- -- Snowflakeはパスワードベースの認証を廃止する予定なので、次の行を削除することをお勧めします。
   set user_password = 'password123';

   set warehouse_name = 'FIVETRAN_WAREHOUSE';
   set database_name = 'FIVETRAN_DATABASE';

   -- ユーザー/ロールの手順で、ロールをsecurityadminに変更します。
   use role securityadmin;

   -- fivetranのロールを作成する
   create role if not exists identifier($role_name);
   grant role identifier($role_name) to role SYSADMIN;

   -- fivetranのユーザーを作成する
   create user if not exists identifier($user_name)
   password = $user_password
   default_role = $role_name
   default_warehouse = $warehouse_name;

   grant role identifier($role_name) to user identifier($user_name);

   -- バイナリ入力フォーマットをBASE64に設定する
   ALTER USER identifier($user_name) SET BINARY_INPUT_FORMAT = 'BASE64';

   -- ウェアハウス/データベース手順のロールをシステム管理者に変更する
   use role sysadmin;

   -- fivetranの倉庫を作成する
   create warehouse if not exists identifier($warehouse_name)
   warehouse_size = xsmall
   warehouse_type = standard
   auto_suspend = 60
   auto_resume = true
   initially_suspended = true;

   -- fivetranのデータベースを作成する
   create database if not exists identifier($database_name);

   -- fivetranロールにウェアハウスへのアクセスを許可する
   grant USAGE
   on warehouse identifier($warehouse_name)
   to role identifier($role_name);

   -- fivetranにデータベースへのアクセスを許可する
   grant CREATE SCHEMA, MONITOR, USAGE
   on database identifier($database_name)
   to role identifier($role_name);

   -- STORAGE INTEGRATION サポートのために、ロールを ACCOUNTADMIN に変更します (GCP 上の Snowflake のみ必要)
   use role ACCOUNTADMIN;
   grant CREATE INTEGRATION on account to role identifier($role_name);
   use role sysadmin; 

 commit;
  1. ホスト名を確認します。
    Snowsight(SnowflakeのWeb UI)にアクセスしているブラウザのURLを確認します。URLは通常、以下の形式になっています。

https://<組織名>-<アカウント名>.snowflakecomputing.com

この<組織名>-<アカウント名>.snowflakecomputing.comの部分が、Snowflakeアカウントのホスト名です。

  1. 確認した内容を設定

2025-09-03_11h05_28
Authはキーペアかパスワードを選択できますが、Snowflakeではパスワードベースの認証を廃止する予定です。

2025-09-03_11h06_01

2025-09-03_11h06_37

すべての項目が入力できましたら、Save&Testをクリックします。
以下のように認証が完了したら終了です。

2025-09-03_10h36_29

【Snowflake接続セットアップガイド】

https://fivetran.com/docs/destinations/snowflake/setup-guide

Fivetranの設定

ここではFivetranアカウントの設定内容が記載されていますが、パスワードを設定するのみなので割愛します。

Googleスプレッドシートでサンプルデータをアップロード

  • Google Sheetsコネクタを使用して新しいスキーマとテーブルを作成する
  • テーブルごとに1つのGoogle Sheetsコネクタを作成します。
  • このドキュメントにあるGoogleスプレッドシートのリンクのいずれかを使用します
  1. Connectionsを選択し、Add connectionをクリックします。
    2025-09-03_11h12_48

  2. Browse our connectorsに遷移するので、Google Sheetsを選択します。
    2025-09-03_11h14_42

  3. Select a destinationに遷移するので、作成したDestinationを選択します。
    2025-09-03_11h17_02

  4. 2つのフィールドに次の値を入力します。

  • Destination schema: google_ads_demo
  • Destination table: final_url_performance

2025-09-03_11h20_54

  1. Authorize Service Accountを選択し、Sheet URLにスプレッドシートURLを入力しFind sheetをクリックします。
    問題なければNamed Rangefinal_url_performanceを選択します。

スプレッドシートURL:https://docs.google.com/spreadsheets/d/1BzGIzwDvyIDEeMsGj8wC1EXxEAEPodf8U-BUXKuZp-w/edit?usp=sharing
2025-09-03_11h34_38

【躓きポイント】
公式ドキュメントでは下記から選択してくださいとありますが、リンクをクリックすると期限切れでした。

https://github.com/fivetran/snowflake_fivetran_vhol/blob/main/LAB_ASSETS/GSHEETS_LINKS.md?_fsi=uqbrIqYR&_fsi=uqbrIqYR&_fsi=uqbrIqYR&_fsi=uqbrIqYR

2025-09-03_11h38_29

リンクをクリックすると、以下の画面が表示されます。
2025-09-03_11h39_11

GitHubで変更内容を確認し、過去のURLがまだ使用できたので活用しています。
2025-09-03_11h39_53

  1. 以下のように問題なく接続が出来ました。
    2025-09-03_11h42_42

  2. Continueをクリックすると、以下画面になるので、Start Initial Syncをクリックします。

2025-09-03_11h44_44

押下後は以下の画面に遷移し、同期が開始されます。
2025-09-03_12h47_03

  1. 1~7と同じ作業でNamed Rangecriteria_performanceclick_performanceを作成していきます。
    Snowflakeのデータベースを確認すると以下のように格納できていました。

2025-09-03_13h09_37

GithubでサンプルdbtプロジェクトをForkする

このセクションでは、Githubアカウントを作成し、そのアカウントにログインしていることを前提としています。

  1. GitHubのURLをクリックし、右上にForkボタンをクリックしてください。

URL:https://github.com/fivetran/snowflake_fivetran_vhol

2025-09-03_13h12_37

  1. 以下のようにForkできていれば完了です。
    2025-09-03_13h18_50

Fivetran_dbt変換を設定する

このセクションでは、FivetranのUIが変わっているためドキュメントに記載されている手順とは異なります。

【注意点】
このセクションで実際にデータ出力を得るには、少なくとも1つのFivetran Google Ads接続が、データを宛先へ同期している必要があります。
dbtの接続テストまでは試すことが可能です。

  1. Transformationsから、Add Transformationをクリックします。

2025-09-03_13h46_40
2. Select a destinationからdestinationを選択します。
2025-09-03_13h48_30

  1. 以下画面に遷移するので、dbtCoreを選択します。
    ※手順は異なりますが、ドキュメント準拠のため

2025-09-03_13h50_33

  1. Public Keyをコピーしておきます。

2025-09-03_13h53_47

  1. 作成したGitHubリポジトリでSettingsをクリックします。
    2025-09-03_13h57_19

  2. 左側のナビゲーションで,Deploy keysをクリックします。
    2025-09-03_13h58_10

  3. 画面の右上にあるAdd Deploy keysをクリックします。

2025-09-03_16h55_00

  1. 以下画面でタイトルをFivetran dbt accessと入力します。また、KeyにコピーしていたPublic Keyを貼り付けます。Allow write accessはチェック不要です。
    2025-09-03_17h10_40

Fivetranのアクセスを取り消したい場合はこちらの画面に戻り、キーを削除してください。

  1. Codeタブから、緑色のCodeボタンをクリックします。SSHタブからURLをコピーします。

URL内容

git@github.com:your_username/snowflake_fivetran_vhol.git

2025-09-03_17h17_18

  1. Fivetranに戻り、Repository URLにコピーした値を貼り付けます。
    2025-09-03_17h22_38

  2. Default Schema NameGOOGLE_ADS_DBTとしました。

2025-09-03_17h25_02

  1. Save&Testを実施し、以下画面が出たら完了です。

2025-09-03_17h27_42

  1. 以下画面に遷移するので、jobを作成します。

スクリーンショット 2025-09-03 173003

  1. こちらはドキュメントに記載がなかったので、以下のような形で設定しました。

2025-09-03_17h36_12

  1. 作成したjobを選択しRunをクリックします。
    以下のようにエラーとして出力されます。

2025-09-04_09h40_35

【躓きポイント】
ドキュメントを確認したところ、以下が要因でした。

  • Forkしたpackages.ymlのバージョンが古い
packages:

  - package: fivetran/google_ads_source
    version: [">=0.9.0", "<0.10.0"]

  - package: fivetran/google_ads
    version: [">=0.9.0", "<0.10.0"]

と記載がありますが、

packages:
  - package: fivetran/google_ads
    version: 1.0.0

に変更が必要です。
google_ads_source

All required sources and staging models are now bundled into this transformation package. Do not include fivetran/google_ads_source in your packages.yml since this package has been deprecated.

と記載があり、非推奨となっているため変換パッケージに含めないでくださいとありました。

【参考ドキュメント】

https://hub.getdbt.com/fivetran/google_ads/latest/

  • dbt_project.ymlのオブジェクトの指定が古い
source-paths: ["models"]
test-paths: ["tests"]

と記載がありますが、

model-paths: ["models"]
seed-paths: ["seeds"]

上記のように変更が必要です。

変更を加えた後は、以下のように成功しました。
2025-09-04_09h52_29

ただし、前述のとおりFivetran Google Ads接続でデータを送るような設定にしていないとSnowflake側へは変換結果が書き込まれない仕様でした。変換先のテーブルは作成されていました。
2025-09-04_09h54_32

Snowflakeパート2

前段のデータが作成できていなかったためこのセクションは割愛しました。
内容としては、前セクションで作成したデータをもとに管理者と分析者の一般的な作業フローを解説しています。

最後に

いかがでしたでしょうか。
Fivetranの設定・同期の仕方から、Snowflakeとの接続、dbtを介しての接続設定を体験できました。
このQuickstartが作成されてから時間も経っているため、今回活用したFivetran・Snowflake・dbtのUIや仕様が変わっている部分があり各製品のアップデートの速さを改めて感じました。
こちらの記事が何かの参考になれば幸いです。

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.