Snowflake
Snowflake is a cloud-native data platform that provides a fully managed data warehouse with support for structured and semi-structured data. It separates storage and compute for flexible scalability and performance, while offering features like secure data sharing and near-zero maintenance. It is widely used for analytics, BI, and data engineering, it runs on major cloud providers.
Prerequisites
The following prerequisites must be met to create and test a successful connection.
- The Snowflake server must be accessible from the iceDQ server.
- Valid credentials to access the database.
- Snowflake version 3.24 or above.
Authentication Mechanisms
The following authentication mechanisms are supported.
- Username and Password
- Key Pair
- Native Okta
- External OAuth
Connection Properties
Username and Password Authentication
Use the following properties to create a valid connection. Properties marked with an asterisk (*) are required.
Name | Description | Example Values |
---|---|---|
Server Instance Name * | Used to distinguish multiple instances of Snowflake accounts. Often same as Account Identifier or region-specific variant. | xy234785.ap-southeast-1 |
Connection Name * | Name that uniquely identifies the connection. | Sales_Prod_conn |
Driver * | Driver used to establish the connection. By default, one driver is available. | Snowflake Native JDBC |
Custom JDBC URL | Standardized string used to define the connection details. Format: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<db>&warehouse=<wh> | jdbc❄️//xy234785.ap-southeast-1.snowflakecomputing.com/?db=Prod_db&warehouse=Acme_wh |
Account Identifier * | Account identifier that uniquely identifies the Snowflake account. | xy234785.ap-southeast-1 |
Warehouse * | Name of the Snowflake data warehouse. | Acme_wh |
Database | Name of the target database. | Prod_db |
Type * | The connection type, either System Connection or User Connection. Refer Connections for more details. | System or User |
Username * | Database login username with necessary privileges. | john_doe |
Password * | Password associated with the specified username. | Admin@123 |
Key Pair Authentication
Use the following properties to create a valid connection. Refer to Snowflake Key Pair Authentication to setup key-pair authentication. Properties marked with an asterisk (*) are required.
Name | Description | Example Values |
---|---|---|
Server Instance Name * | Used to distinguish multiple instances of Snowflake accounts. Often same as Account Identifier or region-specific variant. | xy234785.ap-southeast-1 |
Connection Name * | Name that uniquely identifies the connection. | Sales_Prod_conn |
Driver * | Driver used to establish the connection. By default, one driver is available. | Snowflake Native JDBC |
Custom JDBC URL | Standardized string used to define the connection details. Format: jdbc:snowflake://[accountIdentifier].snowflakecomputing.com/?db=[database]&warehouse=[warehouse] | jdbc❄️//xy234785.ap-southeast-1.snowflakecomputing.com/?db=Prod_db&warehouse=Acme_wh |
Account Identifier * | Account identifier that uniquely identifies the Snowflake account. | xy234785.ap-southeast-1 |
Warehouse * | Name of the Snowflake data warehouse. | Acme_wh |
Database | Name of the target database. | Prod_db |
Type * | The connection type, either System Connection or User Connection. Refer Connections for more details. | System or User |
Username * | Database login username with necessary privileges. | john_doe |
Key File Content * | Content of the private key file (PEM) | -----BEGIN PRIVATE KEY-----\n... |
Key File Password * | Password for the private key | Admin@123 |
Native Okta Authentication
Use the following properties to create a valid connection. Properties marked with an asterisk (*) are required.
Name | Description | Example Values |
---|---|---|
Server Instance Name * | Used to distinguish multiple instances of Snowflake accounts. Often same as Account Identifier or region-specific variant. | xy234785.ap-southeast-1 |
Connection Name * | Name that uniquely identifies the connection. | Sales_Prod_conn |
Driver * | Driver used to establish the connection. By default, one driver is available. | Snowflake Native JDBC |
Custom JDBC URL | Standardized string used to define the connection details. Format: jdbc:snowflake://[accountIdentifier].snowflakecomputing.com/?db=[database]&warehouse=[warehouse] | jdbc❄️//xy234785.ap-southeast-1.snowflakecomputing.com/?db=Prod_db&warehouse=Acme_wh |
Account Identifier * | Account identifier that uniquely identifies the Snowflake account. | xy234785.ap-southeast-1 |
Warehouse * | Name of the Snowflake data warehouse. | Acme_wh |
Database | Name of the target database. | Prod_db |
Authenticator * | The SAML Sign-On URL provided by Okta. | https://mycompany.okta.com/app /snowflake/exk1a2b3c4d5e6f7g8h /sso/saml |
Type * | The connection type, either System Connection or User Connection. Refer Connections for more details. | System or User |
Username * | Okta login username with necessary privileges. | john_doe |
Password * | Password associated with the specified username. | Admin@123 |
The username used must match a Snowflake user that has been configured and mapped to the authenticated Okta user.
External OAuth Authentication
Use the following properties to create a valid connection. Refer to Snowflake External OAuth Entra ID Authentication to setup External OAuth authentication with Entra ID (Azure AD). Properties marked with an asterisk (*) are required.
Name | Description | Example Values |
---|---|---|
Connection Name * | Name that uniquely identifies the connection. | Sales_Prod_Conn |
Driver * | Driver used to establish the connection. By default, one driver is available. | Snowflake Native JDBC |
Custom JDBC URL | Standardized string used to define the connection details. Format: jdbc:snowflake://[accountIdentifier].snowflakecomputing.com/?db=[database]&warehouse=[warehouse] | jdbc❄️//xy234785.ap-southeast-1.snowflakecomputing.com/?db=Prod_db&warehouse=Acme_wh |
Account Identifier * | Account identifier that uniquely identifies the Snowflake account. | xy234785.ap-southeast-1 |
Warehouse * | Name of the Snowflake data warehouse. | Acme_wh |
Database | Name of the target database (optional). | Prod_db |
Callback URL * | The callback endpoint URL configured to receive OAuth tokens. | https://app.icedq.net/ api/v1/oauth/callback |
OAuth Config * | JSON configuration containing OAuth parameters such as client credentials or endpoints. | { "audience": "snowflake", "scope": "session:role:all" } |
Type * | External OAuth authentication supports only User connections. Refer Connections. | User |
Client ID * | The OAuth client ID used to request tokens. | sf_oauth_client |
Secret ID * | The ID of the secret storing the client secret. | sfnj457dth7u43-8hbsdf |
Custom Properties
Custom properties are optional connection parameters in the Snowflake Native driver that allow customization of settings such as timeouts and proxy configurations. A list of supported properties is available here. The availability and behavior of custom connection properties may vary depending on the Snowflake Native driver version in use.
Unsupported Datatypes
The following data types are not supported.
- XPath
- JSONPath
- ROWVERSION
- LINGVARBINARY
- BYTE_ARRAY