Skip to content

Commit ad7d139

Browse files
committed
edits
1 parent e1b8986 commit ad7d139

File tree

2 files changed

+73
-9
lines changed

2 files changed

+73
-9
lines changed

src/connections/sources/reverse-etl/index.md

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Reverse ETL
33
beta: true
44
---
55

6-
Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse and loads it into a 3rd party destination. Reverse ETL allows you to connect your data warehouse to the tools that Marketing, Sales, Support, Product, Analytics, and other business teams use. For example, with Reverse ETL, you can sync rows from Snowflake to Salesforce. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
6+
Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide, and delivers the data to your 3rd party destinations. Reverse ETL allows you to connect your data warehouse to the tools that Marketing, Sales, Support, Product, Analytics, and other business teams use. For example, with Reverse ETL, you can sync rows from Snowflake to Salesforce. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
77

88
As Segment is actively developing this feature, Segment welcomes your feedback on your experience with Reverse ETL. Click the button below to submit your feedback.
99

@@ -29,7 +29,7 @@ Follow these 4 steps to set up Reverse ETL and learn what each component is abou
2929
3. [Add a Destination](#step-3-add-a-destination)
3030
4. [Create Mappings](#step-4-create-mappings)
3131

32-
### Step 1: Add a Source
32+
### Step 1: Add a source
3333
A Source is where your data originates from. Traditionally in Segment, a [Source](/docs/connections/sources/#what-is-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.
3434

3535
> info ""
@@ -42,6 +42,7 @@ To add your warehouse as a source:
4242
4343
1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
4444
2. Click **Add Source**.
45+
<<<<<<< HEAD
4546
<<<<<<< HEAD:src/reverse-etl/index.md
4647
3. Select the source you want to add. You can choose between **BigQuery**, **Snowflake**, and **Redshift**.
4748
=======
@@ -50,13 +51,21 @@ To add your warehouse as a source:
5051
* If you choose to use Snowflake, run the queries listed in the [Snowflake Reverse ETL setup guide](/docs/reverse-etl/snowflake-setup/) to set up the Segment Snowflake connector. Segment recommends using the `ACCOUNTADMIN` role to execute all the commands.
5152
* If you choose to use BigQuery, use the permissions outlined in the [BigQuery Reverse ETL setup guide](/docs/reverse-etl/bigquery-setup/), to create a Service Account and generate JSON credentials that will then be copied into the Segment UI when creating a Reverse ETL Source.
5253
4. Add the account information for your source.
54+
=======
55+
3. Select the source you want to add. You can choose between BigQuery, Redshift, and Snowflake.
56+
4. Follow the corresponding setup guide for your Reverse ETL source.
57+
* [BigQuery Reverse ETL setup guide](/docs/connections/sources/reverse-etl/bigquery-setup/)
58+
* [Redshift Reverse ETL setup guide]()
59+
* [Snowflake Reverse ETL setup guide](/docs/connections/sources/reverse-etl/snowflake-setup/)
60+
5. Add the account information for your source.
61+
>>>>>>> 401fa6bc5 (edits)
5362
* For Snowflake users: Learn more about the Snowflake Account ID [here](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"}.
5463
5. Click **Test Connection** to test to see if the connection works.
5564
6. Click **Create Source** if the test connection is successful.
5665

5766
After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
5867

59-
### Step 2: Add a Model
68+
### Step 2: Add a model
6069
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.
6170

6271
To add your first model:
@@ -79,7 +88,7 @@ To add your first model:
7988

8089
To add multiple models to your source, repeat steps 1-10 above.
8190

82-
### Step 3: Add a Destination
91+
### Step 3: Add a destination
8392
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.
8493

8594
> info ""
@@ -95,7 +104,7 @@ To add your first destination:
95104
5. Enter the **Destination name** and click **Create Destination**.
96105
6. Enter the required information on the **Settings** tab of the destination.
97106

98-
### Step 4: Create Mappings
107+
### Step 4: Create mappings
99108
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.
100109

101110
To create a mapping:
@@ -149,7 +158,11 @@ To edit your mapping:
149158
2. Select the destination with the mapping you want to edit.
150159
3. Select the **...** three dots and click **Edit mapping**. If you want to delete your mapping, select **Delete**.
151160

152-
## Usage limits
161+
162+
## Limits
163+
To provide consistent performance and reliability at scale, Segment enforces default use and rate limits.
164+
165+
### Usage limits
153166
Processed Reverse ETL records are the total number of records Segment attempts to load to your downstream destinations, including those that fail to load. Your plan determines how many Reverse ETL records you can process in one monthly billing cycle.
154167

155168
Plan | Number of Reverse ETL records you can process to each destination per month |
@@ -162,5 +175,41 @@ When your limit is reached before the end of your billing period, your syncs wil
162175

163176
To see how many records you’ve processed using Reverse ETL, navigate to **Settings > Usage & billing** and select the **Reverse ETL** tab.
164177

178+
### Configuration limits
179+
180+
Name | Details | Limit
181+
--------- | ------- | ------
182+
Model query length | The maximum length for the model SQL query | 131,072 characters
183+
Model identifier column name length | The maximum length for the ID column name. | 191 characters
184+
Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
185+
Sync frequency | The shortest possible duration Segment allows between syncs | 15 minutes
186+
187+
### Extract limits
188+
The extract phase is the time spent connecting to your database, executing the model query, updating internal state tables and staging the extracted records for loading. There is a 14-day data retention period to support internal disaster recovery and debugging as needed.
189+
190+
Name | Details | Limit
191+
----- | ------- | ------
192+
Duration | The maximum amount of time Segment spends attempting to extract before timing out. | 3 hours
193+
Record count | The maximum number of records a single sync will process. Note: This is the number of records extracted from the warehouse not the limit for the number of records loaded to the destination (e.g. new/update/deleted). | 20 million records
194+
Column count | The maximum number of columns a single sync will process
195+
Column name length | The maximum length of a record column | 128 characters
196+
Record JSON Length | The maximum size for a record when converted to JSON (some of this limit is used by Segment) | 512 KiB
197+
Column JSON Length | The maximum size of any single column value | 128 KiB
198+
199+
### Load limits
200+
The load phase covers the time spent preparing the extracted records for delivery to all connected destinations and mappings, in addition to waiting for those records to be fully handled by Centrifuge. There is a 30-day data retention period with records that fail to deliver through Centrifuge.
201+
202+
Name | Details | Limit
203+
----- | ------- | ------
204+
Load prepare duration | The maximum amount of time Segment spends attempting to prepare the load before timing out. | 3 hours
205+
Load wait duration | The maximum amount of time Segment spends waiting for records to be delivered by Centrifuge. | 6 hours
206+
207+
## Data retention
208+
Segment uses Kafka queues to buffer data between systems, in which
209+
210+
## Security
211+
Segment
212+
213+
\\ask Kathlynn what's the information we need for security
165214

166215

src/connections/sources/reverse-etl/redshift-setup.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,23 @@ title: Redshift Reverse ETL Setup
33
beta: true
44
---
55

6-
Set up Redshift as your Reverse ETL source.
6+
Set up Redshift as your Reverse ETL source. You can also choose to set up Reverse ETL with [these sources](link_to_catalog).
77

88
To set up Redshift with Reverse ETL:
9-
1. Navigate to **Conections > Sources** and select the **Reverse ETL** tab.
10-
2. Click **Add Source**.
9+
1. Log in to Redshift and select the Redshift cluster you want to connect with Reverse ETL.
10+
2. Follow the [networking instructions](/docs/connections/storage/catalog/redshift/#networking) to configure the correct network and security settings.
11+
3. Run the SQL commands below to create a user named `segment`.
12+
13+
```ts
14+
-- create a user named "segment" that Segment will use when connecting to your Redshift cluster.
15+
CREATE USER segment PASSWORD '<enter password here>';
16+
17+
-- allows the "segment" user to create new schemas on the specified database. (this is the name you chose when provisioning your cluster)
18+
GRANT CREATE ON DATABASE "<enter database name here>" TO "segment";
19+
```
20+
4. Follow the steps listed in the [Add a source](/docs/reverse-etl/#step-1-add-a-source) section to finish adding Redshift as your source.
21+
22+
### Extra Permissions
23+
Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
24+
25+
Give the `segment` user write permissions for the Segment managed schema (`__segment_reverse_etl`), which keeps track of changes to the query results.

0 commit comments

Comments
 (0)