Snowflake Data Share
Get access to your Amplitude events through Snowflake's Data Share product.
Amplitude supports Snowflake’s Data Share integration to give customers access to their event data that lives within Amplitude. Amplitude’s integration supports sharing a Raw Events table and a Merged ID table.
Add-on feature
Amplitude's Snowflake Data Share Export is a paid add on to your Amplitude contract.
Limits
Snowflake supports data sharing only within the same region and cloud provider. Amplitude's Snowflake runs in US West (Oregon) on Amazon Web Services. To enable cross-region or cross-cloud data sharing, contact your Account Manager at Amplitude or reach out to Amplitude Support.
Amplitude supports one Snowflake Data Share destination per project for each data type (events and merged user tables). You can set up multiple destinations across your organization. Destinations in different projects don't need to connect to the same Snowflake account. For example, production projects can connect to your production Snowflake instance, staging projects to your staging instance, and development projects to your sandbox instance.
EU availability
Snowflake Data Share isn't available for Amplitude customers in the EU region.
Set up a recurring data export to Snowflake with Data Share
To set up a recurring export of your Amplitude data to Snowflake, follow these steps:
Required user permissions
You need admin/manager privileges in Amplitude, as well as a role that allows you to enable resources in Snowflake.
- In Amplitude Data, click Catalog and select the Destinations tab.
- In the Warehouse Destinations section, click Snowflake Data Share.
- Under Access Data via Snowflake Data Share, enter the following information:
- Account Name: This is the account name on your Snowflake account. It's the first part of your Snowflake URL, after
https://and before 'snowflakecomputing.com'. For example, if your Snowflake URL ishttp://amplitude.snowflakecomputing.com, then you should enteramplitude. - Org Name: This is the name of your Snowflake organization.
- Account Name: This is the account name on your Snowflake account. It's the first part of your Snowflake URL, after
- Choose which data to include in this export: Raw events every 5 minutes, Merged IDs every hour, or both. For events, you can also specify filtering conditions to only export events that meet certain criteria.
The option you choose here reflects the interval after Amplitude ingests the data.
- Click Next, enter the name of this Snowflake export and click Finish.
When complete, Amplitude sends all future events to Snowflake with Data Share.
Backfill data
After the Share is set up between Amplitude and your Snowflake cluster, Amplitude only loads data from that point forward. To backfill historical data from a period before the connection, specify this in the request when setting up the share.
Data backfill incures extra cost
Contact your Amplitude Account Manager for pricing.
Remove Data Share from Amplitude
To remove the Amplitude data set made available through the Data Share, reach out to your Account Manager at Amplitude or fill out a support request here.
Snowflake export format
| Schema Name | Description |
|---|---|
DB_{ORG_ID} | Database |
SCHEMA_{PROJECT_ID} | Schema |
EVENTS_{PROJECT_ID} | Events Table |
MERGE_IDS_{PROJECT_ID} | Merge User Table |
Event table
Event table schema
The Event table schema includes the following columns:
adidamplitude_event_typeamplitude_idappcityclient_event_timeclient_upload_timecountrydatadevice_branddevice_carrierdevice_familydevice_iddevice_manufacturerdevice_modeldevice_typedmaevent_idevent_propertiesevent_timeevent_typefollowed_an_identifygroup_propertiesgroupsidfaip_addressis_attribution_eventlanguagelibrarylocation_latlocation_lngos_nameos_versionpayingplatformprocessed_timeregionsample_rateserver_upload_timesession_idstart_versionuser_iduser_propertiesuuidversion_nameamplitude_attribution_idsserver_received_timeglobal_user_propertiespartner_idplansource_iddata_type
For more information, see the Event Table Schema section of the Snowflake Export documentation.
Event table clustering
The exported events table uses the following clustering keys (in order):
TO_DATE(EVENT_TIME)TO_DATE(SERVER_UPLOAD_TIME)EVENT_TYPEAMPLITUDE_ID
This clustering optimizes query performance for time-based queries. Data Share provides read-only access to an Amplitude-owned table, so you can't modify the clustering keys. If you need custom clustering for different query patterns, use Snowflake Export instead for full table ownership and control.
Merged User table
Merged User table schema
The Merged User table schema contains the following:
amplitude_idmerge_event_timemerge_server_timemerged_amplitude_id
For more information, see the Merged User table schema section of the Snowflake Export documentation.
Merged User table clustering
Amplitude clusters the merged IDs table by DATE_TRUNC('HOUR', MERGE_SERVER_TIME). This optimizes queries that filter by when user merges occurred. Data Share provides read-only access to an Amplitude-owned table, so you can't modify the clustering keys. For custom clustering to optimize different query patterns, use Snowflake Export instead, which gives you full ownership and control over the table.
Was this helpful?