Snowflake Python API: PythonによるSnowflakeオブジェクトの管理¶
Snowflake Python API は、PythonとSnowflakeワークロードをシームレスに接続する統一ライブラリです。これは、データエンジニアリング、Snowpark、およびアプリケーションのワークロード全体で、 SQL コマンドを使用せずにSnowflakeのコアリソースと対話するための包括的な APIs を提供することを目的としています。
Snowflake Python API を使用して、Snowflakeリソースの作成、削除、変更などの管理を行うことができます。Pythonを使用して、Snowflakeの SQL コマンド で行うようなタスクを実行できます。
現在、Snowflake Python API を使用して、次のSnowflakeオブジェクトを管理できます。
Tasks, with which you can execute SQL statements, procedure calls, and logic in Snowflake Scripting
詳細については、 PythonによるSnowflakeタスクとタスクグラフの管理 をご参照ください。
コンピューティングプール、イメージリポジトリ、サービスなどの、 Snowpark Container Services のリソース。
詳細については、 Pythonを使用したSnowpark Container Servicesの管理 をご参照ください。
Snowflake Python APIを使用するための入門チュートリアルについては、 クイックスタート: Snowflake Python API 入門 をご参照ください。
例¶
次の例のコードは、 my_task
というタスクをを実行します。このコードでは、構成ファイルで定義された接続パラメーターを使用して Snowflake への接続を作成します。出来上がった Session
オブジェクトを使って、コードは API のタイプとメソッドを使う Root
オブジェクトを作成します。API を使用して、コードは my_task
を表す Task
オブジェクトを作成します。 task_res
という TaskResource
オブジェクトを使用して、コードはタスクを実行します。
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()
API で実行できるタスク関連のアクションの詳細については、 PythonによるSnowflakeタスクとタスクグラフの管理 をご参照ください。
制限事項¶
Snowflake Python API は、現在Snowflake Anacondaチャンネルでは利用できません。
サポートされているバージョン¶
サポートされているPythonのバージョンは次のとおりです。
3.8
3.9
3.10
3.11
開発者ガイド¶
ガイド |
説明 |
---|---|
Snowflake Python API パッケージをインストールします。 |
|
PythonコードからSnowflakeに接続します。 |
|
タスクとタスクグラフの作成、実行、管理には API を使用します。 |
|
データベース、スキーマ、テーブルの作成と管理には API を使用します。 |
|
仮想ウェアハウスの作成と管理には API を使用します。 |
|
API を使用して、コンピューティングプール、イメージリポジトリ、サービスなど、Snowpark Container Servicesのコンポーネントを管理します。 |
参照¶
Snowflakeへのアクセスコスト¶
使用クレジットとネットワークアクティビティの両方のコストを削減するために、Snowflake Python API は、Snowflakeと同期するように設計されたメソッドを呼び出すときにのみ、Snowflakeと通信するように設計されています。
API 内のオブジェクトはローカル参照(または ハンドル)か、Snowflakeに格納された状態のスナップショットです。通常、Snowflakeから取得した情報を処理する場合は、ローカルのメモリ内参照オブジェクトを介して行います。
これらの参照は、メソッドを呼び出すまでSnowflakeと同期しません。メソッドを呼び出すと、通常、使用クレジットとネットワークアクティビティの両方でコストが発生します。対照的に、属性にアクセスするときなど、メモリ内参照を操作する場合は、作業はローカルで実行され、そのようなコストは発生しません。