What you will be able to do
- Name the Snowflake drivers and match each to the language or client type it serves
- Explain why the Snowflake Connector for Python counts as a driver and how it relates to JDBC and ODBC
- Tell the Kafka connector and the Spark connector apart by direction of data flow and packaging
- Choose the right Spark connector line for a given Spark version
Key concept
Integration object — Code that connects to Snowflake does it through a driver or connector. That code runs outside Snowflake and logs in with the client's own identity. Reaching out the other way is different: when Snowflake itself needs to get to cloud storage, an HTTPS API or a Git server, it uses an integration. An integration is a named Snowflake object that holds the identity and the allowed endpoints, so nobody passes raw credentials around.
1.Drivers: how your own code reaches Snowflake
Connectivity in Snowflake goes in two directions, and this subdomain covers both. One direction is code running outside Snowflake that opens a session into it. That is the job of drivers and connectors, covered on this page. The other is Snowflake reaching out to someone else's system, which uses integration objects (storage, API and Git integrations), covered on a separate page.
Drivers come first. Snowflake's documentation says the drivers are for writing applications 'using languages such as Go, C#, JavaScript, and Python'. The rule is simple: choose the driver that matches your application's language or client technology. The official list has seven entries. The Snowflake Connector for Python is one of them, even though its name says 'connector'.
| Driver | What it is for |
|---|---|
| Go Snowflake Driver | An interface for developing applications in the Go programming language |
| JDBC Driver | Connecting from most client tools/applications that support JDBC |
| .NET Driver | An interface to the Microsoft .NET open source software framework |
| Node.js Driver | A native asynchronous Node.js interface |
| ODBC Driver | Connecting from ODBC-based client applications |
| PHP PDO Driver for Snowflake | An interface for developing PHP applications |
| Snowflake Connector for Python | Developing Python applications that perform all standard operations |
Checkpoint 1 of 5· Match them up
Match each driver to the description the documentation gives it
Tap a term, then the definition that fits it.
Each driver serves one language or client standard. Node.js is the driver the docs call natively asynchronous. JDBC and ODBC serve the many existing tools built on those standards.
“Connect to Snowflake with a native asynchronous Node.js interface.”Source: docs.snowflake.com
Every driver encrypts its traffic in the same way. All Snowflake drivers support TLS to secure communication between the client and the Snowflake service. TLS 1.2 works with every driver, and TLS 1.3 works with every driver except in one documented case. For the .NET Driver, MacOS does not yet support TLS 1.3 and will once .NET 10 is released. On Windows, TLS 1.3 works with .NET 3.0, with .NET Framework 4.8, and with later versions.
Checkpoint 2 of 5· Check yourself
A security team requires TLS 1.3 for every client connection to Snowflake. In which setup does the driver documentation flag a gap?
The TLS table supports TLS 1.3 for every driver. The one exception is the .NET Driver on MacOS, which has to wait for .NET 10.
“MacOS currently does not support TLS 1.3, but will once .NET 10 is released.”Source: docs.snowflake.com
Sources1
2.The Snowflake Connector for Python
Despite its name, the Snowflake Connector for Python is a driver. It appears in the drivers list beside JDBC and ODBC, and it does the same job: an application opens a session and runs standard operations. The documentation calls it a programming alternative to building applications in Java or C/C++ with the JDBC or ODBC drivers. You install it with pip on Linux, MacOS and Windows, wherever Python is installed.
It follows the Python Database API v2 specification (PEP-249). In practice that means two standard objects: Connection objects connect to Snowflake, and Cursor objects run statements and queries. SnowSQL, Snowflake's command-line client, is built on this connector. One documented limitation is that the connector does not currently support GCP regional endpoints.
Don't mix the connector up with the Snowflake Python APIs. Those are a separate, first-class way to manage databases, schemas, tables, tasks and warehouses from Python without writing SQL.
Checkpoint 3 of 5· Check yourself
A Python application written to PEP-249 needs to run a CREATE TABLE statement and then a SELECT. Which connector object does that work?
Under PEP-249, the Connection holds the session and the Cursor runs DDL, DML and queries. SnowSQL is an application built on the connector, and the Python APIs are a separate way to manage objects without SQL.
“Cursor objects for executing DDL/DML statements and queries.”Source: docs.snowflake.com
Sources2
3.Connectors: plugging Kafka and Spark into Snowflake
A driver lets your own code reach Snowflake. A connector is different: it plugs Snowflake into another platform's ecosystem. Snowflake's overview of connection options puts Snowflake Connectors in their own category, separate from the drivers and APIs. It also lists clients such as Snowsight, Snowflake CLI and the VS Code extension separately, as applications and tools rather than drivers or connectors. The two connectors this exam names are Kafka and Spark, and the main difference between them is which way the data moves.
| Aspect | Snowflake Connector for Kafka | Snowflake Connector for Spark |
|---|---|---|
| Direction of data | One way: reads from Apache Kafka topics and loads into a Snowflake table | Both ways: Spark reads data from and writes data to Snowflake |
| How Snowflake appears | As the destination table for topic data | As another Spark data source, like PostgreSQL, HDFS or S3 |
| Packaging | Not covered in the overview source | A Spark plugin provided as the spark-snowflake package |
| Related options in the docs | Snowpipe Streaming classic; Apache Iceberg tables | Snowpark Connect for Spark as an alternative |
The Kafka connector reads data from one or more Apache Kafka topics and loads it into a Snowflake table. It only ingests: data flows from Kafka into Snowflake.
The Spark connector goes both ways. It brings Snowflake into the Apache Spark ecosystem, and Spark can read from and write to Snowflake as it would any other data source. Version matching matters. Spark Connector 2.x covers Spark 3.2, 3.3 and 3.4, with a separate connector build for each Spark version. Spark Connector 3.x covers Spark 3.2 through 4.1, and each package supports most versions of Spark. If a cluster is on Spark 3.5 or 4.x, only the 3.x line covers it.
Checkpoint 4 of 5· Check yourself
A data engineering team runs Spark 3.5. Their jobs must read Snowflake tables and write results back. What should they install?
The Spark connector is the one that reads and writes in both directions. The 2.x line stops at Spark 3.4, so a Spark 3.5 cluster needs the 3.x line.
“Spark Connector 3.x: Spark versions 3.2, 3.3, 3.4, 3.5, 4.0, and 4.1.”Source: docs.snowflake.com
Checkpoint 5 of 5· Check yourself
What does the Snowflake Connector for Kafka do?
The Kafka connector only ingests: it reads topics and loads them into a Snowflake table. The connector that works in both directions is the Spark connector.
“reads data from one or more Apache Kafka topics and loads the data into a Snowflake table.”Source: docs.snowflake.com
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.The Snowflake Connector for Python is a wrapper around the ODBC or JDBC driver, so one of those has to be installed first.Why is that wrong?
It is a native, pure Python package with no JDBC or ODBC dependency, and the docs list it as a driver alongside them.
Covered in The Snowflake Connector for Python
2.One Spark Connector 2.x package works with all Spark 3.x versions.Why is that wrong?
The 2.x line has a separate connector build for each Spark version and covers only Spark 3.2 to 3.4. The 3.x line is the one where each package supports most Spark versions.
Covered in Connectors: plugging Kafka and Spark into Snowflake
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“Use the drivers described in this section to access Snowflake from applications written in the driver’s supported language.”
↩︎ Drivers: how your own code reaches Snowflake“All Snowflake drivers support TLS to secure communications between the client and the Snowflake service.”
↩︎ Drivers: how your own code reaches Snowflake“Connect to Snowflake with a native asynchronous Node.js interface.”
↩︎ Checkpoint“MacOS currently does not support TLS 1.3, but will once .NET 10 is released.”
↩︎ Checkpoint - 2.
“It provides a programming alternative to developing applications in Java or C/C++ using the Snowflake JDBC or ODBC drivers.”
↩︎ The Snowflake Connector for Python“SnowSQL, the command-line client provided by Snowflake, is an example of an application developed using the connector.”
↩︎ The Snowflake Connector for Python“This driver currently does not support GCP regional endpoints.”
↩︎ The Snowflake Connector for Python“The connector is a native, pure Python package that has no dependencies on JDBC or ODBC.”
↩︎ Exam trap 1“The connector is a native, pure Python package that has no dependencies on JDBC or ODBC.”
↩︎ Prediction“Cursor objects for executing DDL/DML statements and queries.”
↩︎ Checkpoint - 3.
“Snowflake Connectors allow you to integrate third-party applications and database systems with Snowflake.”
↩︎ Connectors: plugging Kafka and Spark into Snowflake - 4.
“enabling Spark to read data from, and write data to, Snowflake.”
↩︎ Connectors: plugging Kafka and Spark into Snowflake“The connector runs as a Spark plugin and is provided as a Spark package (spark-snowflake).”
↩︎ Connectors: plugging Kafka and Spark into Snowflake“Each Spark Connector 3 package supports most versions of Spark.”
↩︎ Connectors: plugging Kafka and Spark into Snowflake“There’s a separate version of the Snowflake connector for each version of Spark.”
↩︎ Exam trap 2“Spark Connector 3.x: Spark versions 3.2, 3.3, 3.4, 3.5, 4.0, and 4.1.”
↩︎ Checkpoint
Also cited
“Integrations are named, first-class Snowflake objects that avoid the need for passing explicit cloud provider credentials such as secret keys or access tokens.”
↩︎ Key concept“reads data from one or more Apache Kafka topics and loads the data into a Snowflake table.”
↩︎ Checkpoint