Snowflake S3 Dynamic Account
In this article
Overview
You can use this account type to connect Snowflake Snaps with data sources that use Snowflake S3 Dynamic accounts.
Prerequisites
None.
Limitations and Known Issues
If an S3 bucket is specified in the SnapLogic Snowflake Account, the S3 credentials are validated as follows:
The S3 access-key ID and S3 secret key specified are used to create an S3 connection.
If the S3 access-key ID and S3 secret key are not specified, the Snap uses the IAM role instead.
If the Snap is not able to write to the S3 bucket, validation ends with an error stating that the Snap is unable to write to the specified S3 bucket.
If the Snap is able to write to (but not delete from) the specified S3 bucket, validation ends with an error indicating that the configuration is not able to delete from the S3 bucket.
The S3 AWS token is also validated if specified.
Note that only global Security Token Service (STS) regions are supported.
If an S3 bucket isn’t specified in the SnapLogic Account, no validation of S3 credentials occurs.
Account Settings
Asterisk ( * ): Indicates a mandatory field.
Suggestion icon ( ): Indicates a list that is dynamically populated based on the configuration.
Expression icon ( ): Indicates whether 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.
Field Name | Field Type | Field Dependency | Description | |
---|---|---|---|---|
Label* Default value: None | String | N/A | Specify a unique label for the account.
| |
Account properties* | ||||
JDBC JARs
| Use this field set to add a list of JDBC JAR files to be loaded. By default, the Snowflake account is bundled with the JDBC driver version 3.16.0. However, you can add a custom JAR file. Click to add a new row for each JDBC JAR file. Add each JAR file in a separate row. See Downloading the JDBC Driver for more information about JDBC drivers and downloading the appropriate driver for your account. | |||
JDBC Driver*
Default value: None | String | N/A | Specify the fully-qualified name of the JDBC driver class to be used for connecting to the server. The Snowflake Snap Pack is bundled with the default Snowflake JDBC driver v3.16.0. Therefore, even if you do not provide a JDBC Driver, the account does not fail. | |
Hostname*
Default value: None | String | N/A | Specify the hostname of the Snowflake server to which you want to connect the new account. | |
Port Number*
Default value: 443 | Integer | N/A | Specify the port number associated with the Snowflake database server that you must use for this account.
| |
Authentication Type*
Default Value: Password | Dropdown list | N/A | Choose an authentication type to connect to the database. The available options are:
| |
Username*
Default Value: N/A | String | N/A | Specify the username to connect to the Snowflake database server. | |
Password*
Default Value: N/A | String | Appears when you select Password for Authentication Type. | Specify the password associated with the username specified above. This will be used as the default password while retrieving connections. | |
Encrypted Private Key*
Default Value: N/A -----END PRIVATE KEY----- | String | Appears when you select Key Pair for Authentication Type. | Specify the key that you have generated for authentication. The key must include the generated header and footer. Learn more about configuring and generating a valid key pair. | |
Encrypted Private Key Passphrase*
Default Value: N/A | String | Appears when you select Key Pair for Authentication Type. | Specify the encrypted private key passphrase for authentication. | |
Database name*
Default value: None | String | N/A | Specify the name of the database to which you want to connect.
| |
Warehouse name*
Default value: None | String | N/A | Specify the name of the warehouse to which you want to connect.
| |
JDBC Driver Class
Default Value: net.snowflake.client.jdbc.SnowflakeDriver | String | N/A | Specify the JDBC driver class to use.
| |
S3 Bucket
Default Value: N/A | String | N/A | Specify the name of the S3 bucket that you want to use for staging data to Snowflake. | |
S3 Folder
Default Value: N/A | String/Expression | N/A | Specify the relative path to a folder in the S3 bucket listed in the S3 Bucket field. This is used as a root folder for staging data to Snowflake.
| |
S3 Access-key ID
Default Value: N/A | String/Expression | N/A | Specify the S3 access key ID that you want to use for AWS authentication.
| |
S3 Secret key
Default Value: N/A | String/Expression | N/A | Specify the S3 secret key associated with the S3 Access-ID key. listed in the S3 Access-key ID field.
| |
S3 AWS Token
Default Value: None | String/Expression | N/A | Specify the S3 AWS Token to connect to private and protected Amazon S3 buckets. Note that only global Security Token Service (STS) regions are supported. | |
S3 Storage Integration
Default Value: N/A | String/Expression | N/A | Specify the S3 Storage Integration for Snowflake to be used for staging data instead of using AWS Acces-key ID and S3 Secret key. This value is necessary for validating data after a bulk load or bulk insert operation. | |
Advanced properties | ||||
URL Properties | Use this field set to define additional URL properties to use if any. | |||
URL property name
Default value: None | String | N/A | Specify the name of the URL property.
| |
URL property value
Default value: None | String | N/A | Specify the URL property value associated with the URL property name.
| |
Batch size*
Default value: 50 | Integer | N/A | Specify the number of Snowflake queries that you want to execute at a time. | |
Fetch size*
Default value: 100 | Integer | N/A | Specify the number of rows a query must fetch for each execution. | |
Min pool size*
Default value: 3 | Integer | N/A | Specify the minimum number of idle connections that you want the pool to maintain at a time. Minimum value: 0 | |
Max pool size*
Default value: 15 | Integer | N/A | Specify the maximum number of connections that you want the pool to maintain at a time. Minimum value: 0 | |
Max life time*
Default value: 60 | Integer | N/A | Specify the maximum lifetime of a connection in the pool. | |
Idle Timeout*
Default value: 5 | Integer | N/A | Specify the maximum amount of time a connection is allowed to sit idle in the pool. | |
Checkout timeout*
Default value: 10000 | Integer | N/A | Specify the number of milliseconds you want the system to wait for a connection to become available when the pool is exhausted. |
Generating a Valid Key Pair
In a Linux terminal, run the following command to generate a Private Key stored in PKCS8 format: Encrypted (recommended): Generate a public key by referencing the previously generated private key Store the generated private key ( In the Snowflake console, assign the public key to the required Snowflake user. Exclude the header and footer from the public key. In the Snowflake console, verify the assignment of the public key to the required Snowflake user: Specify the entire Private Key and include the header and footer in the Private Key field of the Snowflake account. Snowflake supports multiple active keys for uninterrupted rotation. Learn more: Key Pair Authentication & Key Pair Rotation — Snowflake Documentation.openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8
rsa_key.p8
: openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
rsa_key.p8
) and public key (rsa_key.pub
) in a safe location.ALTER USER jsmith SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
DESC USER jsmith;
Snap Pack History
Related Links
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.