Snowflake: Bulk Audience Export
Export user profiles including user fields and audience memberships from Lytics to Snowflake.
Integration Details
- Implementation Type: Server-side.
- Implementation Technique: File based transfer.
- Frequency: Batch every 24 hours. Each batch contains the entire audience, and replaces the previous table.
- Resulting data: User fields will be exported to Snowflake as rows in a Snowflake table.
The resulting Snowflake schema is determined automatically by the workflow and will consist of the following Snowflake types according to the field's type in Lytics:
- BOOLEAN
- VARCHAR(16777216)
- NUMBER(38,0)
- FLOAT
- TIMESTAMP_TZ(9)
- VARIANT (used for non-scalar fields)
When a job is started, the workflow will:
- Create a temporary table in Snowflake with the appropriate schema of the form
USERS_{audience_slug}_{unix_timestamp}
. - Scan the audience for export, and load in CSV format to the Lytics-managed GCS storage integration for your account (see setup instructions below).
- Load the data from GCS to your Snowflake account via COPY INTO.
- Once the load is complete, the temporary table will be renamed to a permanent table of the form
USERS_{audience_slug}
. NOTE: if a table of this name already exists in the target Snowflake schema with an identical schema to the temporary table, it will be dropped and replaced. If the schemas differ, the permanent table name will include an incremental suffix i.e.USERS_{audience_slug}1
. - If the export is configured to run continuously, the workflow will sleep for 24 hours before repeating steps 1 through 4.
Fields
If fields are selected during job configuration, only those fields will be included in the resulting Snowflake table. If no fields are selected, all fields on the profile will be exported.
Required Snowflake Setup
Exporting to Snowflake requires additional configuration in your Snowflake account. You will need to create a storage integration in your Snowflake account that references a Lytics-owned GCS bucket. You will then need to retrieve the GCS service account associated with your storage integration in order to authorize in Lytics. More information about creating GCS storage integrations can be found here. Note that step 3 in the Snowflake docs linked is not necessary, as the GCS bucket is owned and managed by Lytics.
In your Snowflake account, run the following queries to set up a storage integration for Lytics. Note: you will need ACCOUNTADMIN permissions to run the following queries.
First, create your storage integration:
create storage integration GCS_INT_LYTICS
type = external_stage
storage_provider = gcs
enabled = true
storage_allowed_locations = ('gcs://aid-{your-aid}-snowflake-exports-lyticsio/')
Note that you will need to replace {your-aid}
with the AID for your Lytics account in the query above. If you don't know your AID, contact your account manager for assistance.
Second, retrieve your storage integration service account, you will need this to authorize the workflow:
desc storage integration GCS_INT_LYTICS
Finally, you will need to grant the role you authorized with permissions to use the newly created storage integration:
grant usage on integration GCS_INT_LYTICS to role {your-role}
Configuration
Follow these steps to set up and configure an export job for Snowflake in the Lytics platform. If you are new to creating jobs in Lytics, see the Jobs Dashboard documentation for more information.
- Select Snowflake from the list of providers.
- Select the Bulk Export job type from the list.
- Select the authorization you would like to use or create a new one.
- Enter a Label to identify this job you are creating in Lytics.
- (Optional) Enter a Description for further context on your job.
- Select the audience to export.
Complete the configuration steps for your job.
Using the Database dropdown menu, select the database you would like to import data from.
- From the Schema input, select the name of the schema to export to.
- (Optional) From the Export Fields input, choose a list of fields to export. If none are selected, all fields on the profile will be included.
- (Optional) Select the Keep Updated checkbox to export the audience continuously.
- (Optional) From the Time of Day input, select the time of day to start continuous exports.
- (Optional) From the Timezone input, select a timezone for time of day.
- Click Start Export.