Set up Reverse ETL
There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings.
Follow these 4 steps to set up Reverse ETL:
Step 1: Add a source
A source is where your data originates from. Traditionally in Segment, a source is a website, server library, mobile SDK, or cloud application which can send data into Segment. In Reverse ETL, your data warehouse is the source.
You need to be a user that has both read and write access to the warehouse.
To add your warehouse as a source:
- Navigate to Connections > Sources and select the Reverse ETL tab in the Segment app.
- Click + Add Reverse ETL source.
- Select the source you want to add.
- Follow the corresponding setup guide for your Reverse ETL source:
After you add your data warehouse as a source, you can add a model to your source.
Step 2: Add a model
Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
Use Segment's dbt extension to centralize model management and versioning
Users who set up a BigQuery, Databricks, Postgres, Redshift, or Snowflake source can use Segment’s dbt extension to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
Extensions is currently in public beta and is governed by Segment’s First Access and Beta Preview Terms. During Public Beta, Extensions is available for Team and Developer plans only. Reach out to Segment if you’re on a Business Tier plan and would like to participate in the Public Beta.
To add your first model:
- Navigate to Connections > Sources and select the Reverse ETL tab. Select your source and click Add Model.
- Click SQL Editor as your modeling method. (Segment will add more modeling methods in the future.)
- Enter the SQL query that’ll define your model. Your model is used to map data to your Reverse ETL destinations.
- Choose a column to use as the unique identifier for each record in the Unique Identifier column field.
- The Unique Identifier should be a column with unique values per record to ensure checkpointing works as expected. It can potentially be a primary key. This column is used to detect new, updated, and deleted records.
- Click Preview to see a preview of the results of your SQL query. The data from the preview is extracted from the first 10 records of your warehouse.
- Segment caches preview queries and result sets in the UI, and stores the preview cache at the source level. If you make two queries for the same source, Segment returns identical preview results. However, during the next synchronization, the latest data will be sent to the connected destinations.
- Click Next.
- Enter your Model Name.
- Click Create Model.
To add multiple models to your source, repeat steps 1-8 above.
Edit your model
To edit your model:
- Navigate to Connections > Destinations and select the Reverse ETL tab.
- Select the source and the model you want to edit.
- On the overview tab, click Edit to edit your query.
- Click the Settings tab to edit the model name or change the schedule settings.
Step 3: Add a destination
Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
Reverse ETL supports 30+ destinations: see all destinations listed in the Reverse ETL catalog. If the destination you want to send data to is not listed in the Reverse ETL catalog, use the Segment Connections Destination to send data from your Reverse ETL warehouse to your destination.
Engage users can use the Segment Profiles Destination to create and update Profiles that can then be accessed through Profile API and activated within Twilio Engage.
Separate endpoints and credentials required to set up third party destinations
Before you begin setting up your destinations, note that each destination has different authentication requirements. See the documentation for your intended destination for more details.
To add your first destination:
- Navigate to Connections > Destinations and select the Reverse ETL tab.
- Click Add Reverse ETL destination.
- Select the destination you want to connect to and click Configure.
- Select the Reverse ETL source you want to connect the destination to.
- Enter the Destination name and click Create Destination.
- Enter the required information on the Settings tab of the destination.
- Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won’t be able to start a sync.
Step 4: Create mappings
After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
To create a mapping:
- Navigate to Connections > Destinations and select the Reverse ETL tab.
- Select the destination that you want to create a mapping for.
- Click Add Mapping.
- Select the model to sync from.
- In the Define sync behavior section, select the Action you want to sync.
- Actions determine the information sent to the destination. The list of Actions are unique to each destination.
- Select which records to send to your destination after Segment completes extracting data based on your model.
- As of September 2024, some destinations have sync modes, which let you specify how Segment should send data to the destination. Sync modes are unique to each destination.
- Destinations without sync modes let you select from the following options:
- Added records
- Updated records
- Added or updated records
- Deleted records
- In the Map fields section, define how to map the record columns from your model to your destination. Map the fields that come from your source to fields that the destination expects to find. Fields on the destination side depend on the type of Action selected.
- If you’re setting up a Destination Action, some mapping fields might require data to be in the form of an object or array. See the supported objects and arrays for mapping for more information.
- If you’re setting up a Destination Action, some mapping fields might require data to be in the form of an object or array. See the supported objects and arrays for mapping for more information.
- In the Send test record section, select a test record to preview the fields that you mapped to your destination. When you’ve verified that the records appear as expected, click Next.
- Enter a name for your mapping. The name initially defaults to the Action’s name, for example,
Track Event
, but you can make changes to this default name. - Select the Schedule type for the times you want the model’s data to be extracted from your warehouse. You can choose from:
- Interval: Extractions perform based on a selected time cycle.
- Day and time: Extractions perform at specific times on selected days of the week.
- Select how often you want the schedule to sync in Schedule configuration.
- For an Interval schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
- 15 minutes is considered real-time for warehouse syncs
- For a Day and time schedule type, you can choose the day(s) you’d like the schedule to sync as well as the time.
- You can only choose to start the extraction at the top of the hour.
- Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
- For an Interval schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
To add multiple mappings from your warehouse to your destination, repeat steps 1-10 above.
Edit your mapping
To edit your mapping:
- Navigate to Connections > Destinations and select the Reverse ETL tab.
- Select the destination and the mapping you want to edit.
- Select the … three dots and click Edit mapping. If you want to delete your mapping, select Delete.
Using Reverse ETL
After you’ve set up your source, model, destination, and mappings for Reverse ETL, your data will extract and sync to your destination(s) right away if you chose an interval schedule. If you set your data to extract at a specific day and time, the extraction will take place then.
This page was last modified: 06 Sep 2024
Need support?
Questions? Problems? Need more info? Contact Segment Support for assistance!