クエリ結果のアクティベーション¶
アクティベーションの概要¶
コラボレーターは、 アクティベーション と呼ばれるプロセスで、クリーンルームの外でテンプレート結果を送信することができます。テンプレートはアクティベーションをサポートする必要があり、各データプロバイダーはデータ提供仕様の列レベルでアクティベーションを承認する必要があります。
アクティベーションは、専用のアクティベーションテンプレートを使用して実装されます。アクティベーションテンプレートはクエリ実行者に結果を返すのではなく、ターゲットユーザーのアカウントの結果テーブルに結果を書き込みます。
注釈
結果を別のSnowflakeアカウントにアクティブ化するには、Snowflake Enterprise Editionまたはそれ以上が必要です。
アクティベーションの実装¶
アクティベーションを実装するステップは以下の通りです。
分析実行者として参加するコラボレーションに参加するには、 REGISTERDATAOFFERING権限 を持つロールを使用し、コラボレーション仕様に
activation_destinationsフィールドが含まれている必要があります。すべての仕様が適切に設定されていることを確認します。
アクティブ化列を持つテーブルの データ提供仕様 で、その列を
activation_allowed: TRUEに設定する必要があります。コラボレーション仕様 で、分析実行者の
activation_destinations値を提供する必要があります。データ提供仕様では、アクティブ化が指定の分析実行者とテンプレートに制限されています。分析仕様 には
snowflake_collaboratorおよびsegment_name値を含むactivationセクションを含め、 アクティベーションテンプレート を呼び出す必要があります。標準の分析テンプレートを実行しても、結果をアクティブ化することはできません。アクティベーションテンプレート を使用する必要があります。このテンプレートは、結果を内部テーブルに保存します。このテンプレートからのすべての投影列はアクティブ化されます。
activation_policyフィルターが適用されたテンプレート内のすべての列は、データ提供仕様内でactivation_allowed: TRUEに設定されている必要があります。注釈
テンプレートが列に
activation_policyフィルターを適用しない場合、データ提供仕様でその列に対してactivation_allowed: TRUEが設定されているかどうかに関わらず、その列をアクティブ化できます。以下の例は、分析実行者が提供した2つの列にアクティベーションポリシーが適用されたテンプレートを示しています。
分析実行者は RUN を呼び出して分析を実行し、結果をアクティブ化します。
ご自身でアクティブ化する場合、結果は呼び出し元のアカウントですぐに利用可能になります。
他のコラボレーターでアクティブ化する場合:
コラボレーターは SHARED のステータスが返されるまで VIEW_ACTIVATIONS を呼び出します。
別のアカウントへのアクティブ化は、大きな結果セットの場合はかなりの時間がかかることがあります。これは、データをコラボレーターのアカウントと共有する必要があるためです。クロスクラウドのコラボレーターも、複製の頻度設定のため追加の遅延が発生します。
アクティベーションのステータスが SHARED になったら、コラボレーターは PROCESS_ACTIVATION を呼び出して結果をアカウントに送信します。
PROCESS_ACTIVATION への応答には、テーブル名とセグメント名が含まれます。これにより、アクティベーションステータスが PROCESSED に設定されます。
分析実行者は、次のセクションで説明するように結果を読み取ることができます。
アクティベーション結果の読み取り¶
前のセクションで説明したように、アクティベーションが完了すると、結果はアカウント内の collaboration_name.activation.segment_records テーブルに保存されます。
テーブルは以下のスキーマを使用します。
列 |
説明 |
|---|---|
BATCH_ID |
処理されたバッチジョブの UID。 |
SEGMENT_NAME |
アクティベーションペイロードの名前。 |
TEMPLATE_ID |
アクティベーションに使用されたテンプレートの ID。 |
SHARED_BY |
データをアクティブ化したコラボレーターの名前。 |
UPDATED_ON |
バッチが正常に処理されたときのタイムスタンプ。 |
RECORDS |
アクティベーションプレートテンプレートから取得した、アクティベート化された IDs と属性のペイロード。 |
注釈
コラボレーターがクリーンルームを離れると、アクティブ化された結果を含むテーブルを含め、アプリケーションへのアクセスが失われます。
アクティブ化結果を取得するには、次の SQL コマンド、オプションでセグメント名でのフィルタリングを実行します。