テンプレート¶
テンプレートは指定されたコラボレーターが実行できる JinjaSQL クリーンルームテンプレートです。コラボレーターは、コラボレーションのコラボレーターとテンプレートを共有することができます。自身のアカウントに登録されているテンプレートのみを追加または削除するようリクエストできます。
続けて読んで、テンプレートを登録し、コラボレーションに追加する方法をご参照ください。
テンプレートの登録¶
テンプレートを登録するには、以下の手順に従ってください。
コラボレーション用のテンプレートを設計し、テンプレート仕様 に埋め込みます。
REGISTER_TEMPLATE を呼び出してテンプレートを登録します。これは、テンプレートをリンクするために使用するテンプレート ID を返します。
テンプレートが登録されると、そのレジストリの読み取りアクセス権を持つユーザーであれば誰でもテンプレートをコラボレーションにリンクすることができます。
テンプレートの追加¶
テンプレートの追加をリクエストするプロセスは、コラボレーションがすでに存在するかどうかによって異なります。
コラボレーションが作成される前にテンプレートを追加するには 、テンプレート ID をコラボレーションの所有者に伝えます。それを所有者が コラボレーション仕様 に追加して、テンプレートを実行できる人を定義します。以下のコラボレーションスニペットでは、
aliceにテンプレートbob_template_v1を実行するためのアクセスが付与されています。
既存のコラボレーションにテンプレートを追加するには 、以下のステップに従って、すべての想定される共有者にリクエストを送信します。
テンプレートの ID を指定して ADD_TEMPLATE_REQUEST を呼び出して、特定のコラボレーションにテンプレートを追加する承認フローを特定のユーザー向けに開始します。
テンプレートの影響を受けるすべてのコラボレーターが、 VIEW_UPDATE_REQUESTS を呼び出したときにリクエストが表示されます。
ステータスが PENDING_MY_APPROVAL のリクエストが表示されたコラボレーターは、APPROVE_UPDATE_REQUEST または REJECT_UPDATE_REQUEST を呼び出す必要があります。
コラボレーターがリクエストを拒否した場合、更新リクエストは拒否されます。
コラボレーターは、後で承認を拒否に変更したり、拒否を承認に変更したりすることはできません。
テンプレートは、リクエストされた すべて の当事者がリクエストを承認するまで共有されません。
コラボレーターは、後で承認を拒否に変更したり、拒否を承認に変更したりすることはできません。
承認後、他のコラボレーターの承認がまだ必要な場合、ステータスはPENDING_PARTNER_APPROVALに変わります。
必要なすべてのコラボレーターが承認すると、ステータスはAPPROVEDに変更され、更新が自動的に適用されます。更新リクエストのターミナルステータスはCOMPLETEDとFAILEDです。リクエストのステータスが COMPLETED になると、テンプレート追加リクエストで指定されたユーザーがテンプレートを利用できるようになります。リクエストがFAILEDの場合は、失敗の詳細についてVIEW_UPDATE_REQUESTSのDETAILS列を参照してください。いずれかのコラボレーターがリクエストを拒否した場合、ステータスはREJECTEDになり、拒否した側が提供した理由はリクエストレポートに表示されます。
テンプレートがすべてのユーザーに承認されてからテンプレートが利用可能になるまでに少し時間がかかる場合があります。VIEW_TEMPLATESを呼び出して、テンプレートが使用可能であることを確認します。
Tip
登録したテンプレートを確認するには、VIEW_REGISTERED_TEMPLATES を呼び出します。
分析の実行方法を学ぶには、 分析の実行 をご参照ください。
テンプレートデザイン¶
コラボレーションテンプレートは プロバイダーおよびコンシューマーのクリーンルームテンプレート と同一ですが、いくつかの特別な考慮事項があります。
テンプレートの
source_table変数は、コラボレーションのデータ提供によって入力されます。ほとんどのコラボレーションテンプレートでは、source_tableが使用される唯一のデータソース変数です。テンプレートの
my_tableは、分析実行者がSnowflake Standard Editionを使用しており、コラボレーションにデータ提供を提供できない場合にのみ使用されます。元のデータソースの列は、テンプレートまたはユーザーに公開されると、名前が変更されることがあります。ソース列の名前がいつ、どのように変更されるかについて詳しくは、ソース列の名前変更 を参照してください。列の名前が変更された場合、テンプレートとユーザー指定の引数(参加列名など)では、元の名前ではなく変更後の名前を使用する必要があります。
コラボレーションのアクティベーションテンプレートは、名前が
activation_<template_name>である必要はありません。その他すべて アクティベーションテンプレートの要件 は引き続き適用されます。
Snowflake Data Clean Roomsのカスタムテンプレート構文について詳しくは、 デザインカスタムテンプレート を参照してください。