Native Apps Frameworkについて¶
このトピックでは、Native Apps Frameworkに関する一般的な情報を提供します。
Native Apps Frameworkの概要¶
Native Apps Frameworkにより、Snowflakeのコア機能を活用したデータアプリケーションを作成できます。Native Apps Frameworkでは、以下を実現できます。
データと関連するビジネスロジックを他のSnowflakeアカウントと共有して、他のSnowflake機能の能力を拡大する。アプリケーションのビジネスロジックには、Streamlitアプリ、ストアドプロシージャ、 Snowpark API、Javascript、 SQL を使用して記述された関数が含まれます。
リストを介してアプリケーションをコンシューマーと共有する。リストには無料と有料があります。 Snowflake Marketplace でアプリを配信して収益化することも、プライベートリストを使用して特定のコンシューマーに配信することもできます。
Streamlitを使用してアプリケーションに豊富なビジュアライゼーションを含める。
また、Native Apps Frameworkは、より充実した開発環境を提供します。
単一のアカウントでアプリケーションをテストできる、合理化されたテスト環境。
堅牢な開発者ワークフロー。データと関連するデータベースオブジェクトはSnowflake内に残しながら、サポートするコードファイルとリソースは、お好みの開発者ツールを使用してソース管理内で管理できます。
アプリケーションのバージョンやパッチをリリースする機能。プロバイダーとしてアプリケーションのロジックを変更、進化させ、コンシューマーに段階的にリリースすることができます。
構造化イベントと非構造化イベントのログをサポート。アプリケーションのトラブルシューティングとモニターを可能にします。
プレビューにおける既知の制限事項¶
Native Apps Frameworkのプレビューリリースには以下の制限があります。
Microsoft AzureおよびGoogle Cloud Platform上のSnowflakeアカウントはサポートされません。
政府リージョンにあるSnowflakeアカウントはサポートされません。
Virtual Private Snowflake(VPS)は、単一の組織内でのみサポートされます。
AUTOINCREMENT を使用して作成したテーブルはサポートされません。Snowflakeでは、代わりに シーケンス を使用することをお勧めします。
仮テーブルやステージはサポートされません。
Streamlitの一部の機能はサポートされません。詳細については、 サポートされていないStreamlit機能 および Native Apps FrameworkでStreamlitを使用する際の制限事項 をご参照ください。
現在、開発モードでインストールされたアプリケーションでは、名前付きステージ上のファイルを使用した参照は機能しません。参照は、バージョンのあるアプリケーション、またはリストから別のアカウントでインストールされたアプリケーションでのみ機能します。
Native Apps Frameworkのコンポーネント¶
次の図は、Native Apps Frameworkの概要を示しています。

Native Apps Frameworkは、 Snowflakeコラボレーション や Secure Data Sharing など、他のSnowflake機能で使用されているプロバイダーとコンシューマーのコンセプトに基づいて構築されています。
- プロバイダー
データコンテンツやアプリケーションロジックを他のSnowflakeユーザーと共有するSnowflakeユーザー。
- コンシューマー
プロバイダーが共有する、データコンテンツとアプリケーションロジックにアクセスするSnowflakeユーザー。
アプリケーションパッケージの開発およびテスト¶
データコンテンツとアプリケーションロジックをコンシューマーと共有するために、プロバイダーはアプリケーションパッケージを作成します。
- アプリケーションパッケージ
アプリケーションパッケージは、アプリケーションに必要なデータコンテンツ、アプリケーションロジック、メタデータ、およびセットアップスクリプトをカプセル化します。アプリケーションパッケージには、アプリケーション用に定義されたバージョンとパッチレベルに関する情報も含まれています。詳細については、 アプリケーションパッケージの作成 をご参照ください。
アプリケーションパッケージには、プロバイダーがアプリケーションに含めるデータコンテンツや外部コードファイルへの参照を含めることができます。アプリケーションパッケージには、マニフェストファイルとセットアップスクリプトが必要です。
- マニフェストファイル
セットアップスクリプトの場所やバージョンなど、アプリケーションに必要な構成や設定のプロパティを定義します。詳細については、 マニフェストファイルの作成 をご参照ください。
- セットアップスクリプト
コンシューマーアプリケーションをインストールまたはアップグレードするとき、あるいはプロバイダーがテスト用にアプリケーションをインストールまたはアップグレードするときに実行される SQL テートメントが含まれています。セットアップスクリプトの場所は、
manifest.yml
ファイルで指定します。詳細については、 セットアップスクリプトの作成 をご参照ください。
アプリケーションパッケージを公開する¶
アプリケーションパッケージを開発し、テストした後、プロバイダーは、アプリケーションパッケージを含むリストをリストのデータ製品として公開して、アプリケーションをコンシューマーと共有することができます。リストは、 Snowflake Marketplace リストまたはプライベートリストです。
- Snowflake Marketplace リスト
プロバイダーがSnowflakeデータクラウド全体でアプリケーションを販売できるようにします。 Snowflake Marketplace でリストを提供すると、プロバイダーは、個別のコンシューマーとの共有関係を維持するのではなく、アプリケーションを多くのコンシューマーと同時に共有できます。
- プライベートリスト
プライベートリストを使用すると、プロバイダーはリストの機能を利用して、データやその他の情報を任意のSnowflakeリージョンにある別のSnowflakeアカウントと直接共有できます。
詳細については、 リストについて をご参照ください。
アプリケーションをインストールし、管理する¶
プロバイダーがアプリケーションパッケージを含むリストを公開すると、コンシューマーはリストを検索してアプリケーションをインストールできます。
- アプリケーション
アプリケーションは、コンシューマーカウントにインストールされたデータベースオブジェクトです。コンシューマーがアプリケーションをインストールすると、Snowflakeはアプリケーションを作成し、セットアップスクリプトを実行してアプリケーション内に必要なオブジェクトを作成します。詳細については、 アプリケーションの作成とテスト をご参照ください。
アプリケーションのインストール後、コンシューマーは以下のような追加タスクを実行できます。
ログとイベント共有を有効 にして、プロバイダーがアプリケーションをトラブルシューティングできるようにする。
コンシューマーがアプリケーションをインストールして管理する方法の詳細については、 コンシューマーとしてのアプリケーションの操作 をご参照ください。