Skip to content

Commit 43c6ef8

Browse files
committed
RETL refresh draft 1
1 parent 9ab735d commit 43c6ef8

File tree

14 files changed

+397
-336
lines changed

14 files changed

+397
-336
lines changed

src/_data/catalog/warehouse.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ items:
5353
url: 'https://cdn.filepicker.io/api/file/EUJvt69Q7qMqCvGrVtiu'
5454
categories:
5555
- Warehouses
56+
- RETL
5657
- display_name: BigQuery
5758
slug: bigquery
5859
name: catalog/warehouses/bigquery
@@ -71,6 +72,7 @@ items:
7172
url: 'https://cdn.filepicker.io/api/file/Vk6iFlMvQeynbg30ZEtt'
7273
categories:
7374
- Warehouses
75+
- RETL
7476
- display_name: Databricks
7577
slug: databricks
7678
name: catalog/warehouses/databricks
@@ -89,6 +91,7 @@ items:
8991
url: ''
9092
categories:
9193
- Warehouses
94+
- RETL
9295
- display_name: Google Cloud Storage
9396
slug: google-cloud-storage
9497
name: catalog/warehouses/google-cloud-storage
@@ -143,6 +146,7 @@ items:
143146
url: ''
144147
categories:
145148
- Warehouses
149+
- RETL
146150
- display_name: Redshift
147151
slug: redshift
148152
name: catalog/warehouses/redshift
@@ -161,6 +165,7 @@ items:
161165
url: ''
162166
categories:
163167
- Warehouses
168+
- RETL
164169
- display_name: Segment Data Lakes
165170
slug: data-lakes
166171
name: catalog/warehouse/data-lakes
@@ -197,6 +202,7 @@ items:
197202
url: 'https://cdn.filepicker.io/api/file/OBhrGoCRKaSyvAhDX3fw'
198203
categories:
199204
- Warehouses
205+
- RETL
200206

201207
settings:
202208
- name: bucket

src/connections/reverse-etl/faq.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: Reverse ETL FAQ
3+
beta: false
4+
---
5+
6+
## Troubleshooting
7+
8+
### Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
9+
It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
10+
11+
### Can I be notified when Reverse ETL syncs fail?
12+
Yes, you can sign up for Reverse ETL sync notifications.
13+
14+
To receive Reverse ETL sync notifications:
15+
1. Navigate to **Settings > User Preferences**.
16+
2. Select **Reverse ETL** In the **Activity Notifications** section.
17+
3. Enable the toggle for **Reverse ETL Sync Failed**.
18+
19+
In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
20+
21+
## Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment?
22+
Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb/gosnowflake#pkg-variables){:target="_blank"} to connect with Snowflake, which internally uses TLS for the HTTP transport.
23+
24+
## Can I have multiple queries in the Query Builder?
25+
No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors.

src/connections/reverse-etl/index.md

Lines changed: 5 additions & 332 deletions
Large diffs are not rendered by default.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: Reverse ETL Mappings
3+
beta: false
4+
---
5+
6+
### Managing syncs
7+
8+
### Supported object and arrays
9+
10+
When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
11+
12+
### Object mapping
13+
You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
14+
15+
Example:
16+
17+
{
18+
"product": {
19+
"id": 0001,
20+
"color": "pink",
21+
"name": "tshirt",
22+
"revenue": 20,
23+
"inventory": 500
24+
}
25+
}
26+
27+
To send data to a mapping field that requires object data, you can choose between these two options:
28+
29+
Option | Details
30+
------ | --------
31+
Customize object | This enables you to manually set up the mapping fields with any data from the model. If the model contains some object data, you can select properties within the object to set up the mappings as well.
32+
Select object | This enables you to send all nested properties within an object. The model needs to provide data in the format of the object.
33+
34+
> success ""
35+
> Certain object mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your object don't match with the destination properties, the data won't send. Segment recommends you to use **Customize Object** to ensure your mapping is successful.
36+
37+
38+
### Array mapping
39+
To send data to a mapping field that requires array data, the model must provide data in the format of an array of objects. An example is an `Order completed` model with a `Product purchased` column that’s in an array format.
40+
41+
Example:
42+
43+
44+
[
45+
{
46+
"currency": "USD",
47+
"price": 40,
48+
"productName": "jacket",
49+
"purchaseTime": "2021-12-17 23:43:47.102",
50+
"quantity": 1
51+
},
52+
{
53+
"currency": "USD",
54+
"price": 5,
55+
"productName": "socks",
56+
"quantity": 2
57+
}
58+
]
59+
60+
61+
To send data to a mapping field that requires array data, you can choose between these two options:
62+
63+
Option | Details
64+
------ | --------
65+
Customize array | This enables you to select the specific nested properties to send to the destination.
66+
Select array | This enables you to send all nested properties within the array.
67+
68+
> success ""
69+
> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
70+
71+
Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
72+
73+
#### Reset syncs
74+
You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
75+
76+
To reset a sync:
77+
1. Select the three dots next to **Sync now**.
78+
2. Select **Reset sync**.
79+
3. Select the checkbox that you understand what happens when a sync is reset.
80+
4. Click **Reset sync**.
81+
82+
#### Replays
83+
You can choose to replay syncs. To replay a specific sync, contact [[email protected]](mailto:[email protected]). Keep in mind that triggering a replay resyncs all records for a given sync.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: Reverse ETL Observability
3+
beta: false
4+
---
5+
6+
## Sync history
7+
Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
8+
9+
To check the status of your extractions:
10+
1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
11+
2. Select the destination you want to view.
12+
3. Select the mapping you want to view.
13+
4. Click the sync you want to view to get details of the sync. You can view:
14+
* The status of the sync.
15+
* Details of how long it took for the sync to complete.
16+
* How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
17+
* The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
18+
5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
19+
20+
## Email alerts
21+
You can opt in to receive email alerts regarding notifications for Reverse ETL.
22+
23+
To subscribe to email alerts:
24+
1. Navigate to **Settings > User Preferences**.
25+
2. Select **Reverse ETL** in the **Activity Notifications** section.
26+
3. Click the toggle on for the notifications you want to receive. You can choose from:
27+
28+
Notification | Details
29+
------ | -------
30+
Reverse ETL Sync Failed | Set toggle on to receive notification when your Reverse ETL sync fails.
31+
Reverse ETL Sync Partial Success | Set toggle on to receive notification when your Reverse ETL sync is partially successful.

src/connections/reverse-etl/reverse-etl-catalog.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
---
22
title: Reverse ETL Catalog
3-
hidden: true
3+
beta: false
44
---
55

6+
Reverse ETL supports the entire Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to sync subscription data from warehouses to destinations.
7+
68
These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
79

810
<div class="destinations-catalog">
@@ -38,3 +40,28 @@ These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you
3840
</div>
3941
</div>
4042

43+
## Segment Connections destination
44+
If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
45+
46+
The Segment Connections destination enables you to mold data extracted from your warehouse in [Segment Spec](/docs/connections/spec/) API calls that are then processed by [Segment’s HTTP Tracking API](/docs/connections/sources/catalog/libraries/server/http-api/). The requests hit Segment’s servers, and then Segment routes your data to any destination you want. Get started with the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/).
47+
48+
> warning ""
49+
> The Segment Connections destination sends data to Segment’s Tracking API, which has cost implications. New users count as new MTUs and each call counts as an API call. For information on how Segment calculates MTUs and API calls, please see [MTUs, Throughput and Billing](/docs/guides/usage-and-billing/mtus-and-throughput/).
50+
51+
## Send data to Engage with Segment Profiles
52+
Engage Premier Subscriptions users can use Reverse ETL to sync subscription data from warehouses to destinations.
53+
54+
To get started with using Reverse ETL for subscriptions:
55+
1. Navigate to Engage > Audiences and select the Profile explorer tab.
56+
2. Click Manage subscription statuses and select Update subscription statuses.
57+
3. Select Sync with RETL as the method to update your subscription statuses.
58+
4. Click Configure.
59+
5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
60+
6. Set up the source. Refer to the add a source section for more details on how to set up the source.
61+
7. Add the Segment Profiles destination as your Reverse ETL destination. Refer to add a destination for more details to set up the destination.
62+
8. Once your destination is set, go to the Mappings tab of your destination and click Add Mapping.
63+
9. Select the model you want to use and then select Send Subscriptions.
64+
10. Click Create Mapping.
65+
11. Follow the steps in the Create Mappings section to set your mappings.
66+
67+
<!--- TODO: Add link ^^ --->

src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,5 @@ To set up Azure as your Reverse ETL source:
7272
9. Click **Test Connection** to see if the connection works. If the connection fails, make sure you have the right permissions and credentials, then try again.
7373
10. Click **Add source** if the test connection is successful.
7474
75-
After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
75+
After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
7676

src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,5 @@ Permission | Details
4848
`bigquery.jobs.create` | This allows Segment to execute queries on any datasets or tables your model query references, and also allows Segment to manage tables used for tracking.
4949

5050
The `bigquery.datasets.*` permissions can be scoped only to the `__segment_reverse_etl` dataset.
51+
52+
After you've successfully added your BigQuery source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.

src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@ To set up Databricks as your Reverse ETL source:
6060
> Segment previously supported token-based authentication, but now uses OAuth (M2M) authentication at the recommendation of Databricks.
6161
> If you previously set up your source using token-based authentication, Segment will continue to support it. If you want to create a new source or update the connection settings of an existing source, Segment only supports [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"}.
6262
63-
Once you've succesfully added your Databricks source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
63+
Once you've successfully added your Databricks source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.

src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@ To set up Postgres with Reverse ETL:
3636
* Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
3737

3838
* Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results.
39+
40+
After you've successfully added your Postgres source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.

0 commit comments

Comments
 (0)