Manage the Snowflake Connector

The Composer Snowflake connector lets you access the data available in Snowflake storage using the Composer client. The Composer Snowflake connector supports whatever Snowflake version is currently available in the cloud.

Before you can establish a connection from Composer to Snowflake storage, a connector server needs to be installed and configured. See Manage Connectors and Connector Servers for general instructions and Connect to Snowflake for details specific to the Snowflake connector.

After the connector has been set up, you can create data source configurations that specify the necessary connection information and identify the data you want to use. See Manage Data Source Configurations for more information. After data sources are configured, they can be used to create dashboards and visuals from your data. See Create Dashboards.

Composer Feature Support

Snowflake connector support for specific Composer features is shown in the following table.

Key: P - Supported; O - Not Supported; N/A - not applicable

Feature Supported?
Admin-Defined Functions P
Box Plots P
Custom SQL Queries P
Derived Fields (Row-Level Expressions) P
Distinct Counts P
Fast Distinct Values N/A
Group By Multiple Fields P
Group By Time P
Group By UNIX Time P
Histogram Floating Point Values P
Histograms P
Kerberos Authentication O
Last Value P
Live Mode and Playback P
Multivalued Fields N/A
Nested Fields N/A
Partitions O
Pushdown Joins for Fusion Data Sources P
Schemas P
Text Search N/A
TLS P
User Delegation O
Wild Card Filters P
Wild Card Filters, Case-Insensitive Mode P
Wild Card Filters, Case-Sensitive Mode P

Connect to Snowflake

The version 3.12.11 JDBC driver is included with the Snowflake connector, but you can download a newer version from https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc/. See Add a JDBC Driver.

When setting up a connection to Snowflake, you need to provide the following:

  • The name of the connection
  • The JDBC URL.
  • Each Snowflake connection must be associated with a database. It may be the database specified in the JDBC URL or the default data base of the connecting user (when no database is specified in the JDBC URL).
  • The username and password. Only simple username and password authentication is supported.

Snowflake officially supports each of its client versions for a minimum of two years: https://docs.snowflake.net/manuals/release-notes/requirements.html#support-policy. If the JDBC driver is not updated for two years, the Snowflake connector may stop working. Composer regularly updates the JDBC driver, however if you do not update your Snowflake connector for a long time, you may encounter problems. If this happens, you can manually update the JDBC driver yourself. Composer provides it in /opt/zoomdata/lib/edc-snowflake.

Snowflake Time Field Conversion

The Composer Snowflake connector converts date-time fields with data types of TIMESTAMP_TZ (a Snowflake data type) to Coordinated Universal Time (UTC) format. The connector also sets the session timezone to UTC format, which means that all Snowflake fields that use the Snowflake local timezone data type TIMESTAMP_LTZ are also converted to UTC format.

Configure the Snowflake Clustering Depth Threshold

Snowflake does not have an index, but supports micro-partitions and clustering keys instead. It uses a clustering depth for a table column to indicate whether the clustering state of the column has improved or deteriorated as a result of data changes in the table. A value of 1.0 for the clustering depth indicates that the column is fully clustered. A higher clustering depth indicates that the Snowflake table is not optimally clustered. See Understanding Snowflake Table Structures.

To define playability of date or numeric fields, the Composer Snowflake connector uses the relative clustering depth of these fields in relation to the total number of partitions in the table, computed as a percentage using the following formula:

AverageClusteringDepth / MAX(TotalPartitionCount, 100) * 100

If the relative clustering depth of a field is equal to or less than a set threshold value, it is considered to be playable. The default clustering depth threshold is 10%, but can be changed by changing the following Snowflake configuration property in the Snowflake properties file (edc-snowflake.properties):

snowflake.metadata-detection.fast-range-queries.max-clustering-depth-percent=<nnn>

See Connector Properties and Property Files.

The clustering depth threshold allows Composer to enable playback and live mode for all fields that are optimally clustered and disable it for all fields that are not. Adjust the threshold value or recluster your Snowflake tables to better handle intermediate cases.