Snowflake Python API: PythonによるSnowflakeオブジェクトの管理

Snowflake Python API は、すべてのSnowflakeワークロードで統一されたPython API であり、データエンジニアリング、Snowpark、およびクライアントアプリケーションのワークロードにわたるすべてのSnowflakeリソースに APIs を提供することを目的としています。

Snowflake Python API を使用して、Snowflakeリソースの作成、削除、変更などの操作を行うことができます。Pythonを使用して、Snowflakeの SQL コマンド で行うようなタスクを実行できます。

Snowflake Python API では、現在、次のSnowflakeオブジェクトを管理できます。

Snowflake Python APIを使用するための入門チュートリアルについては、 クイックスタート: Snowflake Python API 入門 をご参照ください。

次の例のコードは、 my_task というタスクをを実行します。このコードでは、構成ファイルで定義された接続パラメーターを使用して Snowflake への接続を作成します。出来上がった Session オブジェクトを使って、コードは API のタイプとメソッドを使う Root オブジェクトを作成します。API を使って、コードは my_task を表す Task オブジェクトを作成します。 TaskResource オブジェクト task_res を使って、コードはタスクを実行します。

API で実行できるタスク関連のアクションの詳細については、 PythonによるSnowflakeタスクと DAGs の管理 をご参照ください。

from snowflake.core import Root
from snowflake.core.task import Task
from snowflake.snowpark import Session

session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)

tasks = root.databases["mydb"].schemas["myschema"].tasks
task_res = tasks['my_task']

task_res.execute()
Copy

制限事項

Snowflake Python API は、現在Snowflake Anacondaチャンネルでは利用できません。

サポートされているバージョン

サポートされているPythonのバージョンは次のとおりです。

  • 3.8

  • 3.9

  • 3.10

  • 3.11

開発者ガイド

ガイド

説明

Snowflake Python API ライブラリのインストール

Snowflake Python API パッケージをインストールします。

Snowflake Python API によるSnowflakeへの接続

PythonコードからSnowflakeに接続します。

PythonによるSnowflakeタスクと DAGs の管理

タスクとタスクの DAGs の作成、実行、管理には API を使用します。

PythonによるSnowflakeデータベース、スキーマ、テーブルの管理

データベース、スキーマ、テーブルの作成と管理には API を使用します。

PythonによるSnowflake仮想ウェアハウスの管理

仮想ウェアハウスの作成と管理には API を使用します。

Pythonを使用したSnowpark Container Servicesの管理

API を使用して、コンピュートプール、イメージリポジトリ、サービスなど、Snowpark Container Servicesのコンポーネントを管理します。

Snowflakeへのアクセスコスト

使用クレジットとネットワークアクティビティの両方のコストを削減するために、Snowflake Python API は、Snowflakeと同期するように設計されたメソッドを呼び出すときにのみ、Snowflakeと通信するように設計されています。

API 内のオブジェクトはローカル参照(または ハンドル)か、Snowflakeに格納された状態のスナップショットです。一般的に、Snowflakeからの情報を操作したり、取得したりする場合は、ローカルのメモリ内参照オブジェクトを介して行います。

これらの参照は、メソッドを呼び出すまでSnowflakeと同期しません。メソッドを呼び出すと、通常、使用クレジットとネットワークアクティビティの両方でコストが発生します。対照的に、属性にアクセスするときなど、メモリ内参照を操作する場合は、作業はローカルで実行され、そのようなコストは発生しません。