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 パッケージ構造を示しています。

高レベルのSnowflake Python APIs パッケージ構造を示す図

一般的なコンセプトやデザインパターンなど、 API の詳細については、 Snowflake Python APIs: 一般概念 をご参照ください。

サポートされるSnowflakeリソースオブジェクト

Snowflake Python APIs を使用すると、現在、以下の Snowflake リソースオブジェクトを管理できます(括弧内は必要な最小 API バージョン)。

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 ライブラリ(connectorcoresnowparkml を含む)を統合しているため、 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 の使用を開始するには、次のトピックの手順をご参照ください。

  1. ライブラリをインストールする

  2. Snowflakeに接続する

Snowflake Python APIs 入門のチュートリアルについては、 チュートリアル: Snowflake Python APIs 入門 をご参照ください。

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

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

  • 3.9

  • 3.10

  • 3.11

  • 3.12

開発者ガイド

ガイド

説明

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

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

Snowflake Python APIs によるSnowflakeへの接続

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

PythonによるSnowflakeアカウントと管理アカウントの管理

API を使用して、アカウントや管理アカウントの作成と管理を行います。

PythonでSnowflakeアラートを管理する

アラートの作成と管理には API を使用します。

Pythonでのデータのロードとアンロードのリソースの管理

API を使用して、外部ボリューム、パイプ、ステージなど、データのロードとアンロードのリソースを作成および管理します。

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

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

PythonでSnowflakeの動的テーブルを管理する

動的テーブルの作成と管理には API を使用します。

PythonでSnowflake関数とストアドプロシージャを管理する

API を使用して、ユーザー定義関数(UDFs)とストアド・プロシージャを作成し、管理します。

PythonでSnowflake統合を管理する

API を使用して、カタログ統合と通知統合を作成および管理します。

PythonでSnowflakeネットワークポリシーを管理する

ネットワークポリシーの作成と管理には API を使用します。

Pythonと Snowflake Notebooks の管理

Snowflake Notebooks の作成と管理には API を使用します。

PythonによるSnowpark Container Services(サービス関数を含む)の管理

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

PythonでSnowflakeストリームを管理する

ストリームの作成と管理には API を使用します。

PythonによるSnowflakeタスクとタスクグラフの管理

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

PythonでSnowflakeのユーザー、ロール、付与を管理する

API を使用して、ユーザー、ロール、およびグラントを作成および管理します。

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

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

参照

Snowflake Python APIs リファレンス

Snowflakeへのアクセスコスト

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

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

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