テンプレート

テンプレートは指定されたコラボレーターが実行できる JinjaSQL クリーンルームテンプレートです。コラボレーターは、コラボレーションのコラボレーターとテンプレートを共有することができます。自身のアカウントに登録されているテンプレートのみを追加または削除するようリクエストできます。

続けて読んで、テンプレートを登録し、コラボレーションに追加する方法をご参照ください。

テンプレートの登録

テンプレートを登録するには、以下の手順に従ってください。

  1. コラボレーション用のテンプレートを設計しテンプレート仕様 に埋め込みます。

  2. REGISTER_TEMPLATE を呼び出してテンプレートを登録します。これは、テンプレートをリンクするために使用するテンプレート ID を返します。

テンプレートが登録されると、そのレジストリの読み取りアクセス権を持つユーザーであれば誰でもテンプレートをコラボレーションにリンクすることができます。

テンプレートの追加

テンプレートの追加をリクエストするプロセスは、コラボレーションがすでに存在するかどうかによって異なります。

  • コラボレーションが作成される前にテンプレートを追加するには 、テンプレート ID をコラボレーションの所有者に伝えます。それを所有者が コラボレーション仕様 に追加して、テンプレートを実行できる人を定義します。以下のコラボレーションスニペットでは、 alice にテンプレート bob_template_v1 を実行するためのアクセスが付与されています。

    ...
    analysis_runners:
      alice:
        templates:
        - id: bob_template_v1
    ...
    
  • 既存のコラボレーションにテンプレートを追加するには 、以下のステップに従って、すべての想定される共有者にリクエストを送信します。

    1. テンプレートの ID を指定して ADD_TEMPLATE_REQUEST を呼び出して、特定のコラボレーションにテンプレートを追加する承認フローを特定のユーザー向けに開始します。

      テンプレートの影響を受けるすべてのコラボレーターが、 VIEW_UPDATE_REQUESTS を呼び出したときにリクエストが表示されます。

    2. ステータスが PENDING_MY_APPROVAL のリクエストが表示されたコラボレーターは、APPROVE_UPDATE_REQUEST または REJECT_UPDATE_REQUEST を呼び出す必要があります。

      • コラボレーターがリクエストを拒否した場合、更新リクエストは拒否されます。

      • コラボレーターは、後で承認を拒否に変更したり、拒否を承認に変更したりすることはできません。

      • テンプレートは、リクエストされた すべて の当事者がリクエストを承認するまで共有されません。

      • コラボレーターは、後で承認を拒否に変更したり、拒否を承認に変更したりすることはできません。

      • 承認後、他のコラボレーターの承認がまだ必要な場合、ステータスはPENDING_PARTNER_APPROVALに変わります。

    3. 必要なすべてのコラボレーターが承認すると、ステータスはAPPROVEDに変更され、更新が自動的に適用されます。更新リクエストのターミナルステータスはCOMPLETEDとFAILEDです。リクエストのステータスが COMPLETED になると、テンプレート追加リクエストで指定されたユーザーがテンプレートを利用できるようになります。リクエストがFAILEDの場合は、失敗の詳細についてVIEW_UPDATE_REQUESTSのDETAILS列を参照してください。いずれかのコラボレーターがリクエストを拒否した場合、ステータスはREJECTEDになり、拒否した側が提供した理由はリクエストレポートに表示されます。

    4. テンプレートがすべてのユーザーに承認されてからテンプレートが利用可能になるまでに少し時間がかかる場合があります。VIEW_TEMPLATESを呼び出して、テンプレートが使用可能であることを確認します。

Tip

登録したテンプレートを確認するには、VIEW_REGISTERED_TEMPLATES を呼び出します。

分析の実行方法を学ぶには、 分析の実行 をご参照ください。

テンプレートデザイン

コラボレーションテンプレートは プロバイダーおよびコンシューマーのクリーンルームテンプレート と同一ですが、いくつかの特別な考慮事項があります。

  • テンプレートの source_table 変数は、コラボレーションのデータ提供によって入力されます。ほとんどのコラボレーションテンプレートでは、 source_table が使用される唯一のデータソース変数です。

  • テンプレートの my_table は、分析実行者がSnowflake Standard Editionを使用しており、コラボレーションにデータ提供を提供できない場合にのみ使用されます。

  • 元のデータソースの列は、テンプレートまたはユーザーに公開されると、名前が変更されることがあります。ソース列の名前がいつ、どのように変更されるかについて詳しくは、ソース列の名前変更 を参照してください。列の名前が変更された場合、テンプレートとユーザー指定の引数(参加列名など)では、元の名前ではなく変更後の名前を使用する必要があります。

  • コラボレーションのアクティベーションテンプレートは、名前が activation_<template_name> である必要はありません。その他すべて アクティベーションテンプレートの要件 は引き続き適用されます。

Snowflake Data Clean Roomsのカスタムテンプレート構文について詳しくは、 デザインカスタムテンプレート を参照してください。