4.5 Connectors, Drivers, and Snowsight Loading
Key Takeaways
SnowSQL is the CLI client that supports PUT/GET and scripting; the worksheet UI cannot run PUT.
Snowflake ships connectors/drivers for Python, JDBC, ODBC, .NET, Node.js, Go, PHP, and Spark.
The Kafka connector streams topic records into Snowflake using Snowpipe or Snowpipe Streaming.
The Spark connector pushes computation down and exchanges data via internal/external stages.
Snowsight's Load Data wizard handles small ad-hoc file loads directly in the browser (no PUT).
Connectivity: Clients, Drivers, and Connectors
Snowflake exposes a single SQL endpoint that many clients reach through purpose-built libraries. The exam expects you to recognize each one's role.
| Tool | What it is / when to use |
|---|---|
| SnowSQL | Official command-line client; runs SQL, scripts, and PUT/GET for stages |
| Python connector | DB-API library for Python apps and data science (snowflake-connector-python) |
| JDBC driver | Java/JVM connectivity (BI tools, ETL, Java apps) |
| ODBC driver | Generic driver for BI/desktop tools (Excel, Tableau via ODBC) |
| .NET / Node.js / Go / PHP | Native drivers for those runtimes |
| Spark connector | Bidirectional Spark↔Snowflake with query pushdown |
| Kafka connector | Streams Kafka topic records into Snowflake tables |
SnowSQL is the workhorse CLI: it is the standard place to run PUT (upload to a stage) and GET (download), neither of which works in the Snowsight worksheet. It supports variables, scripts (-f file.sql), and connection profiles, making it suited to automated and scheduled loads.
The Spark connector lets a Spark job read from or write to Snowflake; it pushes down filters and projections into Snowflake and moves bulk data through an internal or external stage rather than row-by-row. The Kafka connector subscribes to topics and lands records into Snowflake — historically via Snowpipe (micro-batch through internal stages) and now also via Snowpipe Streaming for lower latency, typically writing each topic's data into a table with RECORD_CONTENT and RECORD_METADATA VARIANT columns.
Loading in Snowsight and Choosing the Right Path
Snowsight web loading
Snowsight (the modern web UI) includes a Load Data into Table wizard reached from a database table's actions. It lets you pick local files (up to a small per-file size limit, e.g. ~250 MB and a handful of files) and a file format, then runs the staging and COPY INTO for you behind the scenes — convenient for ad-hoc or one-time loads without installing a client. Because the browser cannot run PUT, Snowsight uploads through this managed wizard instead. For repeatable or large-volume pipelines, use SnowSQL scripting, a driver, or Snowpipe.
Picking the right ingestion method
Use this decision guide, which mirrors how scenario questions are framed:
- Periodic large batches on a schedule → bulk
COPY INTOon a sized warehouse. - Files arriving continuously in cloud storage → Snowpipe auto-ingest (event notifications).
- App-driven file notifications / Kafka → Snowpipe REST API or the Kafka connector.
- Sub-second row streaming, no files → Snowpipe Streaming.
- Query files in place without loading → external table over a stage.
- One-off small upload, no tooling → Snowsight Load Data wizard.
Readiness check
You are ready for this 18% domain when you can, without notes: name the six load formats and the three unload formats; list the four stage types and their prefixes (@~, @%t, @my_stage, external); contrast bulk COPY (your warehouse, ABORT_STATEMENT) with Snowpipe (serverless, SKIP_FILE); recall the 100-250 MB compressed sizing rule; and write a FLATTEN query against a VARIANT column. If any of those is shaky, drill it before test day.
Authentication and Driver Behavior
Every connector authenticates to the same account URL (account_identifier.snowflakecomputing.com). Recognize the supported authentication methods, since connectivity questions often hinge on them:
- Username/password — basic, often combined with MFA.
- Key pair (JWT) — a 2048-bit RSA key registered on the user; preferred for service accounts and Snowpipe REST, because the
insertFilescall signs a JWT rather than sending a password. - OAuth / external browser SSO — federated identity for interactive users.
The Python connector can return results as pandas DataFrames (fetch_pandas_all) and write them efficiently with write_pandas, which stages Parquet behind the scenes and runs COPY — a fast bulk-load path from Python. JDBC/ODBC drivers are what BI tools (Tableau, Power BI, Looker) and ETL tools use, and they transparently page large result sets through internal stages for performance. The Go, .NET, and Node.js drivers expose the same SQL surface for their ecosystems.
Result and query behavior shared across drivers
All drivers benefit from Snowflake's result cache (identical query within 24 hours returns instantly without compute) and stream large results through chunked stage files rather than one big payload. For ingestion specifically, drivers that need to upload files call PUT under the hood (the same primitive SnowSQL exposes), then COPY INTO. Knowing that the driver, SnowSQL, and write_pandas all converge on PUT + COPY INTO ties the whole chapter together: stages are the universal hand-off point, COPY INTO is the universal loader, and the connector is just the transport. '
Quick reference for connector questions
When a stem names a specific tool, match it to its role: SnowSQL = CLI with PUT/GET and scripting; Python connector = programmatic loads and pandas; JDBC/ODBC = BI and ETL tool connectivity; Spark connector = big-data pushdown; Kafka connector = streaming ingestion; Snowsight = browser worksheets plus the small-file Load Data wizard. Drivers do not change what loading does — they only change who initiates the PUT and COPY. Authentication choice (password, key-pair JWT, or OAuth/SSO) is independent of the loading method, but key-pair is the expected answer for unattended service accounts and the Snowpipe REST API.
With these mappings memorized, the connectivity slice of this 18% domain becomes a matching exercise rather than a memory test.
A team needs to script repeatable nightly loads that upload local files to a stage and then run COPY INTO. Which client is the natural fit?
The Snowsight worksheet UI
SnowSQL, the command-line client supporting PUT/GET and scripting
The ODBC driver alone
The external table interface
How does the Snowflake Kafka connector typically deliver topic records into Snowflake tables?
By creating an external table over the Kafka log files
By bulk COPY INTO run manually for each topic
By using Snowpipe (or Snowpipe Streaming), landing data in RECORD_CONTENT and RECORD_METADATA columns
By unloading data with COPY INTO <location>
A user with no client tools installed needs to load a single small CSV into a table one time. What is the simplest path?
Install the Spark connector and write a job
Use the Snowsight Load Data into Table wizard in the browser
Configure a Snowpipe pipe with auto-ingest
Set up a storage integration and external table
Which authentication method is most appropriate for an unattended service account driving the Snowpipe REST API?
Key-pair authentication using a signed JWT
Interactive external-browser SSO
A shared username and password typed at runtime
No authentication is required for the REST API
Sections you finish are checked off in the contents.