-
Notifications
You must be signed in to change notification settings - Fork 381
Reverse ETL 2.0 docs #6571
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Reverse ETL 2.0 docs #6571
Changes from all commits
Commits
Show all changes
45 commits
Select commit
Hold shift + click to select a range
43c6ef8
RETL refresh draft 1
forstisabella c43cbc9
make this truly a landing page
forstisabella 5795cf3
polish
forstisabella 2b9779b
rmv "catalog"
forstisabella 58e7991
finish intros to some of the ref pages
forstisabella 32938a4
rmv RETL from warehouse yml file
forstisabella 0b0717e
Merge branch 'develop' into retl-docs-refresh
forstisabella f823ef3
parity w other items [netlify-build]
forstisabella b659b66
Merge branch 'retl-docs-refresh' of https://github.com/segmentio/segm…
forstisabella 6e3f3ca
[netlify-build]
forstisabella 0be9f21
[netlify-build]
forstisabella ab0104f
google docs grammar qa [netlify-build]
forstisabella 98115cf
add extensions docs
forstisabella 17ee7ad
[netlify-build]
forstisabella f3f26d4
Merge branch 'develop' into retl-docs-refresh
forstisabella 682de65
[netlify-build]
forstisabella c68ff00
Apply suggestions from code review
forstisabella 6028faa
Update src/connections/reverse-etl/reverse-etl-catalog.md
forstisabella 2e54809
Update src/connections/reverse-etl/system.md
forstisabella 71fddba
Apply suggestions from code review
forstisabella 991013e
Update index.md
forstisabella ba5d446
fix formatting [netlify-build]
forstisabella 1bc68b3
Merge branch 'develop' into retl-docs-refresh
forstisabella b7a0c15
update w/ new releases [netlify-build]
forstisabella e9a1859
req'd changes [netlify-build]
forstisabella e6c6537
again! [netlify build]
forstisabella 737a0c1
[netlify-build]
forstisabella 6490e32
[netlify-build]
forstisabella 184c1b1
[netlify-build]
forstisabella b56f9e5
Merge branch 'develop' into retl-docs-refresh
forstisabella 280db46
Merge branch 'develop' into retl-docs-refresh
forstisabella 8830955
add sync overview [netlify-build]
forstisabella 1cb0609
Update src/connections/reverse-etl/system.md
forstisabella c5de281
FAQ updates
forstisabella a82b27f
Set up RETL page
forstisabella 55011d8
Snowflake setup
forstisabella 587f9d6
Update src/connections/reverse-etl/reverse-etl-source-setup-guides/sn…
forstisabella 7b6b731
Catalog page updates
forstisabella 0406607
Manage RETL (except for JSON, check box wording)
forstisabella 1e01a4e
Update src/connections/reverse-etl/manage-retl.md
forstisabella ab644bf
codeblock formatting
forstisabella 9d156eb
Merge branch 'retl-docs-refresh' of https://github.com/segmentio/segm…
forstisabella 7ad54b0
Update src/connections/reverse-etl/manage-retl.md
forstisabella c85d2bb
Update src/connections/reverse-etl/manage-retl.md
forstisabella 73b9010
Merge branch 'develop' into retl-docs-refresh
forstisabella File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
title: Reverse ETL FAQ | ||
beta: false | ||
--- | ||
|
||
Get answers to some frequently asked Reverse ETL questions. | ||
|
||
## Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping? | ||
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. | ||
|
||
## Can I be notified when Reverse ETL syncs fail? | ||
Yes, you can sign up for Reverse ETL sync notifications. | ||
|
||
To receive Reverse ETL sync notifications: | ||
1. Navigate to **Settings > User Preferences**. | ||
2. Select **Reverse ETL** in the **Activity Notifications** section. | ||
3. Enable the toggle for **Reverse ETL Sync Failed**. | ||
|
||
In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures. | ||
|
||
## Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment? | ||
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. | ||
|
||
## Can I have multiple queries in the Query Builder? | ||
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. |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
--- | ||
title: Manage Reverse ETL Syncs | ||
beta: false | ||
--- | ||
|
||
View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs. | ||
|
||
## Sync overview | ||
On the Reverse ETL sync overview tab for your destination, you can see information about your recent Reverse ETL syncs at a glance, search for recent syncs, and quickly access the mappings and models that power Reverse ETL. | ||
|
||
 | ||
|
||
You can view the following information about each sync: | ||
- **Latest sync**: The progress of your latest sync: syncs can either be **In progress**, **Successful**, or **Failed**. Also included is the timestamp of the sync start time. | ||
- **Mapping**: The named mapping that powered the sync and a hyperlink to the mapping's overview page. | ||
- **Model**: The name that you gave the SQL query used to withdraw information from your warehouse, with a hyperlink to the model overview page. Below the model name, you can see the warehouse source that Segment extracts information from. | ||
- **Action**: The Action that your destination uses to map information from your warehouse to your downstream destination. | ||
- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**. | ||
|
||
You can also filter the sync overview table to return only the syncs that match your criteria. | ||
|
||
You can filter for the following sync attributes: | ||
- **Sync status**: The status of your sync: In progress, Successful, Partially successful, or Failed. | ||
- **Start time**: Select a predefined time period, or create a custom date range. | ||
- **Model**: The model connected to your sync. | ||
- **Destination**: Select one or more of your connected destinations. | ||
- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**. | ||
|
||
## Sync history | ||
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. | ||
|
||
To check the status of your extractions: | ||
1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab. | ||
2. Select the destination you want to view. | ||
3. Select the mapping you want to view. | ||
4. Click the sync you want to view to get details of the sync. You can view: | ||
* The status of the sync. | ||
* Details of how long it took for the sync to complete. | ||
* How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted. | ||
* The load results - how many successful records were synced as well as how many records were updated, deleted, or are new. | ||
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. | ||
|
||
> info "Segment automatically retries events that were extracted but failed to load" | ||
> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync. | ||
|
||
## Reset syncs | ||
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. During the next sync, all records extracted by the model are sent to your destination, not just the records that changed since the last sync. | ||
|
||
To reset a sync: | ||
1. Select the three dots next to **Sync now**. | ||
2. Select **Reset sync**. | ||
3. Click **I understand what happens when I reset a sync state**. | ||
4. Click **Reset sync**. | ||
|
||
## Replays | ||
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. | ||
|
||
## Alerting | ||
You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes. | ||
|
||
To subscribe to alerts: | ||
1. Navigate to **Settings > User Preferences**. | ||
2. Select **Reverse ETL** in the **Activity Notifications** section. | ||
3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses: | ||
- **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails. | ||
- **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful. | ||
4. Select one or more of the following alert options: | ||
- **Enable email notifications**: Enter an email address or alias that should receive alerts. | ||
- **Enable Slack notifications**: Enter a webhook URL and Slack channel name. | ||
- **Enable in-app notifications**: Select this option to see an in-app notification. | ||
5. Click **Create alert**. | ||
|
||
> success "" | ||
> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications. | ||
|
||
## Supported object and arrays | ||
|
||
When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data as an [object](/docs/connections/reverse-etl/manage-retl/#object-mapping) or [array](/docs/connections/reverse-etl/manage-retl/#array-mapping). | ||
|
||
### Object mapping | ||
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. | ||
|
||
Example: | ||
|
||
```json | ||
{ | ||
"product": { | ||
"id": 0001, | ||
"color": "pink", | ||
"name": "tshirt", | ||
"revenue": 20, | ||
"inventory": 500 | ||
} | ||
} | ||
``` | ||
|
||
To send data to a mapping field that requires object data, you can choose between these two options: | ||
|
||
Option | Details | ||
------ | -------- | ||
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. | ||
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. | ||
|
||
> success "" | ||
> 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. | ||
|
||
|
||
### Array mapping | ||
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. | ||
|
||
Example: | ||
forstisabella marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
```json | ||
[ | ||
{ | ||
"currency": "USD", | ||
"price": 40, | ||
"productName": "jacket", | ||
"purchaseTime": "2021-12-17 23:43:47.102", | ||
"quantity": 1 | ||
}, | ||
{ | ||
"currency": "USD", | ||
"price": 5, | ||
"productName": "socks", | ||
"quantity": 2 | ||
} | ||
] | ||
``` | ||
|
||
To send data to a mapping field that requires array data, you can choose between these two options: | ||
|
||
Option | Details | ||
------ | -------- | ||
Customize array | This enables you to select the specific nested properties to send to the destination. | ||
Select array | This enables you to send all nested properties within the array. | ||
|
||
> success "" | ||
> 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. | ||
|
||
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.