From 4b35326cab5db7cf6ec8c4aea494e3f651827bc0 Mon Sep 17 00:00:00 2001 From: Tina Hou Date: Wed, 22 May 2024 13:09:42 -0400 Subject: [PATCH 1/4] add faqs --- .../data_warehouses/snowflake/faqs.md | 29 +++++++++++++++++++ .../cloud_ingestion/faqs.md | 24 ++++++++++++++- .../cloud_ingestion/overview.md | 10 +++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 _docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md diff --git a/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md b/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md new file mode 100644 index 00000000000..f1807d7917a --- /dev/null +++ b/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md @@ -0,0 +1,29 @@ +--- +nav_title: FAQ +article_title: Snowflake Data Sharing FAQ +page_order: 3 +page_type: FAQ +description: "This article covers some frequently asked questions for Snowflake Data Sharing" + +--- + +# Frequently Asked Questions + +### Is it possible to obfuscate PII data via snowflake data sharing? +It is not supported as of now. + +### Do I need same region data share or cross region share? +You would use same region data sharing under the following scenario: +- Your Snowflake account is in US-EAST-1 (AWS) and your braze dashboard region is in US. +- Or your Snowflake region is in EU-CENTRAL-1 and your braze dashboard region is in EU. +Otherwise cross region data sharing should be purchased. + +### What to do with my data share when I'm switching to a new snowflake account? +You can simply delete the old data share associated with your old Snowflake account, and create a new share for the new account. All historical data should be available in the recreated share. + +### I'm not seeing data in my data share. +One common issue is having the wrong Snowflake account ID when creating the data share. The Account ID on the data sharing dashboard must match the output of CURRENT_ACCOUNT() from your Snowflake account. + +If it’s a cross region data share, data might not be immediately available. Depending on the your data volume it could take a few hours for data to get synced to your region. + + diff --git a/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md b/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md index 21ffcfe0364..0ba4831d702 100644 --- a/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md +++ b/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md @@ -26,4 +26,26 @@ Each integration has its own notification preference. Go to the CDI page and sel ### What to do if a future `UPDATED_AT` was synced in an integration? CDI uses `UPDATED_AT` to decide what data is new. After a future `UPDATED_AT` is synced, any data prior to that future date and time will not be processed. -Users will need to clean up the data by correcting the `UPDATED_AT`, removing old data that were already synced to Braze, then create a new integration to process the table again. \ No newline at end of file +Users will need to clean up the data by correcting the `UPDATED_AT`, removing old data that were already synced to Braze, then create a new integration to process the table again. + +### `Rows Synced` reported on the CDI dashboard is different from the number of records in my warehouse, or the value synced does not match what I have in my warehouse. +CDI uses `UPDATED_AT` field to decide which records to be picked up during a sync, [here]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/overview/#what-gets-synced) is an illustration of how it works. At the beginning of a sync run, CDI queries your warehouse to get all records with `UPDATED_AT` later than the previously processed value. Any record picked up at the time when the query executes will be synced into Braze. Here are some common cases when a record might not be picked up by a sync: +- Records are added to the table with an `UPDATED_AT` value that’s already been processed. +- Updating record values after it’s been processed by a sync, but leaving UPDATED_AT unchanged. +- Records are being added or updated while a sync is in progress. Depending on when the CDI query executes, there could be race conditions that lead to records not being picked up. + +To avoid such undesired behaviors, we recommend using monotonically increasing `UPDATED_AT` value, and avoid updating the table during your scheduled sync run. + +### Is order preserved when there are multiple records for the same ID in a sync? +The processing order is not 100% predictable. For example, if there are multiple rows with the same `EXTERNAL_ID` in the table during a sync, we cannot guarantee which value would end up in the final profile. + +### What security measures are there in CDI? +On CDI side: +- All credentials are encrypted within our database, and only certain employees have authenticated access to them. +- We use encrypted connections to get data to customer warehouses. +- We make requests to the braze api endpoints using the same api keys and tls connections as we recommend our customers use. +- We regularly update our libraries and get any security patches. + +From the customers side: +- We highly recommend that you restrict the credential access to the minimum required for CDI to operate. we simply need to be able to run select (and count) on the specific tables and views. +- You can restrict the IPs that can access the tables to the officially published [braze IPs]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/integrations/.#step-1-set-up-tables-or-views) diff --git a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md index 7d79f1b5467..624ed49d0c3 100644 --- a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md +++ b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md @@ -472,6 +472,16 @@ We have a public [GitHub repository](https://github.com/braze-inc/braze-examples Any operations that are possible through the Braze `/users/track` endpoint are supported through Cloud Data Ingestion, including updating nested custom attributes, adding subscription status, and syncing custom events or purchases. +Feilds within the payload should follow the same format as the corresponding /users/track endpoint. For detailed formatting requirements, please refer to the following: + +| Data Type | Formatting Specifications | +| --------- | ---------| --------- | ----------- | +| `attributes` | See [user attributes object]({{site.baseurl}}/api/objects_filters/user_attributes_object/) | +| `events` | See [events object]({{site.baseurl}}/api/objects_filters/event_object/) | +| `purchases` | See [purchases object]({{site.baseurl}}/api/objects_filters/purchase_object/) | + +Note the special requirement for [capturing dates]({{site.baseurl}}/user_guide/data_and_analytics/custom_data/custom_attributes/nested_custom_attribute_support/#capturing-dates-as-object-properties) in nested attributes. + {% tabs local %} {% tab Nested Custom Attributes %} You may include nested custom attributes in the payload column for a custom attributes sync. From 89836cfd61cf050c7bc870f5ed885927564a0b10 Mon Sep 17 00:00:00 2001 From: Tina Hou Date: Wed, 22 May 2024 16:50:08 -0400 Subject: [PATCH 2/4] . --- .../_user_guide/data_and_analytics/cloud_ingestion/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md index 624ed49d0c3..3071ea24759 100644 --- a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md +++ b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md @@ -472,7 +472,7 @@ We have a public [GitHub repository](https://github.com/braze-inc/braze-examples Any operations that are possible through the Braze `/users/track` endpoint are supported through Cloud Data Ingestion, including updating nested custom attributes, adding subscription status, and syncing custom events or purchases. -Feilds within the payload should follow the same format as the corresponding /users/track endpoint. For detailed formatting requirements, please refer to the following: +Fields within the payload should follow the same format as the corresponding /users/track endpoint. For detailed formatting requirements, please refer to the following: | Data Type | Formatting Specifications | | --------- | ---------| --------- | ----------- | From 9cc1ab01a693cd49b3a3b6f0fd3c28da6b366b5d Mon Sep 17 00:00:00 2001 From: Rachel Feinberg Date: Thu, 23 May 2024 09:28:41 -0700 Subject: [PATCH 3/4] Docs edits --- .../data_warehouses/snowflake/faqs.md | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md b/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md index f1807d7917a..8f13a057bb2 100644 --- a/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md +++ b/_docs/_partners/data_and_infrastructure_agility/data_warehouses/snowflake/faqs.md @@ -1,29 +1,30 @@ --- -nav_title: FAQ -article_title: Snowflake Data Sharing FAQ +nav_title: FAQs +article_title: Snowflake Data Sharing FAQs page_order: 3 page_type: FAQ -description: "This article covers some frequently asked questions for Snowflake Data Sharing" +description: "This article answers frequently asked questions about Snowflake data sharing." --- -# Frequently Asked Questions +# Frequently asked questions -### Is it possible to obfuscate PII data via snowflake data sharing? -It is not supported as of now. +### Is it possible to obfuscate PII data via Snowflake data sharing? +No, as of now that is not supported. -### Do I need same region data share or cross region share? -You would use same region data sharing under the following scenario: -- Your Snowflake account is in US-EAST-1 (AWS) and your braze dashboard region is in US. -- Or your Snowflake region is in EU-CENTRAL-1 and your braze dashboard region is in EU. -Otherwise cross region data sharing should be purchased. +### Do I need data share for the same region or cross region? +Use data sharing for the same region in the following scenarios: +- Your Snowflake account is in US-EAST-1 (AWS) and your Braze dashboard region is in the US. +- Your Snowflake region is in EU-CENTRAL-1 and your Braze dashboard region is in the EU. -### What to do with my data share when I'm switching to a new snowflake account? -You can simply delete the old data share associated with your old Snowflake account, and create a new share for the new account. All historical data should be available in the recreated share. +Otherwise, use data sharing for cross region. -### I'm not seeing data in my data share. -One common issue is having the wrong Snowflake account ID when creating the data share. The Account ID on the data sharing dashboard must match the output of CURRENT_ACCOUNT() from your Snowflake account. +### What should I do with my data share when I switch to a new Snowflake account? +You can delete the old data share associated with your old Snowflake account and then create a new share for the new account. All historical data will be available in the new share. -If it’s a cross region data share, data might not be immediately available. Depending on the your data volume it could take a few hours for data to get synced to your region. +### Why don't I see data in my data share? +You might have used the wrong Snowflake account ID when creating your data share. The account ID on the data sharing dashboard must match the output of `CURRENT_ACCOUNT()` from your Snowflake account. + +If your share is cross region, the data might not be immediately available. Depending on your data volume, it could take a few hours for data to sync to your region. From 047a43b79636fe4c2fed7e01ac8e56763c197b0f Mon Sep 17 00:00:00 2001 From: Rachel Feinberg Date: Thu, 23 May 2024 10:04:03 -0700 Subject: [PATCH 4/4] Final Docs edits --- .../cloud_ingestion/faqs.md | 40 +++++++++---------- .../cloud_ingestion/overview.md | 4 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md b/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md index 0ba4831d702..0858fea2a2f 100644 --- a/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md +++ b/_docs/_user_guide/data_and_analytics/cloud_ingestion/faqs.md @@ -1,23 +1,23 @@ --- -nav_title: FAQ -article_title: Cloud Data Ingestion FAQ +nav_title: FAQs +article_title: Cloud Data Ingestion FAQs page_order: 100 page_type: FAQ -description: "This article covers some frequently asked questions for Cloud Data Ingestion" +description: "This article answers frequently asked questions about Cloud Data Ingestion." --- -# Frequently Asked Questions +# Frequently asked questions -### What should I do if I receive an email from Braze Support about errors in my CDI Sync? +### What should I do if I receive an email from Braze Support about errors in my CDI sync? Here are the common types of emails you might receive regarding errors in CDI sync: - **Error in CDI Sync [NAME]** This type of email usually includes an error message that CDI encountered during the sync process. Often, it is due to a setup error. Some common issues include: - CDI cannot access the data warehouse or table with the credentials set up in the integration. This could mean the credentials in CDI are incorrect or are misconfigured on the data warehouse. Check out [Data Warehouse Integrations]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/integrations/) for more details. - - SQL error due to the table not being found. Update the integration with the correct database config or create matching resources (e.g., database/table) on the data warehouse. + - SQL error because the table wasn't found. Update the integration with the correct database configuration or create matching resources (for example, database/table) on the data warehouse. - Catalog not found. The catalog set up in the integration does not exist in the Braze catalog. A catalog can be removed after the integration was set up. To resolve the issue, either update the integration to use a different catalog or create a new catalog that matches the catalog name in the integration. -- **Row Errors in your CDI Sync** +- **Row errors in your CDI sync** This indicates that some data cannot be processed in the sync. To find out what is causing the errors, navigate to the CDI page in Braze. Open the **Sync Log** tab to check the error details for the sync job. ### How can I update my email alert preferences for CDI integrations? @@ -26,26 +26,26 @@ Each integration has its own notification preference. Go to the CDI page and sel ### What to do if a future `UPDATED_AT` was synced in an integration? CDI uses `UPDATED_AT` to decide what data is new. After a future `UPDATED_AT` is synced, any data prior to that future date and time will not be processed. -Users will need to clean up the data by correcting the `UPDATED_AT`, removing old data that were already synced to Braze, then create a new integration to process the table again. +You need to clean up the data by correcting the `UPDATED_AT` and removing old data that wasx already synced to Braze, and then create a new integration to process the table again. -### `Rows Synced` reported on the CDI dashboard is different from the number of records in my warehouse, or the value synced does not match what I have in my warehouse. -CDI uses `UPDATED_AT` field to decide which records to be picked up during a sync, [here]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/overview/#what-gets-synced) is an illustration of how it works. At the beginning of a sync run, CDI queries your warehouse to get all records with `UPDATED_AT` later than the previously processed value. Any record picked up at the time when the query executes will be synced into Braze. Here are some common cases when a record might not be picked up by a sync: -- Records are added to the table with an `UPDATED_AT` value that’s already been processed. -- Updating record values after it’s been processed by a sync, but leaving UPDATED_AT unchanged. -- Records are being added or updated while a sync is in progress. Depending on when the CDI query executes, there could be race conditions that lead to records not being picked up. +### Why is the `Rows Synced` reported on the CDI dashboard different from the number of records in my warehouse? Or why doesn't the synced value match what I have in my warehouse? +CDI uses `UPDATED_AT` to decide which records to pick up during a sync. Check out [this illustration]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/overview/#what-gets-synced) to see how it works. At the beginning of a sync run, CDI queries your warehouse to get all records with `UPDATED_AT` later than the previously processed value. Any record picked up at the time when the query executes will be synced into Braze. Here are common cases when a record might not be synced: +- You're adding records to the table with an `UPDATED_AT` value that has already been processed. +- You're updating record values after they have been processed by a sync, but leaving `UPDATED_AT` unchanged. +- You're adding or updating records while a sync is in progress. Depending on when the CDI query executes, there could be race conditions that lead to records not being picked up. -To avoid such undesired behaviors, we recommend using monotonically increasing `UPDATED_AT` value, and avoid updating the table during your scheduled sync run. +To avoid these behaviors, we recommend using monotonically increasing `UPDATED_AT` values and not updating the table during your scheduled sync run. ### Is order preserved when there are multiple records for the same ID in a sync? -The processing order is not 100% predictable. For example, if there are multiple rows with the same `EXTERNAL_ID` in the table during a sync, we cannot guarantee which value would end up in the final profile. +The processing order is not 100% predictable. For example, if there are multiple rows with the same `EXTERNAL_ID` in the table during a sync, we cannot guarantee which value will end up in the final profile. ### What security measures are there in CDI? -On CDI side: +On the CDI side: - All credentials are encrypted within our database, and only certain employees have authenticated access to them. - We use encrypted connections to get data to customer warehouses. -- We make requests to the braze api endpoints using the same api keys and tls connections as we recommend our customers use. +- We make requests to the Braze API endpoints using the same API keys and TLS connections that we recommend our customers use. - We regularly update our libraries and get any security patches. -From the customers side: -- We highly recommend that you restrict the credential access to the minimum required for CDI to operate. we simply need to be able to run select (and count) on the specific tables and views. -- You can restrict the IPs that can access the tables to the officially published [braze IPs]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/integrations/.#step-1-set-up-tables-or-views) +On your side: +- We highly recommend that you restrict the credential access to the minimum required for CDI to operate. This is because we need to be able to run select (and count) on the specific tables and views. +- You can restrict the IPs that can access the tables to the officially published [Braze IPs]({{site.baseurl}}/user_guide/data_and_analytics/cloud_ingestion/integrations/.#step-1-set-up-tables-or-views). diff --git a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md index 3071ea24759..70858127db9 100644 --- a/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md +++ b/_docs/_user_guide/data_and_analytics/cloud_ingestion/overview.md @@ -472,9 +472,9 @@ We have a public [GitHub repository](https://github.com/braze-inc/braze-examples Any operations that are possible through the Braze `/users/track` endpoint are supported through Cloud Data Ingestion, including updating nested custom attributes, adding subscription status, and syncing custom events or purchases. -Fields within the payload should follow the same format as the corresponding /users/track endpoint. For detailed formatting requirements, please refer to the following: +Fields within the payload should follow the same format as the corresponding `/users/track` endpoint. For detailed formatting requirements, refer to the following: -| Data Type | Formatting Specifications | +| Data type | Formatting specifications | | --------- | ---------| --------- | ----------- | | `attributes` | See [user attributes object]({{site.baseurl}}/api/objects_filters/user_attributes_object/) | | `events` | See [events object]({{site.baseurl}}/api/objects_filters/event_object/) |