Powered by Snowflake:コネクテッドアプリケーションの機能
現在、台頭するコネクテッドアプリケーションモデルが、多くのソフトウェア企業や開発者の関心を集めています。本ブログシリーズの第1部で説明したように、コネクテッドアプリケーションは、コードとデータを分離したSaaSアプリであり、アプリケーションプロバイダーがアプリケーションを管理し、顧客は自身のデータプラットフォームにあるデータを管理する仕組みです。Snowflakeにおけるコネクテッドアプリケーションの構築は、顧客とSaaSプロバイダーの双方に多くのメリットをもたらします。顧客は自身のデータの管理権限を維持でき、SaaSプロバイダーはSnowflakeの市場投入戦略に足並みをそろえやすくなります。
Snowflakeコネクテッドアプリケーションがどのように機能し、どのように構築されているかを詳しく見てみましょう。
Snowflakeコネクテッドアプリケーションの機能
コネクテッドアプリケーションの機能を説明するために、次の広告キャンペーンにおいて、ターゲットとすべき顧客セグメントをさまざまなデータソースに基づいて推奨するマーケティングアプリケーションのようなSaaSソリューションの開発者を例に挙げてみます。図1で示されたように、アプリケーションは顧客の関連性のあるソースからデータを収集し、必要に応じて処理し、顧客自身のSnowflakeインスタンス内でデータを維持します。アプリケーションは予測モデルをデータに適用し、結果を顧客のSnowflakeインスタンス内の別のテーブルに書き込みます。
図1:コネクテッドアプリケーションの一般的なデータの流れ
コネクテッドアプリケーションにおけるデータの流れはユースケースによって異なります。例えば、顧客のSnowflakeインスタンスが既に、アプリケーションが必要とするすべてのデータを保有しており、追加のローディングが不要な場合もあります。
図2は、顧客が複数の場合のデータの流れを示しています。各顧客は自身のデータをそれぞれのSnowflakeインスタンス内に保持しており、マルチテナントは不要となっています。
図2:顧客が複数の場合のコネクテッドアプリケーションの一般的なデータの流れ
一方、図3で示すように、マネージドアプリケーションとして構築された同じアプリケーションは、顧客の全データを自身のマルチテナントSnowflakeインスタンス内に保存します。今回のケースでは、プロバイダーがデータの管理権限を保有しており、クレジット消費はプロバイダーのSnowflakeアカウントに課されています。
図3:マネージドアプリケーションの一般的なデータの流れ
マネージドアプリケーションがSnowflake上に構築されると、顧客はSnowflakeのセキュアデータシェアリング機能(図3には表示されていない)を使用してデータにアクセスできます。そのため顧客は、本ブログシリーズの第1部で言及したようなAPIパイプラインを構築する必要なく、即時にデータにアクセスすることができます。
コネクテッドおよびマネージドアプリケーションモデルの双方をサポートするアプリの構築
コネクテッドかマネージドかというアプリケーションモデルの選択は互いに排他的なものではありません。ある顧客向けにはマネージドアプリケーションを構築し、別の顧客にはコネクテッドアプリケーションを構築することができます。この場合、アプリケーションのプロバイダーが、可能であれば顧客のSnowflakeインスタンスに接続し、無理であれば自身のSnowflakeに接続します(図4参照)。
図4:コネクテッドおよびマネージドアプリケーションモデルの双方をサポートするアプリケーション
顧客のオンボード
顧客がコネクテッドアプリケーションにオンボードする際は、顧客がこの目的専用のユーザーをSnowflakeアカウントに作成し、新規ユーザーの認証情報をアプリケーションに読み込みます。データベース内のアプリケーションアクセスを制限するために役割を使用し、顧客は統一された信頼できる情報源内で自身のデータの管理権限を保持できます。
コネクテッドアプリケーションのデータの読み込み
アプリケーションのニーズにより、データはKafkaのようなストリーミングサービスを使用してストリーミングされる場合や、クラウドオブジェクトストレージ内のバケットにステージングされる場合があります。その後、Snowflakeのサーバーレスで継続的なデータインジェスションサービスであるSnowpipeを使用し、顧客のSnowflakeアカウントにデータを読み込みます(図5参照)。
コネクテッドアプリケーションのデータのクエリ
顧客のSnowflakeインスタンスのクエリは、非常に明快です。Snowflakeは完全にANSI SQLに準拠しているため、SQLデータベースを使用していればどのようなアプリケーションでも簡単に双方向のクエリサポートを実装できます。さらに、幅広いプログラム言語や対応するコネクタを使用してSnowflakeをクエリすることも可能です。Snowflakeコネクタおよびドライバには、Node.js、Go、.NET、JDBC、ODBC、PHP、Python、Sparkが含まれます。ドライバのデプロイや管理なしに、当社のSQL REST APIを使用してSnowflakeをクエリすることも難しくありません。接続に関するオプションについては、コネクタやANSIに関するドキュメンテーションをご参照ください。
コネクテッドアプリケーションとSnowflakeの統合の実装はシンプルです。Powered by Snowflakeパートナーの経験によると、製品やチーム次第ですが、一般的なプロジェクト所要期間は6~8週間です。
Powered by Snowflakeパートナーとなるには
Powered by Snowflakeプログラムは、メンバーにSnowflake上で運用可能なアプリケーションの設計や実装の方法をご紹介しています。また本プログラムは、データクラウドユーザー間における認知度向上のための共同ソリューション開始後もパートナーをサポートします。Powered by Snowflakeプログラムページで詳細を確認し、ぜひSnowflake Partner Networkにご登録ください。