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 のコンポーネント¶
次の図は、 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はアプリケーションを作成し、セットアップスクリプトを実行してアプリケーション内に必要なオブジェクトを作成します。詳細については アプリをローカルにインストールしてテストする をご参照ください。
アプリケーションのインストール後、コンシューマーは以下のような追加タスクを実行できます。
ログとイベント共有を有効 にして、プロバイダーがアプリケーションをトラブルシューティングできるようにする。
コンシューマーがアプリケーションをインストールして管理する方法の詳細については、 コンシューマーとしてのアプリケーションの操作 をご参照ください。
Snowflake Native Apps with Snowpark Container Servicesについて¶
Snowflake Native App with Snowpark Container Services (コンテナを使用したアプリ)は、Snowflakeでコンテナワークロードを実行する Snowflake Native App です。コンテナアプリは、Snowpark Container Servicesでサポートされているコンテナ化されたサービスを実行できます。
コンテナを使用したアプリは、プロバイダー IP の保護、セキュリティとガバナンス、データ共有、収益化、コンピューティングリソースとの統合など、 Snowflake Native App Framework のすべての機能を活用します。
他の Snowflake Native App と同様に、コンテナを使用したアプリは、アプリケーションパッケージとアプリケーションオブジェクトで構成されます。ただし、次の図に示すように、いくつかの違いがあります。

- アプリケーションパッケージ:
コンテナを管理するには、アプリケーションパッケージがステージ上のサービス仕様ファイルにアクセスできる必要があります。このファイル内には、アプリに必要なコンテナイメージへの参照があります。これらのイメージは、プロバイダーアカウントのイメージリポジトリに保存する必要があります。
- アプリケーションオブジェクト:
コンシューマーがコンテナを使用したアプリをインストールすると、作成されるアプリケーションオブジェクトには、アプリに必要なコンテナを格納するコンピューティングプールが含まれます。
- コンピューティングプール:
コンピューティングプールは、SnowflakeがSnowpark Container Servicesのジョブやサービスを実行する1つ以上の仮想マシン(VM)ノードの集まりです。コンシューマーがコンテナを使用したアプリをインストールする場合、 CREATE COMPUTE POOL 権限をアプリに付与するか、コンピューティングプールを手動で作成することができます。
コンテナを使用したアプリ内のプロバイダーの知的財産を保護する¶
コンテナを使用したアプリがコンシューマーアカウントにインストールされると、サービスのクエリ履歴がコンシューマーアカウントで利用できるようになります。プロバイダーの機密情報を保護するために、 Snowflake Native App Framework は次の情報を編集します。
クエリテキストは QUERY_HISTORY ビュー から隠されています。
ACCESS_HISTORY ビュー のすべての情報は隠されています。
サービスのクエリの クエリプロファイル グラフは、完全なクエリプロファイルツリーを表示する代わりに、1つの空のノードに折りたたまれます。
プロバイダーアカウントのユーザーに対する多要素の要件¶
ユーザのタイプに応じて、Snowflakeはプロバイダーアカウントのユーザーに異なるタイプの認証を要求します。
サービス利用者以外¶
Snowflake では、プロバイダーアカウントのユーザーが TYPE プロパティを SERVICE に設定していない場合、 多要素認証 (MFA) に登録することを推奨しています。将来のアップデートでは、これらのタイプのユーザーには多要素認証が必須となります。 連携認証 およびシングルサインオン(SSO)を使用する非サービスユーザーは、認証プロセスの一環として MFA を有効にする必要があります。
サービスユーザー¶
TYPE パラメーターが SERVICE に設定されているユーザーは、 キーペア認証 または OAuth を使用する必要があります。