I tried Automating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetran from Snowflake's Quickstart

I tried Automating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetran from Snowflake's Quickstart

2025.09.04

I am Kawabata.

As the title indicates, I'll be trying out "Automating Data Pipelines to Drive Marketing Analytics with Snowflake & Fivetran" from Snowflake's Quickstart.

【Document】

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

Target audience

  • Those who want to know how to connect Fivetran and Snowflake
  • Those who want to experience the workflow of Fivetran, dbt, and Snowflake

Agenda

  1. Overview
  2. Snowflake configuration
  3. Fivetran setup
  4. Upload sample data with Google Spreadsheets
  5. Fork sample dbt project on Github
  6. Configure Fivetran_dbt transformation
  7. Snowflake setup
  8. Summary

Overview

In this hands-on lab, you will learn step-by-step guidance on how to use Fivetran, Snowflake, and dbt to execute marketing analytics for Google Ads data.

Quoted from the documentation.

Testing environment

  • Snowflake trial account Enterprise edition
  • Fivetran
  • Github account
  • Sample Google Ads data

Snowflake configuration

I'll proceed according to the hands-on guide.

  1. Log in to your Snowflake trial account.
  2. For this hands-on, we'll work with the ACCOUNTADMIN role.
    2025-09-01_15h29_12
  3. From the left side of the Snowflake UI, select Partner Connect from the data sharing under the Horizon Catalog section.
    Screenshot 2025-09-01 155733
  4. The following search screen will appear, so enter Fivetran.
    2025-09-02_11h35_04
  5. Click Connect.
    *Note: As I was already connected, mine says "Launch" instead.
    Screenshot 2025-09-02 112318
  6. Click activate in the popup that appears.
    Screenshot 2025-09-02 112222

【Stumbling point】
Be careful not to click Activate Later instead of choosing activation here, as later activation becomes troublesome.
I clicked it thinking I would set it up later.

  1. A new browser tab will open and take you to the Fivetran site. Enter your login information there.
    Screenshot 2025-09-02 112342### Setting up the Destination
    Here I will describe the Destination setup for those who selected Activate Later in step 6.

  2. From the Fivetran screen, open Destination and select Add destination.
    2025-09-03_10h48_50

  3. The screen will transition to Select a destination, so select Snowflake.
    2025-09-03_10h51_08

  4. The following popup will appear, so enter any name of your choice.
    2025-09-03_10h52_00

  5. Execute the following script to create the database and other resources to be used.

			
			begin;

   -- Create variables for user / password / role / warehouse / database (need to be in uppercase for objects)
   set role_name = 'FIVETRAN_ROLE';
   set user_name = 'FIVETRAN_USER';

   -- -- Snowflake is planning to deprecate password-based authentication, so we recommend removing the next line.
   set user_password = 'password123';

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

   -- For user/role steps, change role to securityadmin
   use role securityadmin;

   -- Create a role for fivetran
   create role if not exists identifier($role_name);
   grant role identifier($role_name) to role SYSADMIN;

   -- Create a user for 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);

   -- Set binary input format to BASE64
   ALTER USER identifier($user_name) SET BINARY_INPUT_FORMAT = 'BASE64';

   -- Change role to sysadmin for warehouse/database steps
   use role sysadmin;

   -- Create a warehouse for fivetran
   create warehouse if not exists identifier($warehouse_name)
   warehouse_size = xsmall
   warehouse_type = standard
   auto_suspend = 60
   auto_resume = true
   initially_suspended = true;

   -- Create a database for fivetran
   create database if not exists identifier($database_name);

   -- Grant fivetran role access to the warehouse
   grant USAGE
   on warehouse identifier($warehouse_name)
   to role identifier($role_name);

   -- Grant fivetran access to the database
   grant CREATE SCHEMA, MONITOR, USAGE
   on database identifier($database_name)
   to role identifier($role_name);

   -- Change role to ACCOUNTADMIN for STORAGE INTEGRATION support (only needed for Snowflake on GCP)
   use role ACCOUNTADMIN;
   grant CREATE INTEGRATION on account to role identifier($role_name);
   use role sysadmin; 

 commit;
 ```5. Check the hostname.
Check the URL in the browser where you are accessing Snowsight (Snowflake's Web UI). The URL is typically in the following format:

`https://<organization-name>-<account-name>.snowflakecomputing.com`

This `<organization-name>-<account-name>.snowflakecomputing.com` part is the hostname of your Snowflake account.

6. Configure with the confirmed information

![2025-09-03_11h05_28](https://devio2024-media.developers.io/image/upload/v1756865146/2025/09/03/cgiydwilpcpdz2ktxcc5.png)
For `Auth`, you can choose between key pair or password, but Snowflake plans to deprecate password-based authentication.

![2025-09-03_11h06_01](https://devio2024-media.developers.io/image/upload/v1756865167/2025/09/03/xpsgaadqpy0byqabsegz.png)

![2025-09-03_11h06_37](https://devio2024-media.developers.io/image/upload/v1756865203/2025/09/03/ydwuvry6lfx5plqn8g5b.png)

Once you have entered all the items, click on `Save & Test`.
When authentication is completed as shown below, you are done.

![2025-09-03_10h36_29](https://devio2024-media.developers.io/image/upload/v1756865360/2025/09/03/g17nl0uprygsrukvyl39.png)

【Snowflake Connection Setup Guide】

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

## Fivetran Configuration

The Fivetran account configuration details are described here, but since it only involves setting a password, we'll skip this section.## Upload Sample Data with Google Spreadsheet
- Create new schema and table using Google Sheets connector
- Create one Google Sheets connector per table
- Use one of the Google spreadsheet links in this document

1. Select `Connections` and click `Add connection`.
![2025-09-03_11h12_48](https://devio2024-media.developers.io/image/upload/v1756865647/2025/09/03/u3lygqmsay0ek7rz22cq.png)

2. Navigate to `Browse our connectors` and select `Google Sheets`.
![2025-09-03_11h14_42](https://devio2024-media.developers.io/image/upload/v1756865756/2025/09/03/zfzuztjrvowysgdhccfl.png)

3. Navigate to `Select a destination` and select the `Destination` you created.
![2025-09-03_11h17_02](https://devio2024-media.developers.io/image/upload/v1756865835/2025/09/03/axvycpexw9h19emrxmbv.png)

4. Enter the following values in the two fields:
- Destination schema: `google_ads_demo`
- Destination table: `final_url_performance`

![2025-09-03_11h20_54](https://devio2024-media.developers.io/image/upload/v1756866070/2025/09/03/kgmjjxrwvr1cqmaebiti.png)

5. Select `Authorize Service Account`, enter the spreadsheet URL in the `Sheet URL` field and click `Find sheet`.
If there are no issues, select `final_url_performance` from the `Named Range`.

Spreadsheet URL: https://docs.google.com/spreadsheets/d/1BzGIzwDvyIDEeMsGj8wC1EXxEAEPodf8U-BUXKuZp-w/edit?usp=sharing
![2025-09-03_11h34_38](https://devio2024-media.developers.io/image/upload/v1756866910/2025/09/03/yvaqyyqyyy9ltckbss5x.png)

【Stumbling point】
The official documentation says to select from the link below, but when clicking the link it had expired.

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](https://devio2024-media.developers.io/image/upload/v1756867116/2025/09/03/ln0mwgwhrsztto00exma.png)

When clicking the link, the following screen is displayed.
![2025-09-03_11h39_11](https://devio2024-media.developers.io/image/upload/v1756867158/2025/09/03/urjof4xdeif736aofgh1.png)

I checked the changes on GitHub and was able to use a past URL that still worked.
![2025-09-03_11h39_53](https://devio2024-media.developers.io/image/upload/v1756867202/2025/09/03/pbczo3b7nwhcyuwubgka.png)

6. The connection was established successfully as shown below.![2025-09-03_11h42_42](https://devio2024-media.developers.io/image/upload/v1756867407/2025/09/03/ypdv4ix3iqjazsm5s9ux.png)

7. Click `Continue` and you will see the following screen, then click `Start Initial Sync`.

![2025-09-03_11h44_44](https://devio2024-media.developers.io/image/upload/v1756868357/2025/09/03/ooiebfibaywkchrbatt8.png)

After clicking, you will be redirected to the following screen and synchronization will begin.
![2025-09-03_12h47_03](https://devio2024-media.developers.io/image/upload/v1756871234/2025/09/03/nb7lrnapu9gf3srxbc3h.png)

8. Create `Named Range` for `criteria_performance` and `click_performance` using the same steps as 1-7.
When checking the Snowflake database, you can see that the data has been stored as shown below.

![2025-09-03_13h09_37](https://devio2024-media.developers.io/image/upload/v1756872583/2025/09/03/k8rmn86y2bvuca0mf8wp.png)

##  Fork the sample dbt project on Github
This section assumes that you have created a Github account and are logged in to that account.

1. Click on the GitHub URL and then click the `Fork` button in the top right.

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

![2025-09-03_13h12_37](https://devio2024-media.developers.io/image/upload/v1756872828/2025/09/03/t4ktiedaucshtynwernh.png)

2. If you see the following, the `Fork` is complete.
![2025-09-03_13h18_50](https://devio2024-media.developers.io/image/upload/v1756873140/2025/09/03/zynyqib4e6qii4dd5rkj.png)## Set up Fivetran_dbt Transformation
This section differs from the procedure described in the documentation due to changes in the Fivetran UI.

[Note]
To obtain actual data output in this section, at least one `Fivetran Google Ads` connection needs to be syncing data to the destination.
You can test the dbt connection until this point.

1. From `Transformations`, click `Add Transformation`.

![2025-09-03_13h46_40](https://devio2024-media.developers.io/image/upload/v1756874817/2025/09/03/ppq2jpg5czuo5kkptbp4.png)
2. Select your `destination` from `Select a destination`.
![2025-09-03_13h48_30](https://devio2024-media.developers.io/image/upload/v1756874918/2025/09/03/whrb5uhabfykrpzbdqtb.png)

3. You'll be directed to the following screen, select dbtCore.
*Note: The steps differ, but this follows the documentation

![2025-09-03_13h50_33](https://devio2024-media.developers.io/image/upload/v1756875039/2025/09/03/i1tgdn0dekm2ebq4b6un.png)

4. Copy the `Public Key`.

![2025-09-03_13h53_47](https://devio2024-media.developers.io/image/upload/v1756875236/2025/09/03/gkyckezelzhe6a6bi9ir.png)

5. Click `Settings` in your created GitHub repository.
![2025-09-03_13h57_19](https://devio2024-media.developers.io/image/upload/v1756875454/2025/09/03/bjvujuyuen4vdmntsezp.png)

6. Click `Deploy keys` in the left navigation.
![2025-09-03_13h58_10](https://devio2024-media.developers.io/image/upload/v1756886795/2025/09/03/ydb3b9dhprmmnppsexib.png)

7. Click `Add Deploy keys` at the top right of the screen.

![2025-09-03_16h55_00](https://devio2024-media.developers.io/image/upload/v1756886982/2025/09/03/qsaxnngw0logmw1e3spf.png)

8. On the following screen, enter the title as `Fivetran dbt access`. Also paste the copied `Public Key` in the Key field. `Allow write access` checkbox is not required.
![2025-09-03_17h10_40](https://devio2024-media.developers.io/image/upload/v1756887103/2025/09/03/couimo8gr7vd4arzlhf4.png)

If you want to revoke Fivetran's access, return to this screen and delete the key.

9. From the `Code` tab, click the green `Code` button. Copy the URL from the `SSH` tab.

URL content:

		

git@github.com:your_username/snowflake_fivetran_vhol.git

			
			
![2025-09-03_17h17_18](https://devio2024-media.developers.io/image/upload/v1756887488/2025/09/03/jvz9trazmgtuw8awrypb.png)

10. Return to Fivetran and paste the copied value into the `Repository URL`.![2025-09-03_17h22_38](https://devio2024-media.developers.io/image/upload/v1756887785/2025/09/03/ucquynvfz1brmdlmmj01.png)

11. I set `Default Schema Name` to `GOOGLE_ADS_DBT`.

![2025-09-03_17h25_02](https://devio2024-media.developers.io/image/upload/v1756949166/2025/09/04/k1b7n1uhwtqy4zxuiukc.png)

12. Execute `Save&Test`, and when you see the following screen, the setup is complete.

![2025-09-03_17h27_42](https://devio2024-media.developers.io/image/upload/v1756888089/2025/09/03/txxntn4uxqliay3fj7np.png)

13. You will be directed to the following screen, where you can create a job.

![スクリーンショット 2025-09-03 173003](https://devio2024-media.developers.io/image/upload/v1756888342/2025/09/03/bii5gqxqjbquxm5wv5rf.png)

14. Since this wasn't specified in the documentation, I configured it as follows.

![2025-09-03_17h36_12](https://devio2024-media.developers.io/image/upload/v1756888656/2025/09/03/f4ggaom4ivykthdikbqm.png)

15. Select the created job and click `Run`.
It will output an error as shown below.

![2025-09-04_09h40_35](https://devio2024-media.developers.io/image/upload/v1756946456/2025/09/04/l2pgd7s46ng5sevciaq7.png)

【Troubleshooting Point】
After checking the documentation, I found the following issues:
- The version in the `packages.yml` file that was `Fork`ed is outdated

		

packages:

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

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

			
			This needs to be changed to:

		

packages:

  • package: fivetran/google_ads
    version: 1.0.0
			
			Regarding `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.

This indicates that the source package is deprecated and should not be included in the transformation package.

【Reference Documentation】

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

- The object specification in `dbt_project.yml` is outdated

		

source-paths: ["models"]
test-paths: ["tests"]

			
			This needs to be changed to:

		

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

			
			
After making these changes, it succeeded as shown below:
![2025-09-04_09h52_29](https://devio2024-media.developers.io/image/upload/v1756947156/2025/09/04/vvsksmxikyyhbj0pwfi6.png)However, as mentioned earlier, without setting up the `Fivetran Google Ads` connection to send data, the conversion results will not be written to the Snowflake side by design. The destination tables were created, though.
![2025-09-04_09h54_32](https://devio2024-media.developers.io/image/upload/v1756947278/2025/09/04/jkrsyoikd9hayuif0j4u.png)

## Snowflake Part 2
Since the data from the previous section was not created, this section has been omitted.
The content explains the typical workflow for administrators and analysts based on the data that would have been created in the previous section.

## In Conclusion
How was it?
We were able to experience Fivetran's setup and synchronization method, connection with Snowflake, and connection setup through dbt.
Since some time has passed since this Quickstart was created, the UI and specifications of Fivetran, Snowflake, and dbt that we used have changed in some areas, which made me once again realize how quickly these products are being updated.
I hope this article serves as a helpful reference.
		

Share this article

FacebookHatena blogX

Related articles