Snowflake Data Clean Rooms:開発者APIs概要

Snowflake Data Clean Roomは、クリーンルームを使用したアプリケーション開発を可能にするクラス初の開発者向けAPIsを提供します。これらの強力なAPIsを活用して、クリーンルームのライフサイクルを管理し、さまざまな安全な分析を作成して実行し、それらを共有することができます。

クリーンルームは、その中のデータを保護する暗号化されたセキュアな環境です。クリーンルームでは、クリーンルームの作成者によって有効化された特定の分析およびアルゴリズムのみが実行されます。さらに、集約された結果のみを外部に公開する差分プライバシー技術によって、保護レイヤーが追加されます。クリーンルームでは、クリーンルーム作成者が提供するアルゴリズム以外のユーザーやプロセスがデータを読み書きできなくなります。

コラボレーター

クリーンルームのライフサイクルには、通常2つの関係者が関与しています。

  • プロバイダー はクリーンルームを作成し、必要なデータを追加し、ポリシーを設定し、関連する分析を追加し、それをコンシューマーと共有します。

  • コンシューマー はプロバイダーから共有されたクリーンルームを受け取ります。コンシューマーはクリーンルームをインストールし、データを追加し、クリーンルーム内に含まれる分析テンプレートに適切な引数を渡してサポートされている任意の分析を実行することができます。

分析

分析はクリーンルーム内で実行されるアルゴリズムです。プロバイダーがいくつかの分析を選択し、特定のクリーンルームで実行できるようにしてから、次にコンシューマーがそれらの分析の1つ以上を選択して実行できます。

前提条件

Snowflake Data Clean Roomの開発者APIsを使用する前に、管理者がクリーンルーム環境を設定し、あなたをユーザーとして追加する必要があります。詳細は、[Snowflake Data Clean Room入門](getting-started.rst)をご参照ください。

開発者APIsを実行するには、SAMOOHA_APP_ROLEロールを使用する必要があります。APIを実行する前に、Snowflakeワークシートに以下を追加してください:

USE ROLE samooha_app_role;
Copy

データのリンク

プロバイダーとコンシューマーはデータをクリーンルームにリンクさせることができるため、クリーンルーム環境に物理的コピーを置く必要がありません。Snowflake Data Clean Roomは Snowflake Native App Frameworkに依存しているため、Snowflake Native App Frameworkでサポートされている任意のオブジェクトをリンクできます。

クリーンルームユーザーがデータをクリーンルームにリンクする前に、アカウント管理者は、データベース、スキーマ、またはオブジェクトレベルでデータを登録する必要があります。管理者がデータベースまたはスキーマを登録すると、そのデータベースまたはスキーマ内のすべてのオブジェクトも登録されます。管理者がデータを登録する方法については、Snowflake Data Clean Roomsへのデータ登録をご参照ください。

アカウント管理者がデータを登録した後、クリーンルームユーザーは link_datasets コマンドを実行することで、オブジェクトをクリーンルームにリンクすることができます。例えば、プロバイダーは以下のコマンドを実行して、テーブル MY_TABLE をクリーンルーム dcr_cleanroomにリンクすることができます。

CALL samooha_by_snowflake_local_db.provider.link_datasets('dcr_cleanroom', 
   ['MY_DB.MY_SCHEMA.MY_TABLE']);
Copy

注釈

外部テーブルとIcebergテーブルは、クリーンルーム内で連結する前に、さらなる手順が必要となります。詳細はSnowflake Data Clean Rooms: 外部およびIcebergテーブルをご参照ください。

分析から以前の結果を取得する

開発者 APIs を使用して分析を実行すると、Snowflake Data Clean Roomsはお客様のアカウントでクエリを実行します。分析に関連付けられているクエリのクエリ ID を使用して、古い分析から結果を取得できます。

注釈

API 分析を実行してから、このクエリを使用して結果を取得するまでの間に、ウェアハウスが中断された場合、結果を取得できない可能性があります。

過去の分析結果を取得するには:

  1. Snowsightにサインインします 。

  2. モニタリング >> クエリ履歴 を選択します。

  3. フィルターを使用して、分析に関連するクエリを見つけ、クエリ ID をコピーします。

  4. ワークシートを開き、クエリのクエリ ID に基づいて結果を取得するクエリを実行します。例えば、クエリ ID が ABC123 の場合、以下を実行します。

       SELECT * FROM TABLE(result_scan(ABC123));
    
    Copy

API参照ドキュメント

開発者の説明と署名 APIs を入手するには、以下をご参照ください。

  • プロバイダーの場合は、[プロバイダー API リファレンスガイド](./provider.md)をご参照ください。

  • コンシューマーの場合は、[コンシューマー API リファレンスガイド](./consumer.md)をご参照ください。

拡張例

開発者 APIs の様々な機能の使い方を理解するために、以下の例を参考にしてください。

エンドツーエンド:プロバイダーデータ分析

  • プロバイダーは、クリーンルームにリンクしたデータセットに対して結合やその他の列ポリシーを定義し、定義済みの安全なデータ分析テンプレートをクリーンルームに追加することができます。

  • コンシューマーはプロバイダーが共有するクリーンルームを利用し、その中で探索的分析を実行することができます。コンシューマーは、プロバイダーが設定した結合および列のポリシーを遵守する必要があります。

詳細については、[エンドツーエンド: プロバイダーデータ分析](demo-flows/basic-flow-data-analysis)をご参照ください。

エンドツーエンド:オーバーラップ分析

  • プロバイダーは、複数のデータセットをリンクし、クリーンルームにデータセットのオーバーラップ分析を実行する事前定義された分析テンプレートを追加することができます。

  • コンシューマは、より多くのデータセットをリンクし、クリーンルーム内で利用可能なプロバイダーとコンシューマのデータセットすべてに対してオーバーラップ分析を共同で実行することができます。

詳細については、[エンドツーエンド: オーバーラップ分析](demo-flows/basic-flow-overlap)をご参照ください。

カスタム分析テンプレート

  • プロバイダーはカスタム分析テンプレートを定義してクリーンルームに追加することができ、これによりコンシューマーはカスタム分析を実行できます。

  • これらのカスタム分析テンプレートは、強力なSQL Jinjaテンプレートを活用して汎用化することができ、差分プライバシーのようなプライバシー拡張技術もサポートできます。

詳細については、[カスタム分析テンプレート](demo-flows/custom-templates)をご参照ください。

Pythonベースのセキュアなテンプレート

  • プロバイダーは、カスタム分析テンプレート内で実行するカスタムPythonコードをロードできます。

  • クリーンルームにロードされたすべてのPythonコードは完全に機密であり、それを使用するコンシューマーが見ることはできません。

詳細については、[セキュアPythonベースのテンプレート](demo-flows/python-based-templates)をご参照ください。

機械学習

  • プロバイダーは、ユーザーがクリーンルーム内で安全に実行できる高度な機械学習モデルを定義できます。

  • コンシューマーには見えないセキュアなPythonコードは、クリーンルーム内の完全にセキュアな環境で実行できる複雑なMLモデルの定義に使用できます。

詳細については、[機械学習](demo-flows/machine-learning)をご参照ください。

PythonUDTFベースのセキュアなテンプレート

  • プロバイダーは、シンプルなAPIを使って安全な Python UDTFsを作成し、コンシューマーと共有することができます。

  • コンシューマーはプロバイダーが提供するシンプルなテンプレートを使って、Python UDTFを使用できます。

詳細については、[Python UDTF ベースのセキュアなテンプレート](demo-flows/python-udtf)をご参照ください。

開発者APIクリーンルームをウェブアプリに登録する

  • プロバイダーは、カスタム分析やテンプレートを読み込み中のクリーンルームをSnowflakeデータクリーンルームのウェブアプリに登録することができます。それにより、コラボレーターがユーザーインターフェイスでそのクリーンルームを操作できます。

  • コラボレーターは、複雑なカスタムクリーンルームをウェブアプリで操作することができます。

詳細については、[開発者向け API クリーンルームのウェブアプリへの登録](demo-flows/register-cleanroom-in-ui)をご参照ください。

セキュアSnowparkプロシージャ

  • プロバイダーは独自のSnowparkプロシージャを定義し、コンシューマーとセキュアに共有することができます。

  • コンシューマは、通常のrun_analysisワークフローを使用して、これらのSnowparkプロシージャを呼び出すことができます。

詳細については、[セキュアSnowparkプロシージャ](demo-flows/snowpark)をご参照ください。