【レポート】最新情報:Snowflakeネイティブアプリフレームワーク #SnowflakeDB

2023.09.11

2023年9月8日(金)に ANAインターコンチネンタル東京にて、Snowflake 社による日本最大級のデータイベント「Snowflake Data Cloud World Tour Tokyo」が開催されました。

本記事では、Snowflake株式会社 庄司氏による「最新情報:Snowflakeネイティブアプリフレームワーク」というセッションについてレポートします。

セッション情報

  • セッションタイトル
    • 最新情報:Snowflakeネイティブアプリフレームワーク
  • スピーカー
    • Snowflake株式会社 セールスエンジニアリング本部 庄司 拓矢 氏
  • セッション概要

Snowflake ネイティブアプリフレームワークを使用することで、データクラウド上でお客様のアプリケーションを、お客様のデータに、ネイティブに提供することができます。このセッションでは、Snowflake ネイティブアプリの構築・配布/収益化・デプロイする方法と仕組みについて、デモを交えながらご紹介します。

DATA CLOUD WORLD TOUR Tokyo – アジェンダより引用

セッション内容

フレームワークの概要

  • Snowflake ネイティブアプリフレームワーク
    • Snowflake 上でデータアプリケーションを構築し、マーケットプレイスでの配布・収益化まで実施可能なフレームワーク
    • 構築時は、ストアドプロシージャ・Streamlit などの Snowflake の機能を使用可能
    • マーケットプレイスでの配布・収益化は現在パブリックプレビュー(近日中に開始)
  • 従来のアプリ展開モデルとの違い
    • マネージド、コネクテッドのいずれであっても UI、処理レイヤーをプロバイダー側で用意する必要があった
    • Snowflake ネイティブとなることで
      • 処理はコンシューマー側のウェアハウスで実施できる
      • Streamlit の機能で UI も作成できるように
  • Snowflake ネイティブアプリの例

構築、使用の流れ

  • プロバイダー側
    • 構築
      • Snowflake(Snowsight)、VScodeなどの開発ツールを使用可能
      • Streamlit、Snowpark、データシェアリングなど Snowflake の機能を活用できる
    • 配布と収益化
      • プライベート、パブリックな展開が可能
      • セキュリティ上の脅威や悪用については、Snowflake 側でアプリケーションに対する事前審査・承認を行うことで担保
      • 課金モデルはトライアルの可否も含めプロバイダー側で設定可能
    • 運用
      • バージョン管理機能もサポート
  • コンシューマー側
    • 発見と評価
      • Snowflake マーケットプレイスでアプリケーションを検索できる
    • 購入とインストール
      • プロバイダー側で提供していれば無料トライアルも可能
    • 実行
      • 管理者はアプリに付与された権限の確認、管理が可能
      • データは Snowflake アカウント内に保持される

詳細な仕組み

  • アプリケーションコードはファイルベースで管理
  • コードファイルを含むアプリケーションパッケージを作成する
    • アプリケーションパッケージ
      • アプリケーションに必要なリソースを含むコンテナとして機能
      • アプリケーションファイルや共有データのコンテンツを含む
      • アプリケーションに必要なファイルは、パッケージ内にステージを作成し格納する
      • バージョン管理もアプリケーションパッケージ単位
  • ソースコードやアプリケーションロジックがコンシューマー側にわたることはない
    • 機能範囲のみ提供できる
  • コンシューマー側のデータ利用
    • コンシューマー側のデータへアクセスする際は、コンシューマー側でアクセス制御を行える

詳細な説明

  • サポートされる Snowflake 機能
    • 今後も拡張予定
  • アプリケーションの構築に必要なもの
    • マニフェストファイル
      • アプリケーションの構成情報を含む YAML ファイル
    • セットアップスクリプト
      • コンシューマー側でアプリケーションをインストール際に実行される SQL
  • アプリケーションパッケージの内訳
    • バージョン、リリース管理に用いる
    • Release Directive を更新することでコンシューマー側にシームレスなアプリケーションの追加機能提供が可能
  • コンシューマー側
  • 単一のアカウントもサポート
    • 社内のみの利用など

デモ

  • 内容
    • 簡単な例で Native Apps Frameworkを使用したアプリケーションの開発の流れを紹介
  • 手順
    • アプリケーションコードの配置
      • コード管理用のデータベース、スキーマ、ステージを作成
      • ステージにアプリケーションファイルを配置
        • マニフェストファイル
        • セットアップスクリプト
        • Readmeファイル など
    • アプリケーションパッケージの作成
      • デモでは、パッケージ内に共有データ用テーブルも作成
    • アプリケーションのデバッグ
      • デバッグモードをTrueと指定することで、オブジェクトの確認をしながら改修を進めることができる
    • アプリケーションのリリース
      • ALTER APPLICATION PACKAGE でバージョンを指定しながらリリース

さいごに

Snowflake Native Apps Framework について、その基本から各構成の詳細、デモを通したアプリケーションの開発の流れまでも解説いただいた内容でした。

Snowflake のインフラ上にあることで、アプリケーションからデータへのアクセスは Snowflake にもとよりある強力なガバナンス機能で制御され、アプリケーションそのものについても、配布前に Snowflake による審査が行われることで、セキュリティ面は担保されるとのことです。

アプリケーションの UI も Streamlit を加えることで構築できるようになるので、データアプリケーション開発が、よりシンプルかつ迅速に行えると感じました。

Native Apps Framework を使用したアプリケーション開発については、公式ドキュメントにチュートリアルも用意されているので、こちらに取り組むことでよりイメージもつかめるかなと思いました。