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 の概要を示しています。
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はアプリケーションを作成し、セットアップスクリプトを実行してアプリケーション内に必要なオブジェクトを作成します。詳細については アプリケーションオブジェクトを作成します。 をご参照ください。
アプリケーションのインストール後、コンシューマーは以下のような追加タスクを実行できます。
ログとイベント共有を有効 にして、プロバイダーがアプリケーションをトラブルシューティングできるようにする。
コンシューマーがアプリケーションをインストールして管理する方法の詳細については、 コンシューマーとしてのアプリケーションの操作 をご参照ください。