Learn how Stitch will load data from your integrations into version 2 of Stitch’s Google BigQuery destination.
In this guide, we’ll cover data loading scenarios involving:
-
Object identifiers in the destination, including naming limitations and transformations
-
Various data types, including how data is typed and structured in the destination
-
Schema changes in the source or structural changes in the destination
Primary Key scenarios
Scenarios involving Primary Key columns.
IF |
A table without a Primary Key is replicated. |
THEN |
Table is created with an The Primary Key information for the table is stored in the Refer to the Understanding loading behavior guide for more info and examples. |
IF |
A table with a single Primary Key is replicated. |
THEN |
Table is created. The Primary Key information for the table is stored in the |
IF |
A table with multiple Primary Keys is replicated. |
THEN |
Table is created with an The Primary Key information for the table is stored in the Refer to the Understanding loading behavior guide for more info and examples. |
IF |
The table’s Primary Key(s) is/are changed. |
THEN |
Changing a table’s Primary Key(s) is not permitted in Google BigQuery. This includes changing the Primary Key(s) in the source, or adding a Primary Key to a table that didn’t previously have one. If Primary Key columns are changed, Stitch will stop processing data for the table. |
AND |
The following error will display in the Notifications tab in Stitch: |
FIX IT |
Re-instate the table’s Primary Key(s) to allow Stitch to continue processing data for the table. |
IF |
You remove the Primary Key column(s) for a table in Google BigQuery. |
THEN |
Changing a table’s Primary Key(s) is not permitted in Google BigQuery. If Primary Key columns are changed, Stitch will stop processing data for the table. |
AND |
The following error will display in the Notifications tab in Stitch: |
FIX IT |
Re-instate the table’s Primary Key(s) to allow Stitch to continue processing data for the table. |
Replication Key scenarios
Scenarios involving Replication Keys and how data is loaded as a result.
IF |
A table using Key-based Incremental Replication is replicated where the Replication Key column contains |
THEN |
|
Object naming scenarios
Scenarios involving object identifiers in the destination, including naming limitations and transformations.
IF |
A table name contains more characters than allowed by Google BigQuery. |
THEN |
Google BigQuery will reject all data for the table. |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
If possible, change the table name in the source to be less than Google BigQuery’s character limit of 1,024 characters.
Use the |
IF |
A column name contains more characters than allowed by Google BigQuery. |
THEN |
Google BigQuery will reject columns with names that exceed the column character limit. Other columns in the table will persist to Google BigQuery. |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
If possible, change the column name in the source to be less than Google BigQuery’s character limit of 128 characters.
Use the |
IF |
Two columns are replicated that canonicalize to the same name. |
THEN |
For example: A table containing both Google BigQuery will reject the records and create a log for the rejected records in the |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
If possible, re-name one of the columns in the source so that both column names will be unique when replicated to Google BigQuery.
Use the |
IF |
A column is replicated that has a mixed-case name. |
||||||
THEN |
Google BigQuery will convert letters to lowercase. For example:
|
IF |
A column is replicated that has a name with spaces. |
||||||
THEN |
Google BigQuery will convert spaces to underscores. For example:
|
IF |
A column is replicated with a name that contains unsupported special characters. |
|||||||||
THEN |
Google BigQuery will convert special characters to underscores. For example:
|
IF |
A column is replicated with a name that begins with a non-letter. |
||||||||||||
THEN |
Google BigQuery will remove all leading non-letter characters with the exception of leading underscores. For example:
|
Table scenarios
Scenarios involving table creation and modification in the destination.
IF |
A table contains entirely |
THEN |
No table is created in Google BigQuery. At least one column must have a non- |
IF |
A table arrives with more columns than Google BigQuery allows. |
THEN |
Google BigQuery will reject all data for the table. |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
If possible, deselect some columns to allow Stitch to load data into Google BigQuery for the table. Google BigQuery has a limit of 10,000 columns per table.
Use the |
Data typing scenarios
Scenarios involving various data types, including how data is typed and structured in the destination.
IF |
Stitch detects multiple data types for a single column. |
THEN |
To accommodate data of varying types, Stitch will create multiple columns to ensure data is loaded with the correct type. In the destination, this will look like the column has been “split”. For example: Stitch first detected that
|
IF |
Data is replicated to Google BigQuery that is nested, containing many top-level properties and potentially nested sub-properties. |
THEN |
Nested records and objects are maintained. Refer to the Nested data structures in Google BigQuery guide for more info and examples. |
IF |
A |
THEN |
Google BigQuery will store all |
IF |
|
THEN |
No widening will occur. Google BigQuery will store all |
IF |
A column containing date data with timezone info is replicated to Google BigQuery. |
THEN |
Google BigQuery has no support for timezones. |
IF |
A column contains timestamp data that is outside Google BigQuery’s supported range. |
THEN |
Google BigQuery will reject the records that fall outside the supported range. |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
To resolve the error, offending values in the source must be changed to be within Google BigQuery’s timestamp range.
Use the |
IF |
A column contains integer data that is outside Google BigQuery’s supported range. |
THEN |
Google BigQuery will reject the records that fall outside the supported range. |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
To resolve the error, offending values in the source must be changed to be within Google BigQuery’s limit for integers.
Use the |
IF |
A column contains decimal data. |
THEN |
Decimal values will be loaded to Google BigQuery as the data type |
IF |
A column contains decimal data that is outside Google BigQuery’s supported range. |
THEN |
Google BigQuery will reject the records that fall outside the supported maximum range for the |
AND |
The following error will display in the Notifications tab in Stitch:
Rejected records will be logged in the |
FIX IT |
To resolve the error, offending values in the source must be changed to be within Google BigQuery’s limit for decimals.
Use the |
Schema change scenarios
Scenarios involving schema changes in the source or structural changes in the destination.
IF |
A new column is added in table already set to replicate. |
THEN |
If the column has at least one non- Note: If the table using either Key- or Log-based Incremental Replication, backfilled values for the column will only be replicated if:
Additionally, how records with new column values are loaded depends on the selected loading behavior:
Refer to the Understanding loading guide for more info and examples. |
IF |
A new column is added by you to a Stitch-generated table in Google BigQuery. |
THEN |
Columns may be added to tables created by Stitch as long as they are nullable, meaning columns don’t have |
IF |
A column is deleted at the source. |
THEN |
How a deleted column is reflected in Google BigQuery depends on the Replication Method used by the table:
|
IF |
You remove a column from a Stitch-replicated table in your destination. |
THEN |
The result of deleting a column from a Stitch-generated table depends on the type of column being removed:
|
Destination changes
Scenarios involving modifications made to the destination, such as the application of workload/performance management features or user privilege changes.
IF |
Indices are applied to Stitch-generated columns in the destination. |
THEN |
Stitch will respect the index application. |
IF |
Partitioning is applied to Stitch-generated tables in the destination. |
THEN |
Stitch will respect the partitioning application. Refer to the Apply table partitioning and clustering guide for more info and instructions. |
IF |
Clustering is applied to Stitch-generated tables in the destination. |
THEN |
Stitch will respect the cluster application. Refer to the Apply table partitioning and clustering guide for more info and instructions. |
IF |
You switch to a different destination of the same type. |
THEN |
This means the destination type is still Google BigQuery, Stitch may just be connected a different database in Google BigQuery.
|
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.