CertSafari
    Snowflake SnowPro Core Certification (COF-C03)· Lessons

    Domain 3 · Lesson 12/19

    Snowflake Drivers and Connectors: JDBC, ODBC, Python, Kafka and Spark

    Identify the different Snowflake Connectors and integrations

    8 min read
    6% of exam
    6 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    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'.

    The Snowflake drivers and what each one is for
    DriverWhat it is for
    Go Snowflake DriverAn interface for developing applications in the Go programming language
    JDBC DriverConnecting from most client tools/applications that support JDBC
    .NET DriverAn interface to the Microsoft .NET open source software framework
    Node.js DriverA native asynchronous Node.js interface
    ODBC DriverConnecting from ODBC-based client applications
    PHP PDO Driver for SnowflakeAn interface for developing PHP applications
    Snowflake Connector for PythonDeveloping 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.

    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?

    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?

    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.

    Kafka connector vs Spark connector
    AspectSnowflake Connector for KafkaSnowflake Connector for Spark
    Direction of dataOne way: reads from Apache Kafka topics and loads into a Snowflake tableBoth ways: Spark reads data from and writes data to Snowflake
    How Snowflake appearsAs the destination table for topic dataAs another Spark data source, like PostgreSQL, HDFS or S3
    PackagingNot covered in the overview sourceA Spark plugin provided as the spark-snowflake package
    Related options in the docsSnowpipe Streaming classic; Apache Iceberg tablesSnowpark 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?

    Checkpoint 5 of 5· Check yourself

    What does the Snowflake Connector for Kafka do?

    Sources34

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 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. 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. 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. 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. 3.
      “Snowflake Connectors allow you to integrate third-party applications and database systems with Snowflake.”
      ↩︎ Connectors: plugging Kafka and Spark into Snowflake
    4. 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

    Continue to page 2 of 2

    Snowflake Storage, API, and Git Integrations

    Spotted a mistake, or was something unclear? Tell us.