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の概要を示しています。

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

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

  • プロバイダー

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

  • コンシューマー

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

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

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

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

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

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

  • マニフェストファイル

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

  • セットアップスクリプト

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

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

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

  • Snowflake Marketplace リスト

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

  • プライベートリスト

    プライベートリストを使用すると、プロバイダーはリストの機能を利用して、データやその他の情報を任意のSnowflakeリージョンにある別のSnowflakeアカウントと直接共有できます。

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

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

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

  • アプリケーション

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

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

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