Snowflake Python API: Managing Snowflake objects with Python¶
The Snowflake Python API is a unified library that seamlessly connects Python with Snowflake workloads. It is intended to provide comprehensive APIs for interacting with Snowflake resources across data engineering, Snowpark, Snowpark ML, and application workloads using a first-class Python API.
You can use the Snowflake Python API to manage Snowflake resources by creating, deleting, or modifying them, and more. You can use Python to perform tasks you might otherwise perform with Snowflake SQL commands.
The following diagram shows the high-level Snowflake Python API packaging structure:
Get started with the Snowflake Python API¶
To get started with the Snowflake Python API, see the instructions in the following topics:
With the Snowflake Python API, you can currently manage the following Snowflake objects:
Tasks, with which you can execute SQL statements, procedure calls, and logic in Snowflake Scripting
For more information, see Managing Snowflake tasks and task graphs with Python.
Resources in Snowpark Container Services, including compute pools, image repositories, and services
For more information, see Managing Snowpark Container Services with Python.
For an introductory tutorial on using the Snowflake Python API, see Quickstart: Getting Started with the Snowflake Python API.
Limitations¶
The Snowflake Python API is not currently available in the Snowflake Anaconda channel.
Supported versions¶
The supported versions of Python are:
3.8
3.9
3.10
3.11
Developer guides¶
Guide |
Description |
---|---|
Install the Snowflake Python API package. |
|
Connect to Snowflake from Python code. |
|
Use the API to create, execute, and manage tasks and task graphs. |
|
Managing Snowflake databases, schemas, and tables with Python |
Use the API to create and manage databases, schemas, and tables. |
Use the API to create and manage virtual warehouses. |
|
Use the API to manage components of Snowpark Container Services, including compute pools, image repositories, and services. |
References¶
Costs of Snowflake access¶
To reduce costs—–for both usage credit and network activity—–the Snowflake Python API is designed to communicate with Snowflake only when you call methods designed to synchronize with Snowflake.
Objects in the API are either local references (or handles) or snapshots of state stored on Snowflake. In general, when you process information that was retrieved from Snowflake, you do so through a local, in-memory reference object.
These references do not synchronize with Snowflake until you call a method. When you call a method, you are usually incurring costs in both usage credit and network activity. In contrast, when you work with in-memory references, such as when accessing attributes, your work is performed locally and incurs no such costs.