Experience Snowflake with Legacy Snowflake Notebooks¶
Snowflake Notebooks は、Snowflakeの他の機能と一緒に使用できる開発環境です。このトピックでは、ノートブック内で他のSnowflake機能を活用する方法について説明します。
ノートブックのSnowpark Python¶
Snowparkライブラリ は、データパイプライン内のデータをクエリおよび処理するための直感的な API を提供します。Snowparkライブラリを使用すると、アプリケーションコードが実行されるシステムにデータを移動することなく、Snowflakeでデータを処理するアプリケーションをビルドできます。ストアドプロシージャを作成し、それらのプロシージャを Snowflake のタスクとしてスケジュールすることで、データの変換と処理を自動化することもできます。
Snowparkを使用して、ノートブックのPythonセルにSnowparkコードを記述することで、Snowflakeでデータを大規模にクエリおよび処理することができます。
使用例¶
Snowpark Python は Snowflake Notebooks 環境にプリインストールされています。次の例では、ノートブックでSnowparkライブラリを使用して、CSVファイルとSnowflakeテーブルを読み込み、その内容を出力として表示します。
ノートブックにPythonセルを追加します。キーボードショートカット を使うか、 + Python を選択します。Snowflake Notebooks と Snowpark はどちらも Python 3.9 をサポートしています。
Snowparkセッションのセットアップ。ノートブックでは、セッションコンテキスト変数はあらかじめ設定されています。セッションコンテキスト変数を取得するには、
get_active_sessionメソッドを使用します。Snowparkを使って、CSVファイルをステージングされた場所からSnowpark DataFrameに読み込みます。この例では、
tastybyte_stageというステージングを使用しています。既存のSnowflakeテーブル
app_orderをSnowpark DataFrame にロードします。Snowpark DataFrameを表示します。
注釈
Snowflake Notebooks 環境の外では、 DataFrame をプリントアウトするために df.show() を呼び出す必要があります。Snowflake Notebooks、 DataFrames は、 df がプリントアウトされるときに積極的に評価されます。DataFrameは、インタラクティブなStreamlit DataFrameディスプレイ(st.dataframe)として出力されます。DataFrames 出力は10,000行または8 MB のいずれか低い方に制限されます。
Snowparkの制限事項¶
SnowflakeノートブックはSnowparkセッションを作成するので、Snowparkセッションクラスで利用可能なメソッドのほとんどを使用することができます。ただし、ノートブックはローカルの開発環境ではなくSnowflakeの内部で実行されるため、以下の方法は使用できません:
session.add_import
session.add_packages
session.add_requirements
Snowpark Pythonのいくつかの操作は、SPROCsで機能しません。操作の包括的なリストについては、 Python ストアドプロシージャの制限 をご参照ください。
注釈
These quickstarts are only shown as examples. Following along with the example may require additional rights to third-party data, products, or services that are not owned or provided by Snowflake. Snowflake does not guarantee the accuracy of these examples or cover them under any Service Level Agreement.
ノートのストリームリット¶
Streamlit はオープンソースのPythonライブラリで、機械学習やデータサイエンスのためのカスタムウェブアプリを簡単に作成・共有できます。Streamlitを使ったインタラクティブなデータアプリケーションを、ノートブック上で直接構築することができます。ノートブックで直接アプリのテストや開発ができます。Streamlitはノートブックにプリインストールされているので、すぐに使い始めることができます。
使用例¶
Streamlit には Snowflake Notebooks 環境がプリインストールされています。このセクションの例では、Streamlitを使用してインタラクティブなデータアプリを作成します。
必要なライブラリをインポートする
まず、アプリのサンプルデータを作成します。
Streamlitライブラリからインタラクティブスライダーを設定してください。
最後に、スライダーの値に基づいてフィルタリングされた表を表示します。
ノートブックからリアルタイムでアプリを操作できます。スライダーで設定した値に基づいて、フィルタリングされた表が変化するのを確認してください。
Tip
包括的な例については、 Snowflake Notebooksによるビジュアルデータストーリー ノートブックのインタラクティブなデータアプリのセクションをご参照ください。
ノートブックでのStreamlitサポート¶
MapboxとCartoは、 st.map または st.pydeck_chart Streamlitコマンドを使用する場合にマップタイルを提供します。
condaでパッケージを管理するウェアハウスランタイムでは、MapboxとCartoはSnowflakeの 外部製品規約 の対象となるサードパーティのアプリケーションです。
ウェアハウスランタイムでこれらのコマンドを使用するには、外部製品規約を確認する必要があります。コンテナランタイムはこの承認を必要としません。
以下のStreamlit要素はNotebooksではサポートされていません。
-
st.set_page_configコマンドのpage_title,page_icon,menu_itemsプロパティには対応していません。
コンテナランタイムノートブック¶
コンテナランタイムは、高度なデータサイエンスと機械学習のワークロードをサポートするソフトウェアとハードウェアのオプションを提供します。コンテナランタイムの詳細については、 Notebooks on Container Runtime をご参照ください。
ノートブックのSnowflake ML レジストリ¶
Snowflake Model Registry を使用すると、オリジンに関係なく、Snowflakeでモデルとメタデータを安全に管理できます。モデルレジストリは、機械学習モデルをSnowflakeのファーストクラスのスキーマレベルオブジェクトとして格納することにより、組織内の他の人たちが容易に見つけて使用できるようにします。Snowpark MLライブラリのクラスを使用してレジストリを作成し、そこにモデルを格納できます。モデルは複数のバージョンを持つことができ、1つのバージョンをデフォルトとして指定することができます。
使用例¶
Snowflake ML レジストリを使用するには、ノートブック用の snowflake-ml-python ライブラリをインストールします。
ノートブックから、一番上の Packages を選択します。
snowflake-ml-python パッケージを検索し、ライブラリを選択してインストールします。
以下は、Snowflake MLレジストリを使用してモデルをログに記録する方法の例です。
Tip
この エンドツーエンドの例を表示 Snowflake ML レジストリの使用方法。
ノートブックのpandas on Snowflake¶
pandas on Snowflake により、Snowflakeのデータ上で直接pandasコードを分散実行することができます。importステートメントと数行のコードを変更するだけで、Snowflakeのスケーラビリティとセキュリティの利点を備えた、使い慣れたpandasネイティブのエクスペリエンスを得ることができます。
pandas on Snowflakeにより、より大規模なデータセットを扱うことができ、pandasパイプラインを他のビッグデータフレームワークに移植したり、より大規模で高価なマシンを使用したりする時間やコストを避けることができます。Snowflakeのワークロードをネイティブに実行し、SQLにトランスパイルすることで、並列化、データガバナンス、セキュリティといったSnowflakeの利点を活用することができます。
pandas on Snowflakeは、Snowpark Pythonライブラリの一部としてSnowpark pandas API を通じて提供され、Snowflakeプラットフォーム内でPythonコードのスケーラブルなデータ処理を可能にします。
使用例¶
Snowpark pandasはSnowpark Pythonバージョン1.17以降で可用性です。Snowpark Pythonには Snowflake Notebooks 環境がプリインストールされています。
Modinをインストールするには、 Packages から
modinを選択し、バージョンが0.28.1以降であることを確認してください。pandasのバージョンをセットするには、 Packages から
pandasを選択し、バージョンが2.2.1であることを確認します。
Pythonのセルに、Snowpark PythonとModinをインポートします。
Snowparkセッションを作成します。
Snowpark Python APIの使用を開始します。
Tip
Snowflake でのpandas の使用方法の例については、 Getting Started with pandas on Snowflake をご参照ください。
ノートブックのSnowflake Python API¶
Snowflake Python API は、PythonとSnowflakeワークロードをシームレスに接続する統一ライブラリです。これは、ファーストクラスPython APIを使って、データエンジニアリング、Snowpark、Snowpark ML、およびアプリケーションのワークロード全体で、 Snowflakeリソースと対話するための包括的なAPIsを提供することを目的としています。
Snowflake Python API を使用して、Snowflakeリソースの作成、削除、変更などの管理を行うことができます。Pythonを使用して、 Snowflakeの SQL コマンド で行うようなタスクを実行できます。
Notebooksでは、セッションコンテキスト変数はあらかじめ設定されています。セッションコンテキスト変数を取得するには、 get_active_session メソッドを使用します。
Snowflake Python API を使用するための Root オブジェクトを作成します。
以下は、Python APIを使ってデータベースとスキーマを作成する例です。
Tip
SnowflakeのPython API の使い方の詳細な例については、Githubの Creating Snowflake object using Python API notebook example をご参照ください。