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 のプレビューリリースには以下の制限があります。
Microsoft AzureおよびGoogle Cloud Platform上のSnowflakeアカウントはサポートされません。
Snowflake Native App Framework のクロスクラウド自動複製は、現在 AWS リージョンでのみサポートされています。
政府リージョンにあるSnowflakeアカウントはサポートされません。
Virtual Private Snowflake(VPS)は、単一の組織内でのみサポートされます。
Icebergテーブルはサポートされません。
仮テーブルやステージはサポートされません。
Streamlitの一部の機能はサポートされません。詳細については サポートされていないStreamlit機能 および Native App FrameworkでStreamlitを使用する際の制限事項 をご参照ください。
Snowflake Native App Framework のコンポーネント¶
次の図は、 Snowflake Native App Framework の概要を示しています。
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はアプリケーションを作成し、セットアップスクリプトを実行してアプリケーション内に必要なオブジェクトを作成します。詳細については APPLICATION オブジェクトの作成およびテスト をご参照ください。
アプリケーションのインストール後、コンシューマーは以下のような追加タスクを実行できます。
ログとイベント共有を有効 にして、プロバイダーがアプリケーションをトラブルシューティングできるようにする。
コンシューマーがアプリケーションをインストールして管理する方法の詳細については、 コンシューマーとしてのアプリケーションの操作 をご参照ください。