Miscellaneous
This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.
Property | Description |
AllowPreparedStatement | Prepare a query statement before its execution. |
ApplicationName | The application name connection string property expresses the HTTP User-Agent. |
AsyncQueryTimeout | The timeout for asynchronous requests issued by the provider to download large result sets. |
CustomStage | The name of a custom stage to use during bulk write operations. |
EnableArrow | Whether to support Apache Arrow. |
ExternalStageAWSAccessKey | Your AWS account access key. Only used when defining a CustomStage for bulk write operations. |
ExternalStageAWSSecretKey | Your AWS account secret key. Only used when defining a CustomStage for bulk write operations. |
ExternalStageAzureSASToken | The string value of the Azure Blob shared access signature. |
IgnoreCase | Whether to ignore case in identifiers. Default: false. |
IncludeTableTypes | If set to true, the provider will report the types of individual tables and views. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
MaxThreads | Specifies the number of concurrent requests. |
MergeDelete | A boolean indicating whether batch DELETE statements should be converted to MERGE statements automatically. Only used when the DELETE statement's where clause contains a table's primary key field only and they are combined with AND logical operator. |
MergeInsert | A boolean indicating whether INSERT statements should be converted to MERGE statements automatically. Only used when the INSERT contains a table's primary key field. |
MergeUpdate | A boolean indicating whether batch UPDATE statements should be converted to MERGE statements automatically. Only used when the UPDATE statement's where clause contains a table's primary key field only and they are combined with AND logical operator. |
Other | These hidden properties are used only in specific use cases. |
Pagesize | The maximum number of results to return per page from Snowflake. |
Readonly | You can use this property to enforce read-only access to Snowflake from the provider. |
ReplaceInvalidUTF8Chars | Specifies whether to repalce invalid UTF8 characters with a '?'. |
RetryOnS3Timeout | Whether or not to retry when network issues occur at during chunk downloading. |
SessionParameters | The session parameters for Snowflake. For example: SessionParameters='QUERY_TAG=MyTag;QUOTED_IDENTIFIERS_IGNORE_CASE=True;';. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UseAsyncQuery | This field sets whether async query is enabled. |
AllowPreparedStatement
Prepare a query statement before its execution.
Data Type
bool
Default Value
false
Remarks
If the AllowPreparedStatement property is set to false, statements are parsed each time they are executed. Setting this property to false can be useful if you are executing many different queries only once.
If you are executing the same query repeatedly, you will generally see better performance by leaving this property at the default, true. Preparing the query avoids recompiling the same query over and over. However, prepared statements also require the adapter to keep the connection active and open while the statement is prepared.
ApplicationName
The application name connection string property expresses the HTTP User-Agent.
Data Type
string
Default Value
""
Remarks
AsyncQueryTimeout
The timeout for asynchronous requests issued by the provider to download large result sets.
Data Type
int
Default Value
300
Remarks
If the AsyncQueryTimeout property is set to 0, asynchronous operations will not time out; instead, they will run until they complete successfully or encounter an error condition. This property is distinct from Timeout which applies to individual HTTP operations while AsyncQueryTimeout applies to execution time of the operation as a whole.
If AsyncQueryTimeout expires and the asynchronous request has not finished being processed, the adapter raises an error condition.
CustomStage
The name of a custom stage to use during bulk write operations.
Data Type
string
Default Value
""
Remarks
The name of a custom stage to use during bulk write operations. This can be an internal or external stage. If the stage is external, the AWS or Azure credentials must be provided as well via the ExternalStageAWSAccessKey/ExternalStageAWSSecretKey or ExternalStageAzureAccessKey properties.
When this is left unspecified, the adapter will generate a temporay stage automatically during the upload process and delete it after the upload is complete.
EnableArrow
Whether to support Apache Arrow.
Data Type
bool
Default Value
true
Remarks
Whether to support Apache Arrow.
ExternalStageAWSAccessKey
Your AWS account access key. Only used when defining a CustomStage for bulk write operations.
Data Type
string
Default Value
""
Remarks
Your AWS account access key. This value is accessible from your AWS security credentials page:
Sign into the AWS Management console with the credentials for your root account.
Select your account name or number and select My Security Credentials in the menu that is displayed.
Click Continue to Security Credentials and expand the Access Keys section to manage or create root account access keys.
ExternalStageAWSSecretKey
Your AWS account secret key. Only used when defining a CustomStage for bulk write operations.
Data Type
string
Default Value
""
Remarks
Your AWS account secret key. This value is accessible from your AWS security credentials page:
1. Sign into the AWS Management console with the credentials for your root account.
2. Select your account name or number and select My Security Credentials in the menu that is displayed.
3. Click Continue to Security Credentials and expand the Access Keys section to manage or create root account access keys.
ExternalStageAzureSASToken
The string value of the Azure Blob shared access signature.
Data Type
string
Default Value
""
Remarks
The string value of the Azure Blob shared access signature.
You can go to "Shared access signature" in "Settings" section for your Azure Blob container through Azure Portal, then click "Generate SAS token and URL" and copy the value from "Blob SAS token" textbox. Please be cautionus to select the proper permission (Create, Write, Delete) in "Permissions" dropdown list and validity of Start and Expiry time before you generate SAS token.
IgnoreCase
Whether to ignore case in identifiers. Default: false.
Data Type
bool
Default Value
false
Remarks
A session parameter that specifies whether Snowflake will treat identifiers as case sensitive. Default: false(case is sensitive).
IncludeTableTypes
If set to true, the provider will report the types of individual tables and views.
Data Type
bool
Default Value
false
Remarks
If set to true, the adapter will report the types of individual tables and views.
MaxRows
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
Data Type
int
Default Value
-1
Remarks
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
MaxThreads
Specifies the number of concurrent requests.
Data Type
string
Default Value
"5"
Remarks
This property allows you to issue multiple requests simultaneously, thereby improving performance.
MergeDelete
A boolean indicating whether batch DELETE statements should be converted to MERGE statements automatically. Only used when the DELETE statement's where clause contains a table's primary key field only and they are combined with AND logical operator.
Data Type
bool
Default Value
false
Remarks
A boolean indicating whether DELETE statements should be converted to MERGE statements automatically to allow for upsert functionality. This property is primarily intended for use with tools where you have no direct control over the queries being executed. Otherwise, as long as Query Passthrough is True, you could execute the MERGE command directly.
When this property is False, DELETE bulk statements won't executed against the server. When it is set to True and the DELETE query contains the primary key field, the Snowflake will send a MERGE query that will execute an DELETE if match is found in Snowflake. For example this query:
DELETE FROM "Table" WHERE "ID" = 1 AND "NAME" = 'Jerry'
Will be sent to Snowflake as the following MERGE request:
MERGE INTO "Table" AS "Target" USING "RTABLE1_TMP_20eca05b-c050-47dd-89bc-81c7f617f877" AS "Source" ON ("Target"."ID" = "Source"."ID" AND "Target"."NAME" = "Source"."NAME")
WHEN MATCHED THEN DELETE
MergeInsert
A boolean indicating whether INSERT statements should be converted to MERGE statements automatically. Only used when the INSERT contains a table's primary key field.
Data Type
bool
Default Value
false
Remarks
A boolean indicating whether INSERT statements should be converted to MERGE statements automatically to allow for upsert functionality. This property is primarily intended for use with tools where you have no direct control over the queries being executed. Otherwise, as long as Query Passthrough is True, you could execute the MERGE command directly.
When this property is False, INSERT statements are executed directly against the server. When it is set to True and the INSERT query contains the primary key field, the Snowflake will send a MERGE query that will execute an INSERT if no match is found in Snowflake or an UPDATE if it is. For example this query:
INSERT INTO "Table" ("ID", "NAME", "AGE") VALUES (1, 'NewName', 10)
Will be sent to Snowflake as the following MERGE request:
MERGE INTO "Table" AS "Target" USING (SELECT 1 AS "ID") AS [Source] ON ("Target"."ID" = "Source"."ID")
WHEN NOT MATCHED THEN INSERT ("ID", "NAME", "AGE") VALUES (1, 'NewName', 10)
WHEN MATCHED THEN UPDATE SET "NAME" = 'NewName', "AGE" = 10
MergeUpdate
A boolean indicating whether batch UPDATE statements should be converted to MERGE statements automatically. Only used when the UPDATE statement's where clause contains a table's primary key field only and they are combined with AND logical operator.
Data Type
bool
Default Value
false
Remarks
A boolean indicating whether UPDATE statements should be converted to MERGE statements automatically to allow for upsert functionality. This property is primarily intended for use with tools where you have no direct control over the queries being executed. Otherwise, as long as Query Passthrough is True, you could execute the MERGE command directly.
When this property is False, UPDATE statements are executed directly against the server. When it is set to True and the UPDATE query contains the primary key field, the Snowflake will send a MERGE query that will execute an INSERT if no match is found in Snowflake or an UPDATE if it is. For example this query:
UPDATE "Table" SET "NAME" = 'NewName', "AGE" = 10 WHERE "ID" = 1
Will be sent to Snowflake as the following MERGE request:
MERGE INTO "Table" AS "Target" USING "RTABLE1_TMP_20eca05b-c050-47dd-89bc-81c7f617f877" AS "Source" ON ("Target"."ID" = "Source"."ID")
WHEN MATCHED THEN UPDATE SET "Target"."NAME" = "Source"."NAME", "Target"."AGE" = "Source"."AGE"
Other
These hidden properties are used only in specific use cases.
Data Type
string
Default Value
""
Remarks
The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.
Specify multiple properties in a semicolon-separated list.
Integration and Formatting
DefaultColumnSize | Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
ConvertDateTimeToGMT | Determines whether to convert date-time values to GMT, instead of the local time of the machine. |
RecordToFile=filename | Records the underlying socket data transfer to the specified file. |
Pagesize
The maximum number of results to return per page from Snowflake.
Data Type
int
Default Value
5000
Remarks
The Pagesize property affects the maximum number of results to return per page from Snowflake. Setting a higher value may result in better performance at the cost of additional memory allocated per page consumed.
Readonly
You can use this property to enforce read-only access to Snowflake from the provider.
Data Type
bool
Default Value
false
Remarks
If this property is set to true, the adapter will allow only SELECT queries. INSERT, UPDATE, DELETE, and stored procedure queries will cause an error to be thrown.
ReplaceInvalidUTF8Chars
Specifies whether to repalce invalid UTF8 characters with a '?'.
Data Type
bool
Default Value
false
Remarks
Specifies whether to repalce invalid UTF8 characters with a '?'
RetryOnS3Timeout
Whether or not to retry when network issues occur at during chunk downloading.
Data Type
bool
Default Value
false
Remarks
Typically if a network issue such as a timeout occurs during chunk downloading of data, the Snowflake Adapter will throw an exception. Set this property to true to cause the Snowflake Adapter to attempt retrying the request before failing.
SessionParameters
The session parameters for Snowflake. For example: SessionParameters='QUERY_TAG=MyTag;QUOTED_IDENTIFIERS_IGNORE_CASE=True;';.
Data Type
string
Default Value
""
Remarks
The session parameters for Snowflake. For example: SessionParameters='QUERY_TAG=MyTag;QUOTED_IDENTIFIERS_IGNORE_CASE=True;';
Timeout
The value in seconds until the timeout error is thrown, canceling the operation.
Data Type
int
Default Value
120
Remarks
If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.
If Timeout expires and the operation is not yet complete, the adapter throws an exception.
UseAsyncQuery
This field sets whether async query is enabled.
Data Type
bool
Default Value
false
Remarks
This field sets whether async query is enabled.