Snowflake Native App Framework について

このトピックでは、 Snowflake Native App Framework に関する一般的な情報を提供します。

Snowflake Native App Framework の紹介

Snowflake Native App Framework により、Snowflakeのコア機能を活用したデータアプリケーションを作成できます。 Snowflake Native App Framework により以下を実行できます。

  • データと関連するビジネスロジックを他のSnowflakeアカウントと共有して、他のSnowflake機能の能力を拡大する。アプリケーションのビジネスロジックには、Streamlitアプリ、ストアドプロシージャ、 Snowpark API、 JavaScript、 SQL を使用して記述された関数が含まれます。

  • リストを介してアプリケーションをコンシューマーと共有する。リストには無料と有料があります。 Snowflake Marketplace でアプリを配信して収益化することも、プライベートリストを使用して特定のコンシューマーに配信することもできます。

  • Streamlitを使用してアプリケーションに豊富なビジュアライゼーションを含める。

また、 Snowflake Native App Framework は、より充実した開発環境を提供します。

  • 単一のアカウントでアプリケーションをテストできる、合理化されたテスト環境。

  • 堅牢な開発者ワークフロー。データと関連するデータベースオブジェクトはSnowflake内に残しながら、サポートするコードファイルとリソースは、お好みの開発者ツールを使用してソース管理内で管理できます。

  • アプリケーションのバージョンやパッチをリリースする機能。プロバイダーとしてアプリケーションのロジックを変更、進化させ、コンシューマーに段階的にリリースすることができます。

  • 構造化イベントと非構造化イベントのログをサポート。アプリケーションのトラブルシューティングとモニターを可能にします。

既知の制限

Snowflake Native App Framework には以下のような制限があります。

  • Google Cloud Platform上のSnowflakeアカウントはまだサポートされていません。

  • クロスクラウド自動複製は現在、 AWS およびAzureリージョンでのみサポートされています。

  • 政府リージョンにあるSnowflakeアカウントはサポートされません。

  • Virtual Private Snowflake(VPS)は、単一の組織内でのみサポートされます。

  • Icebergテーブルはサポートされません。

  • 仮テーブルやステージはサポートされません。

  • Streamlitの一部の機能はサポートされません。詳細については サポートされていないStreamlit機能 をご参照ください。

  • Snowflake Native App Frameworkは、事業継続のためのフェールオーバーをサポートしていません。複製グループおよびフェールオーバーグループへのアプリケーションパッケージの追加はサポートされていません。

Snowflake Native App Framework のコンポーネント

次の図は、 Snowflake Native App Framework の概要を示しています。

../../_images/native-apps-overview.png

Snowflake Native App Framework は、 SnowflakeコラボレーションSecure Data Sharing など、他のSnowflake機能で使用されているプロバイダーとコンシューマーのコンセプトに基づいて構築されています。

プロバイダー

データコンテンツやアプリケーションロジックを他のSnowflakeユーザーと共有するSnowflakeユーザー。

コンシューマー

プロバイダーが共有する、データコンテンツとアプリケーションロジックにアクセスするSnowflakeユーザー。

アプリケーションパッケージの開発およびテスト

データコンテンツとアプリケーションロジックをコンシューマーと共有するために、プロバイダーはアプリケーションパッケージを作成します。

アプリケーションパッケージ

アプリケーションパッケージは、アプリケーションに必要なデータコンテンツ、アプリケーションロジック、メタデータ、およびセットアップスクリプトをカプセル化します。アプリケーションパッケージには、アプリケーション用に定義されたバージョンとパッチレベルに関する情報も含まれています。詳細については アプリケーションパッケージを作成する をご参照ください。

アプリケーションパッケージには、プロバイダーがアプリケーションに含めるデータコンテンツや外部コードファイルへの参照を含めることができます。アプリケーションパッケージには、マニフェストファイルとセットアップスクリプトが必要です。

マニフェストファイル

セットアップスクリプトの場所やバージョンなど、アプリケーションに必要な構成や設定のプロパティを定義します。詳細については アプリケーションパッケージのマニフェストファイルを作成する をご参照ください。

セットアップスクリプト

コンシューマーアプリケーションをインストールまたはアップグレードするとき、あるいはプロバイダーがテスト用にアプリケーションをインストールまたはアップグレードするときに実行される SQL ステートメントが含まれています。セットアップスクリプトの場所は、 manifest.yml ファイルで指定します。詳細については セットアップスクリプトを作成する をご参照ください。

アプリケーションパッケージを公開する

アプリケーションパッケージを開発し、テストした後、プロバイダーは、アプリケーションパッケージを含むリストをリストのデータ製品として公開して、アプリケーションをコンシューマーと共有することができます。リストは、 Snowflake Marketplace リストまたはプライベートリストです。

Snowflake Marketplace リスト

プロバイダーがSnowflakeデータクラウド全体でアプリケーションを販売できるようにします。 Snowflake Marketplace でリストを提供すると、プロバイダーは、個別のコンシューマーとの共有関係を維持するのではなく、アプリケーションを多くのコンシューマーと同時に共有できます。

プライベートリスト

これによって、プロバイダーはリストの機能を利用して、 Snowflake Native App Framework でサポートされた任意の Snowflake リージョン にある別のSnowflakeアカウントと直接共有できます。

詳細については、 リストについて をご参照ください。

アプリケーションをインストールし、管理する

プロバイダーがアプリケーションパッケージを含むリストを公開すると、コンシューマーはリストを検索してアプリケーションをインストールできます。

Snowflake Native App

Snowflake Native App は、コンシューマーカウントにインストールされたデータベースオブジェクトです。コンシューマーが Snowflake Native App をインストールすると、Snowflakeはアプリケーションを作成し、セットアップスクリプトを実行してアプリケーション内に必要なオブジェクトを作成します。詳細については アプリケーションオブジェクトを作成します。 をご参照ください。

アプリケーションのインストール後、コンシューマーは以下のような追加タスクを実行できます。

コンシューマーがアプリケーションをインストールして管理する方法の詳細については、 コンシューマーとしてのアプリケーションの操作 をご参照ください。