Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
/
PolyBase Bulk Load
PolyBase Bulk Load
Feb 22, 2022
On this Page
Snap type:
Write
Description:
This Snap Performs a bulk load operation from the input view document stream to the target table. The Snap supports SQL Server database with PolyBase feature, which includes SQL Server 2016 (on-premise) and Data Warehouse. It first formats the input view document stream to a temporary CSV file in Azure Blob storage and then sends a bulk load request to the database to load the temporary Blob file to the target table.
ETL Transformations & Data Flow
This Snap enables the following ETL operations/flows:
Loads data into a temporarily created Azure blob. Executes the SQl server command to load the above blob into the target table.
The Snap reads all the incoming documents and writes them to a temporarily created blob on the Azure storage
The Snap executes the following DB commands in sequence:
Create a master key, only if it does not exist
Create the Database scoped credentials, only if it does not exist
Create an external data source
Create an external file format
Create an external table (blob will be copied this external table)
Copy the data from external table to the destination table
Input & Output
Input: This Snap must have an upstream Snap that can pass a document output view. Such as Structure or JSON Generator.
Output: The Snap outputs one document specifying the records that have been inserted successfully. The records that are not written to the blob successfully are routed to the error view.
Prerequisites:
Bulk load requires a minimum of SQL Server 2016 to work properly.
The database should have PolyBase feature enabled in it.
If the Snap fails while loading blob into the DB, the temporary blob created remains un-deleted so the data is not lost.
Microsoft PolyBase does not support varchar entries which contain more than 1000 characters. As a workaround, if any row contains a varchar entry with more than 1000 characters, use the Azure SQL - Bulk LoadSnap instead.
Account:
This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See Configuring Azure SQL Accounts for information on setting up this type of account.
Views:
Input
This Snap has exactly one document input view.
Output
This Snap has at most one document output view. If an output view is available, it conveys that the bulk load operations were carried out successfully.
Error
This Snap has at most one document error view and produces zero or more documents in the view.
Troubleshooting:
Ensure the DB interacted with it is at least SQL 2016 with the PolyBase feature enabled.
Ensure the DB credentials provided are valid.
Ensure the Azure blob storage account is set up properly.
Ensure the valid blob account credentials.
If the Snap fails when writing to a data warehouse, it writes a new blob in the Azure container. This new blob highlights the first invalid row that caused the bulk load operation to fail.
Settings
Label
Required. 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.
Schema Name
The database schema name. In case it is not defined, then the suggestion for the table name will retrieve all tables names of all schemas. The property is suggest-able and will retrieve available database schemas during suggest values.
The values can be passed using the pipeline parameters but not the upstream parameter.
Example: SYS
Default value: None
Table Name
Required. The target table to load the incoming data into.
The values can be passed using the pipeline parameters but not the upstream parameter.
Example: users
Default value: None
Create table if not present
Select this property to create target table in case it does not exist; otherwise the system will through table not found error.
Example: table1
Default value: None
Schema source
Specifies if the schema must be fetched from the input document or from the existing table while loading data into the temporary blob at the time of bulk upload. The options available are: Schema from provided input and Schema from existing table.
Default value: Schema from provided input
Use type default
Specifies how to handle any missing values in input documents. The options available are TRUE and FALSE. If you select TRUE, the Snap replaces every missing value in the input document with its default value in the external table. Supported data types and their default values are:
Numeric - 0
String - ""
Date - 1900-01-01
If you select FALSE, the Snap replaces every missing value in the input document with a null value in the external table.
Default value: TRUE
Bulk insert mode
Specifies if the incoming data should be appended to the target table or overwrite the existing data in that table. The options available are: Append and Overwrite.
Example: Append, Overwrite
Default value: Append
If you select Overwrite, the Snap overwrites the existing table and schema with the input data.
Database scoped credential
The Scoped credential is used to execute the queries in the bulk load operation. To do bulk load via storage blob, external database resources are required to be created. This, in turn, requires a "Database Scoped Credential". Refer to https://msdn.microsoft.com/en-us/library/mt270260.aspx for additional information.
Provide the scoped credentials if one exists on the DB or the Snap will create the temporary scoped credentials and deletes them once the operation is completed.
Default value: None
Encoding
The encoding standard for theInput data to be loaded on to the database. The available options are:
None - Select this option only when using the Polybase Bulk Load with SQL Server 2016.
UTF-8 - Select this option for the input standard in UTF-8 when using the Snap with Azure database.
UTF-16 - Select this option for the input standard in UTF-16 when using the Snap with Azure database.
Default value: None
Loading
Loading
Basic Use Case
In the below example, the Mapper Snap maps the input schema from the upstream to the target metadata on the PolyBase Bulk Load.
The PolyBase Bulk Load Snap loads the records into the table, "dbo"."9181", The successful execution of the pipeline displays the success status of the loaded records.
The pipeline performs the below ETL transformations:
Extract: The JSON Generator Snap gets the records to be loaded into the PolyBase table
Transform: The Mapper Snap maps the input schema to the metadata of the PolyBase Bulk Load Snap
Load: The PolyBase Bulk Load Snap loads the records into the required table.
Typical Snap Configurations
The key configuration of the Snap lies in how you pass the statement to write the records . As it applies in SnapLogic, you can pass SQL statements in the following manner:
Without Expression: Directly passing the required statement in the PolyBase Bulk Load Snap.
With Expressions
Pipeline Parameter: Pipeline parameter set to pass the required values to the PolyBase Bulk Load Snap.
The Mapper Snap maps the input schema to the target fields on the PolyBase table.
The pipeline properties as set to be passed into the Snap:
Advanced Use Case
The following describes a pipeline, with a broader business logic involving multiple ETL transformations, that shows how typically in an enterprise environment, PolyBase functionality is used. Pipeline download link below.
In this pipeline, the PolyBase Bulk Load Snap extracts the data from a table on the Oracle DB using a Oracle Select Snap and bulk loads into the table on the PolyBase table. The Output preview displays the status of the execution.
Extract: The Oracle Select Snap reads the records from the Oracle Database.
Load: The PolyBase Bulk load Snap loads the records into the Azure SQL Database.
Enhanced the Azure SQL – Bulk Load Snap to correctly handle all SQL Server user-defined data types by mapping them to their base types, so pipelines can seamlessly load data into the columns of these data types.
Enhanced the Azure SQL - Bulk Extract Snap to enable the underlying BCP utility (v18 and above) to bypass the certification check enforced by the target SQL Server instance. This ensures the bulk data exports are not blocked because of SSL certificate issues.
This change does not impact any Snaps or pipelines that use a BCP utility version below 18.
November 2025
main33142
Stable
Updated and certified against the current SnapLogic Platform release.
August 2025
main32088
Stable
Updated and certified against the current SnapLogic Platform release.
May 2025
main31019
Stable
Updated and certified against the current SnapLogic Platform release.
February 2025
440patches30071
Latest
Fixed the Null Pointer Exception (NPE) issue in the Azure SQL Snaps. Now, these Snaps display an exception error instead of NPE when the URL properties (key and value) and either key or value are empty.
February 2025
main29887
Stable
Updated and certified against the current SnapLogic Platform release.
November 2024
439patches29842
Latest
Enhanced the Azure SQL Entra and Azure SQL Entra Dynamic Accounts with the ActiveDirectoryServicePrincipalCertificate authentication method for improved security and stronger authentication.
November 2024
main29029
Stable
Updated and certified against the current SnapLogic Platform release.
August 2024
main27765
Stable
Upgraded the org.json.json library from v20090211 to v20240303, which is fully backward compatible.
The Snap displayed an error when the DateTime was of the LocalDateTime type.
The Snap lost milliseconds when the DateTime was in the String data type because the given DateTime format was parsed into a Date object and the timestamp object was created from that date.
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
The Azure SQL Execute Snap now includes a new Query type field. When Auto is selected, the Snap determines the query type automatically.
May 2023
main21015
Stable
Upgraded with the latest SnapLogic Platform release.
May 2023
432patches20967
Latest
Fixed an issue with the connection pool in the Azure SQL accounts, which was affecting the Snap Pack's performance. You should now experience improved performance when using these accounts.
Fixed an issue with the Azure SQL - Bulk Load Snap involving special characters in JDBC URL properties, such as passwords. Special characters are properly escaped now
March 2023
432patches20049
Latest
Intermittent connectivity issues no longer occur when using some Snaps in the Azure SQL Snap Pack. These issues caused the following message to display: The connection is broken and recovery is not possible. The connection is marked by the client driver as unrecoverable. No attempt was made to restore the connection.
February 2023
main19844
Stable
Upgraded with the latest SnapLogic Platform release.
January 2023
431patches19493
Latest
The Azure SQL Active Directory and the Azure SQL Active Directory Dynamic accounts now include an Authentication Mode dropdown list, which allows you to choose the Active Directory authentication mode you would like to use. This enhancement supports Active Directory Service Principal authentication for the Snap Pack.
The Azure Synapse SQL Insert Snap no longer includes the Preserve case-sensitivity checkboxbecause the database is case-insensitive. The database stores the data regardless of whether the columns in the target table and the input data are in mixed, lower, or upper case.
November 2022
main18944
Stable
The Azure SQL Snap Pack uses the 11.2x driver by default. If you specify any specific driver, ensure that you provide a version higher than 9.1 that is compatible with Microsoft Authentication Library for Java, as this Snap Pack uses the MSAL4J. Otherwise, you may run into issues.
Fixed an issue with the Azure SQL-Stored Procedure Snap where the Snap failed with an Invalid value type error when the stored procedure contained an NCHAR data type.
4.29 Patch
429patches16460
Latest
Fixed an issue with Azure SQL Bulk Load Snap where the Snaplex exited due to insufficient memory when a large number of rows are loaded into the target table and the input data contained a null value for a non-nullable column.
Fixed an issue with the Azure SQL - Update Snap where the Snap failed with an Incorrect syntax error when a column in a table is of NVARCHAR, NCHAR, or NTEXT data type and this column is part of another NVARCHAR, NCHAR, or NTEXT data type column name and the update condition is specified as an expression.
4.28 Patch
428patches15114
Latest
Fixed an issue with the Azure SQL - Bulk Load Snap where the decimal values lost precision when they were inserted into the database.
4.28
main14627
Stable
Upgraded with the latest SnapLogic Platform release.
Upgraded with the latest SnapLogic Platform release.
4.25
main9554
Stable
Upgraded with the latest SnapLogic Platform release.
4.24
main8556
Stable
Enhances the Azure SQL - Stored Procedure to accept parameters from input documents by column keys. If the values are empty, the parameters are populated based on the column keys for easier mapping in the upstream Mapper Snap.
4.23
main7430
Stable
Enhances the Azure SQL - Bulk ExtractSnap by adding a new check box Enable UTF-8 encodingto support UTF-8 encoded characters. This check box allows the Snap to update the BCP command to read the special characters.
4.22 Patch
422Patches6751
Latest
Enhances the Azure SQL - Bulk Extract Snap by adding a new check box Enable UTF-8 encoding to support UTF-8 encoded characters. Selected by default, this check box allows the Snap to update the BCP command to read these special characters.
4.22
main6403
Stable
Upgraded with the latest SnapLogic Platform release.
4.21 Patch
421patches6272
Latest
Fixes the issue where /wiki/spaces/AP/pages/615284852 Snap generates two output documents despite no changes to Cause-historizationfields with DATE, TIME and TIMESTAMP Snowflake data types, and with Ignore unchanged rows field selected.
4.21 Patch
421patches6144
Latest
Fixes the following issues with DB Snaps:
The connection thread waits indefinitely causing the subsequent connection requests to become unresponsive.
Fixes the connection issue in Database Snaps by detecting and closing open connections after the Snap execution ends.
4.21
snapsmrc542
Stable
Upgraded with the latest SnapLogic Platform release.
4.20
snapsmrc535
Stable
Upgraded with the latest SnapLogic Platform release.
4.19 Patch
db/azuresql8403
Latest
Fixes an issue with the Azure SQL - Update Snap wherein the Snap is unable to perform operations when:
An expression is used in the Update condition property.
Input data contain the character '?'.
4.19
snaprsmrc528
Stable
Enhanced the error handling in PolyBase Bulk Load Snap when writing to a data warehouse. The Snap writes a new blob in the Azure container. This new blob highlights the first invalid row that caused the bulk load operation to fail.
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
Latest
Fixes an issue with the Azure SQL Execute Snap wherein the Snap would send the input document to the output view even if the Pass through field is not selected in the Snap configuration. With this fix, the Snap sends the input document to the output view, under the key original, only if you select the Pass through field.
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 Patch
db/azuresql7179
Latest
Fixes an issue with the Azure SQL Bulk Extract Snap wherein the Snap fails to process all the metadata information of the input table and schema.
4.16
snapsmrc508
Stable
Upgraded with the latest SnapLogic Platform release.
4.15 Patch
db/azuresql6327
Latest
Replaced Max idle time and Idle connection testperiod properties with Max life time and Idle Timeout properties respectively, in the Account configuration. The new properties fix the connection release issues that were occurring due to default/restricted DB Account settings.
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
Upgraded with the latest SnapLogic Platform release.
4.11 Patch
azuresql4631
Latest
Fixes an issue with the Azure Polybase Bulk Load Snap that failed with "Parse error" when there was no input.
4.11 Patch
db/azuresql4326
Latest
Fixes an issue with the Azure SQL Polybase Bulk Load Snap, that allowed the Snap to load data into a table with identity columns for Azure SQL Data Warehouse instance.
Fixes encoding issue when using a Windows plex, and added a "Encoding" Snap property that allows user to choose input data's encoding from UTF-8 and UTF-16.
4.11
snapsmrc465
Stable
Upgraded with the latest SnapLogic Platform release.
The new Snap, Azure SQL Bulk Load is developed has been developed to carry out the bulk load function extensively for Azure SQL DB. (The old Azure Bulk Load has been renamed to Polybase BulkLoad which works for on-premise SQL Server and Azure SQL Data Warehouse with polybase functionality).
Added Auto commit property to the Select and Execute Snaps at the Snap level to support overriding of the Auto commit property at the Account level.
Added the below accounts:
Azure SQL Active Directory Account
Azure SQL Active Directory Dynamic Account
4.9 Patch
azuresql3078
Latest
Fixes an issue regarding connection not closed after login failure; Expose autocommit for "Select into" statement in PostgreSQL Execute Snap and Redshift Execute Snap
4.9
snapsmrc405
Stable
Upgraded with the latest SnapLogic Platform release.
4.8 Patch
azuresql2750
Latest
Potential fix for JDBC deadlock issue.
4.8
snapsmrc398
Stable
Info tab added to accounts.
Database accounts now invalidate connection pools if account properties are modified and login attempts fail.
4.7 Patch
azuresql2196
Latest
Fixes an issue for database Select Snaps regarding Limit rows not supporting an empty string from a pipeline parameter.
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.5
snapsmrc344
Stable
Upgraded with the latest SnapLogic Platform release.