Snowflake Python APIs: PythonによるSnowflakeオブジェクトの管理¶
Snowflake Python APIs パッケージは、PythonとSnowflakeワークロードをシームレスに接続する統一ライブラリです。これは、ファーストクラスPython APIを使って、データエンジニアリング、Snowpark、Snowpark ML、およびアプリケーションのワークロード全体で、 Snowflakeリソースと対話するための包括的なAPIsを提供することを目的としています。
Snowflake Python APIs を使用して、Snowflake リソースの作成、ドロップ、変更などの管理を行うことができます。Pythonを使用して、Snowflakeの SQL コマンド で行うようなタスクを実行できます。
次の図は、高レベルのSnowflake Python Snowflake Python APIs パッケージ構造を示しています。
一般的なコンセプトやデザインパターンなど、 API の詳細については、 Snowflake Python APIs: 一般概念 をご参照ください。
サポートされるSnowflakeリソースオブジェクト¶
Snowflake Python APIs を使用すると、現在、以下の Snowflake リソースオブジェクトを管理できます(括弧内は必要な最小 API バージョン)。
-
Accounts (0.13.0)
Managed accounts (0.13.0)
アラート (0.13.0)
-
External volumes (0.13.0)
Pipes (0.13.0)
Stages (0.9.0)
Databases and database objects
動的テーブル (0.10.0)
Event tables (0.13.0)
Views (0.13.0)
-
User-defined functions (UDFs) (0.13.0)
Stored procedures (0.13.0)
-
Catalog integrations (0.13.0)
Notification integrations (0.13.0)
Network policies (0.13.0)
ノートブック (0.13.0)
ストリーム (0.13.0)
-
Users (0.9.0)
Roles (0.9.0)
Database roles (0.13.1)
Access privileges (0.13.1)
SnowflakeのPythonエコシステム¶
Snowflake Python APIs 、 Snowpark API for Python 、および Snowflake Connector for Python は、Snowflakeでそれぞれ異なる目的を持つインターフェイスです。このセクションでは、それぞれの違いを説明し、それぞれの一般的なユースケースについて紹介します。
- Snowflake Python APIs
このファーストクラスのPython APIs のセットを使用して、Snowflakeワークロード全体のコアリソース(テーブル、ウェアハウス、タスクなど)を定義および管理できます。Pythonコネクタとは異なり、これらの APIs は SQL を使用せずにネイティブのPythonを使用してSnowflakeとやり取りします。
Snowflake Python APIs パッケージは、すべてのSnowflake Python ライブラリ(
connector
、core
、snowpark
、ml
を含む)を統合しているため、pip install snowflake
コマンドで簡単に開始できます。宣言型プログラミングアプローチに従って、この API を DevOps ツールとして使用し、リソースへの変更を管理し、Snowflakeでのコードとインフラストラクチャのデプロイを自動化できます。
- Snowpark
このライブラリとコード実行環境のセットは、Snowflakeのデータの隣でPythonやその他のプログラミング言語を実行できます。
ライブラリ: Snowpark API を使用すると、コード内でSnowpark DataFrames を使用して、Snowflake内で完全にデータをクエリおよび変換できます。Snowparkアプリケーションは、アプリケーションコードが実行されるシステムにデータを移動することなく、Snowflakeエンジン上で直接大規模にデータを処理します。
Snowpark API はPython、Java、Scalaで利用できます。
コード実行環境: Snowparkランタイム環境は、コンテナイメージとPython、Java、Scalaのコードをサポートします。
Pythonユーザー定義関数(UDFs)またはストアドプロシージャを使用してカスタムPythonコードを実行し、データパイプラインやアプリなどを構築できます。Pythonランタイム環境はAnacondaからパッケージリポジトリとパッケージマネージャーにアクセスできます。
ランタイム環境はScalaおよびJavaでも利用できます。
Snowpark Container Services を使用すると、コンテナ化されたアプリケーションをSnowflake内で直接実行できます。
- Python用Snowflake Connector
この SQL ドライバーを使用してSnowflakeに接続し、 SQL ステートメントを実行し、Pythonクライアントを使用して結果を取得します。
Pythonコネクタを使用すると、 SQL ステートメント文字列を使用してSnowflakeとのすべてのやり取りを記述できます。
Snowflake Python APIs 入門¶
Snowflake Python Snowflake Python APIs の使用を開始するには、次のトピックの手順をご参照ください。
Snowflake Python APIs 入門のチュートリアルについては、 チュートリアル: Snowflake Python APIs 入門 をご参照ください。
サポートされているPythonバージョン¶
サポートされているPythonのバージョンは次のとおりです。
3.9
3.10
3.11
3.12
開発者ガイド¶
ガイド |
説明 |
---|---|
Snowflake Python APIs パッケージをインストールします。 |
|
PythonコードからSnowflakeに接続します。 |
|
API を使用して、アカウントや管理アカウントの作成と管理を行います。 |
|
アラートの作成と管理には API を使用します。 |
|
API を使用して、外部ボリューム、パイプ、ステージなど、データのロードとアンロードのリソースを作成および管理します。 |
|
データベース、スキーマ、テーブルの作成と管理には API を使用します。 |
|
動的テーブルの作成と管理には API を使用します。 |
|
API を使用して、ユーザー定義関数(UDFs)とストアド・プロシージャを作成し、管理します。 |
|
API を使用して、カタログ統合と通知統合を作成および管理します。 |
|
ネットワークポリシーの作成と管理には API を使用します。 |
|
Snowflake Notebooks の作成と管理には API を使用します。 |
|
API を使用して、コンピューティングプール、イメージリポジトリ、サービスなど、Snowpark Container Servicesのコンポーネントを管理します。 |
|
ストリームの作成と管理には API を使用します。 |
|
タスクとタスクグラフの作成、実行、管理には API を使用します。 |
|
API を使用して、ユーザー、ロール、およびグラントを作成および管理します。 |
|
仮想ウェアハウスの作成と管理には API を使用します。 |
参照¶
Snowflakeへのアクセスコスト¶
使用クレジットとネットワークアクティビティの両方のコストを削減するために、 Snowflake Python APIs は、Snowflakeと同期するように設計されたメソッドを呼び出すときにのみ、Snowflakeと通信するように設計されています。
API 内のオブジェクトはローカル参照(または ハンドル)か、Snowflakeに格納された状態のスナップショットです。通常、Snowflakeから取得した情報を処理する場合は、ローカルのメモリ内参照オブジェクトを介して行います。
これらの参照は、メソッドを呼び出すまでSnowflakeと同期しません。メソッドを呼び出すと、通常、使用クレジットとネットワークアクティビティの両方でコストが発生します。対照的に、属性にアクセスするときなど、メモリ内参照を操作する場合は、作業はローカルで実行され、そのようなコストは発生しません。