This Snap enables you to perform bulk update or insert (upsert) operations into a BigQuery table from existing tables or any input data stream.
The upsert operation updates existing rows if the specified value exists in the target table and inserts a new row if the specified value does not exist in the target table.
Snap Type
This Snap is a Write-type Snap that performs a bulk upsert operation.
Prerequisites
Write access for the Google BigQuery Account is required.
Input can come from any Snap that can pass a document to the output view, such as Structure or JSON Generator. Pipeline parameters can also be passed for project ID, dataset ID, and table ID, and so on.
Output
Document
Min: 0
Max: 1
Mapper
Google BigQuery Execute
The output is in document view format. The data from the incoming document that is loaded to the destination table is the output from this Snap. It gives the load statistics after the operation is completed
The output view contains information about the bulk load details in the temporary table to better understand the flow. This also helps with error handling.
The output view also lists the number of rows that were updated, modified, or inserted in the target table.
Error
Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the pipeline by choosing one of the following options from the When errors occur list under the Views tab:
Stop Pipeline Execution: Stops the current pipeline execution if the Snap encounters an error.
Discard Error Data and Continue: Ignores the error, discards that record, and continues with the remaining records.
Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.
Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.
Expression icon ( ): Indicates the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.
Add icon ( ): Indicates that you can add fields in the field set.
Remove icon ( ): Indicates that you can remove fields from the field set.
Upload icon ( ): Indicates that you can upload files.
Specify the name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.
Project ID
Default Value:N/A Example:test-project-12345
String/Expression/Suggestion
Specify the project ID in which the dataset resides.
Dataset ID
Default Value: N/A
Example: dataset-12345
String/Expression/Suggestion
Specify the dataset ID of the destination.
Table ID
Default Value: N/A Example: table-12345
String/Expression/Suggestion
Specify the table ID of the table you are creating.
Batch size
Default value: 1000
String
The number of records batched per request. If the input has 10,000 records and the batch size is set to 100, the total number of requests would be 100.
Batch timeout (milliseconds)
Default value: 2000
String
Time in milliseconds after which the batch will be processed (even though it might be less than the specified batch size).
Batchtimeout value must be set with care. When this limit is reached, the batch will be flushed whether or not all the records in the batch were loaded.
Batch retry count
Default value: 0
String
The number of times the server should try to load a failed batch.
Batch retry delay (milliseconds)
Default value: 500
String
The time delay between each retry.
Snap Execution
Default Value: Validate & Execute Example: Execute only
Dropdown list
Select one of the three modes in which the Snap executes. Available options are:
Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.
Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.
Disabled: Disables the Snap and all Snaps that are downstream from it.
Troubleshooting
Error
Reason
Resolution
Key column name is required.
No key column(s) specified for checking for existing entries.
Please enter one or more key column names.
Key column name is not present in target table.
Incorrect key column(s) specified for checking for existing entries.
Please select one or more key column names from the suggestion box.
All columns in target table are key columns.
The merge will fail as all columns in the target table are key columns.
Please select one or more (but not all) key column names from the suggestion box.
Examples
Prerequisite: Write access for the Google BigQuery Account is required.
Upsert customer data from Salesforce to a Google BigQuery table
This example demonstrates how to update or insert (upsert) records in a Google BigQuery table.
First, we configure the Salesforce Read Snap with the required details to read customer account data from Salesforce.
In this example, we selected Output Fields for Id, Type, and Name.
Upon validation, the Snap prepares the output to pass to the BigQuery Bulk Upsert Snap.
Next, we configure the BigQuery Bulk Upsert Snap to use unique identifiers to update the existing records.
To upsert data based on the Id and Name key columns, we enter Id and Name in the Key column fields.
Upon execution, this Snap updates or inserts new records into the target Google BigQuery table.
In this example, we’re updating the Type for each record (based on the unique identifiers Id and Name selected under Key columns).
The output shows that 50 records were updated successfully.
Fixed an issue withBigQuery Upsert (Streaming)Snap that displayed a404 Not Founderror because of the region mismatch by ensuring the region is specified correctly in the dataset.
November 2024
439patches29499
Latest
The BigQuery Bulk Load (Cloud Storage) Snap now displays a lint warning when the bulk load process completes successfully but the temporary file deletion fails.
Enhanced the following Google BigQuery Snaps with implicit retry functionality to improve the reliability of CRUD operations in BigQuery and handle all retriable BigQuery errors:
Updated and certified against the current SnapLogic Platform release.
August 2024
438patches28058
Latest
Fixed an issue with the BigQuery Table Data List Snap that displayed a null pointer exception when the table source schema contained a nested Array list schema.
August 2024
main27765
Stable
Updated and certified against the current Snaplogic Platform release.
May 2024
main26341
Stable
Updated and certified against the current SnapLogic Platform release.
February 2024
main25112
Stable
Updated and certified against the current SnapLogic Platform release.
November 2023
main23721
Stable
Updated and certified against the current SnapLogic Platform release.
August 2023
main22460
Stable
Updated and certified against the current SnapLogic Platform release.
May 2023
433patches22057
Latest
Introduced the Google BigQuery Upsert (Streaming) Snap, which enables you to perform bulk update/insert operations into a BigQuery table from existing tables or any input data stream.
Fixed an issue with the BigQuery Table Create Snap that caused an error to display when fields were separated with a comma and a space.
Fixed an issue with the sorting of the Partitioning time dropdown in the BigQuery Table Create Snap.
February 2023
432patches19840
Latest
Fixed an issue with the Google BigQuery Bulk Load (Streaming) Snap that caused the Table not found message to display even when Create table if not present was selected.
Upgraded with the latest SnapLogic Platform release.
4.28 Patch
428patches15459
Latest
Fixed an issue with Google BigQuery Execute Snap, where the Snap displayed 404 Job not found error when calling a procedure.
Fixed an issue with the Google BigQuery Bulk Load (Cloud Storage) Snap where the Snap failed, because the access token expired when it had to wait longer to execute. With this fix, the Snap is reloaded to get refreshed access token.
4.28 Patch
428patches14743
Latest
Fixed an issue with the Google BigQuery Execute Snap, where the Snap displayed an error when the input data contained a table having the record type column and its value was null.
Fixed an issue with the Google BigQuery Write Snap, when the input data contained complex data type columns (such as nested fields) and Create table if not present checkbox was selected.
4.28
main14627
Stable
Upgraded with the latest SnapLogic Platform release.
4.27 Patch
427patches13752
Latest
Upgraded Google BigQuery driver to 1.119.0 version to support time partition intervals by MONTH and YEAR.
4.27 Patch
427patches13615
Latest
Fixed the table truncate 404 error with the Google BigQuery Load (Streaming) Snap by supporting the retry functionality. The Snap now waits in case of an error and retries before loading the data.
4.27 Patch
427patches12691
Latest
Fixed an issue with the Google BigQuery Bulk Load (Cloud Storage) Snap, where the Snap failed with an exception for big query tables. The CreateDisposition is now set conditionally on the basis of the setting in the Create table if not present checkbox.
Batch Size: The number of records batched per request.
Batch Timeout (milliseconds): Time in milliseconds to elapse following which the batch, if not empty, will be processed even though it might be lesser than the given batch size.
4.26
main11181
Stable
Upgraded with the latest SnapLogic Platform release.
4.25
main9554
Stable
Upgraded with the latest SnapLogic Platform release.
4.24
main8556
Stable
Upgraded with the latest SnapLogic Platform release.
Fixed the precision loss inGoogle BigQuery ExecuteSnap outputthat strips millisecond valueswhile retrieving TIMESTAMP values from Google BigQuery tables.
4.22
main6403
Stable
Upgraded with the latest SnapLogic Platform release.
4.21
snapsmrc542
Stable
Upgraded with the latest SnapLogic Platform release.
4.20 Patch
google/bigquery8773
Latest
Fixed the NPE issue with stored procedures and DROP TABLE queries in the Google BigQuery Execute Snap.
4.20
snapsmrc535
Stable
Upgraded with the latest SnapLogic Platform release.
4.19
snaprsmrc528
Stable
Upgraded with the latest SnapLogic Platform release.
4.18
snapsmrc523
Stable
Upgraded with the latest SnapLogic Platform release.
4.17
ALL7402
Latest
Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.
4.17
snapsmrc515
Stable
Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.
4.16
snapsmrc508
Stable
Upgraded with the latest SnapLogic Platform release.
4.15
snapsmrc500
Stable
Upgraded with the latest SnapLogic Platform release.
4.14
snapsmrc490
Stable
Upgraded with the latest SnapLogic Platform release.
4.13
snapsmrc486
Stable
Upgraded with the latest SnapLogic Platform release.
4.12
snapsmrc480
Stable
Added a new propertySchema auto detectin theGoogle BigQuery Bulk Load (Cloud Storage) Snap to support CSV and JSON files where one or more columns in the source file may not contain any values.
4.11
snapsmrc465
Stable
Added new Snap: Google BigQuery Bulk Load (Cloud Storage)
Added new Snap: Google BigQuery Bulk Load (Streaming).
Updated Google Big Query Write Snap with a new Create table if not presentproperty.
4.10 Patch
google/bigquery4046
Latest
Addressed an issue when authenticating with Dynamic OAuth accounts.
4.10
snapsmrc414
Stable
Upgraded with the latest SnapLogic Platform release.
4.9
snapsmrc405
Stable
Upgraded with the latest SnapLogic Platform release.
4.8 Patch
bigquery2952
Latest
Supports refreshing OAuth access tokens during long-running pipeline executions. Fixed an issue with writing small batch sizes and when querying empty dataset tables.
4.8.0 Patch
bigquery2813
Latest
Reload OAuth account from Platform when the access token expires during pipeline execution.
4.8
snapsmrc398
Stable
Upgraded with the latest SnapLogic Platform release.
4.7
snapsmrc382
Stable
Upgraded with the latest SnapLogic Platform release.
4.6
snapsmrc362
Stable
Upgraded with the latest SnapLogic Platform release.
4.5.1
snapsmrc344
Stable
Upgraded with the latest SnapLogic Platform release.
4.4.1
NA
Stable
Upgraded with the latest SnapLogic Platform release.
4.4
NA
Stable
Upgraded with the latest SnapLogic Platform release.
4.3.2
NA
Stable
Resolved the following issues with the Google BigQuery Execute Snap:
throwing binary data in stacktrace and two error messages.
improve error handling for suggestions
improve error handling on bad queries
suggestion bubble missing for Destination table ID
Resolved an issue with Auto refresh token not working in Google BigQuery account.