Snowflake Data Clean Rooms Collaboration API

소개

Snowflake Data Clean Rooms Collaboration API에 대한 참조 페이지입니다. 이 API는 COLLABORATION 및 REGISTRY 스키마를 사용합니다.

참고

Collaboration API를 사용할 때는 사용자 환경에서 보조 역할을 비활성화해야 합니다.

USE SECONDARY ROLES NONE;

개발 환경을 설정하는 방법을 알아보려면 환경 설정하기 섹션을 참조하세요.

Collaboration API 프로시저에 대한 액세스를 관리하는 방법을 알아보려면 DCR 권한을 사용하여 계정, 오브젝트 및 프로시저 권한 관리 섹션을 참조하세요.

메타데이터 치트 시트

협업에 대해 일반적으로 정보를 찾는 방법은 다음과 같습니다.

알아볼 사항

호출할 명령

나는 어떤 협업에 조인할 수 있나요?

VIEW_COLLABORATIONS - collaboration_name 열이 NULL인 공동 작업을 찾습니다.

내가 어떤 협업에 조인했나요?

VIEW_COLLABORATIONS - collaboration_name 열이 NULL이 아닌 공동 작업을 찾습니다. 즉, 공동 작업을 생성했거나 조인했음을 의미합니다.

내가 소유한 협업은 무엇인가요?

VIEW_COLLABORATIONS - owner_account 열에서 찾습니다.

협업에서 모든 공동 작업자의 상태는 무엇인가요?

GET_STATUS

협업에서 내 조인 또는 생성 상태는 무엇인가요?

GET_STATUS 또는 VIEW_COLLABORATIONS

주어진 협업의 소유자는 누구인가요?

GET_STATUS - roles 열에서 OWNER를 찾습니다.

주어진 공동 작업에서 내 공동 작업 역할은 무엇인가요?

GET_STATUS - roles 열에서 찾습니다.

주어진 공동 작업에서 어떤 공동 작업 역할이 할당되나요?

GET_STATUS - roles 열에서 찾습니다.

주어진 협업의 사양은 무엇인가요?

VIEW_COLLABORATIONS - collaboration_spec 열에서 찾습니다.

사양이 최신 상태인가요?

주어진 사양에 진행 중인 변경 사항이 있는지 여부를 알 수 있는 방법은 없지만, VIEW_COLLABORATIONS를 호출하여 최신 업데이트가 적용된 시점을 확인할 수 있습니다.

어떤 보류 중인 업데이트 요청이 있나요?

VIEW_UPDATE_REQUESTS. STATUS = PENDING_MY_APPROVAL인 행을 찾습니다.

주어진 협업에 대한 사양 표시

REVIEW은 협업 사양을 반환합니다. 이미 REVIEW을 호출했거나 협업에 조인한 경우 다음에 표시된 대로 협업 이름을 사용하여 다음 SQL 명령을 호출합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.
  VIEW_COLLABORATIONS() ->>
    SELECT "COLLABORATION_SPEC" FROM $1
      WHERE "SOURCE_NAME" = <collaboration name>;

템플릿 프로시저

REGISTER_TEMPLATE

스키마:

REGISTRY

협업에서 사용할 수 있도록 템플릿을 등록합니다. 등록된 모든 템플릿에는 계정의 모든 레지스트리에 있는 모든 템플릿에 대해 고유한 이름-버전 조합이 있어야 합니다.

구문

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )

인자

:samp:`{registry_name}`*(선택 사항)*

이 템플릿을 등록할 :doc:`사용자 지정 레지스트리 </user-guide/cleanrooms/registries>`의 이름입니다. 지정하지 않는 경우 기본 계정 레지스트리에 템플릿을 등록합니다.

template_spec

YAML 형식(문자열)의 :ref:`템플릿 정의 <label-dcr_collaboration_template_yaml>`입니다.

반환

협업 사양에서 사용할 템플릿 ID입니다.

기본 레지스트리에 템플릿을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

사용자 지정 레지스트리에 템플릿을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에 오브젝트를 등록하려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

사용자 지정 레지스트리에 항목을 등록하려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘REGISTER’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


VIEW_REGISTERED_TEMPLATES

스키마:

REGISTRY

등록한 모든 템플릿을 나열합니다. 템플릿을 등록하려면 REGISTRY.REGISTER_TEMPLATE을 호출합니다.

구문

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )

인자

:samp:`{registry_name}`*(선택 사항)*

템플릿을 가져올 사용자 지정 레지스트리 의 이름입니다. 지정하지 않으면 기본 계정 레지스트리의 템플릿을 나열합니다.

반환

이 계정에 등록한 모든 템플릿의 세부 정보를 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • TEMPLATE_ID: 템플릿의 ID입니다.

  • NAME: 템플릿 이름입니다.

  • VERSION: 템플릿 버전입니다.

  • TEMPLATE_SPEC: 템플릿의 전체 YAML 사양입니다.

  • REGISTRY: 템플릿이 등록된 레지스트리입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에서 항목을 보려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

사용자 지정 레지스트리에서 항목을 보려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘READ’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


ADD_TEMPLATE_REQUEST

스키마:

COLLABORATION

기존 공동 작업에 템플릿을 연결하라는 요청을 보냅니다. 발신자가 요청의 영향을 받는 경우 발신자는 자동으로 요청을 승인합니다. 영향을 받는 다른 모든 공동 작업자는 요청을 승인해야 변경 사항을 적용할 수 있습니다. 모든 공동 작업자는 기존 공동 작업에 템플릿을 연결하려면 이 프로시저를 호출해야 하며, 공동 작업 소유자도 마찬가지입니다.

템플릿 공유자를 더 추가하려면 별칭을 사용하여 이 프로시저를 다시 호출할 수 있습니다. 각 호출은 share_with 에 나열된 사용자를 기존 공유자 목록에 추가합니다.

요청 상태를 확인하려면 VIEW_UPDATE_REQUESTS를 호출합니다.

템플릿 연결 흐름을 참조하세요.

구문

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )

인자

collaboration_name

템플릿을 연결할 공동 작업의 이름입니다.

template_id

공동 작업에 연결할 템플릿의 ID입니다. 이 값을 가져오려면 템플릿을 등록합니다.

share_with

이 템플릿을 공유할 분석 실행자의 별칭 배열입니다. 여기에 나열된 공동 작업자는 이 템플릿과 연결된 다른 공동 작업자 이외에 추가됩니다. 여기에 나열된 모든 공동 작업자는 분석 실행자여야 하며, 그렇지 않은 경우 이 템플릿을 누구와도 공유하지 않으면 프로시저가 실패합니다.

반환

문자열 성공 메시지.

-- Ask to link the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 다음 권한 중 하나:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name') 및 역할에 수동으로 부여해야 하는 모든 추가 계정 수준 권한.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name') 및 역할에 수동으로 부여해야 하는 모든 추가 계정 수준 권한.

  • 템플릿이 사용자 지정 레지스트리에 있는 경우 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( ‘READ’, ‘{registry name}’, ‘{role name}’)`도 있어야 합니다.


REMOVE_TEMPLATE

스키마:

COLLABORATION

지정된 공동 작업자에 대해 주어진 협업에서 템플릿을 제거하기 위한 비동기 요청입니다. 템플릿을 등록한 공동 작업자만 템플릿을 제거할 수 있습니다. 등록한 템플릿을 제거하기 위해 다른 사용자의 승인이 필요하지 않습니다. 공동 작업자에 대한 템플릿이 제거되면 해당 공동 작업자는 템플릿을 확인하거나 사용할 수 없습니다.

구문

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )

인자

collaboration_name

템플릿을 제거할 협업의 이름입니다.

template_id

협업에서 제거할 템플릿의 ID입니다.

remove_for

이 협업에서 더 이상 이 템플릿을 확인하거나 사용할 수 없어야 하는 분석 실행자의 하나 이상의 별칭 배열입니다.

반환

문자열 성공 메시지. 공동 작업자에 대한 템플릿이 제거되었는지 확인하려면 협업 사양을 확인합니다.

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 다음 권한 중 하나:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name') 및 역할에 수동으로 부여해야 하는 모든 추가 계정 수준 권한.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name') 및 역할에 수동으로 부여해야 하는 모든 추가 계정 수준 권한.

  • 템플릿이 사용자 지정 레지스트리에 있거나 사용자 지정 레지스트리의 코드 사양을 참조하는 경우 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( ‘READ’, ‘{registry name}’, ‘{role name}’)`도 있어야 합니다.


VIEW_TEMPLATES

스키마:

COLLABORATION

지정된 협업에 대해 실행할 수 있거나 제출한 모든 템플릿을 표시합니다.

구문

VIEW_TEMPLATES( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다. 템플릿을 나열하려면 먼저 이 협업을 검토하거나 조인해야 합니다.

반환

등록한 템플릿을 포함하여 이 협업에서 실행할 수 있는 템플릿에 대한 정보를 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • template_id: 템플릿 ID입니다. 이 값을 template 필드 또는 RUN 명령의 template_id 매개 변수에 전달합니다.

  • template_spec: 이 템플릿의 템플릿 사양 으로, 이 템플릿에 대한 전체 JinjaSQL 을 포함합니다.

  • parameters: 이 템플릿에서 허용되는 모든 인자에 대한 설명입니다(JSON 형식). 각 매개 변수에 대한 정보에는 이름, 기본값, 템플릿 공급자가 작성한 설명, 필수 항목 여부가 포함됩니다. 이러한 매개 변수의 값을 RUN 명령에 전달합니다.

  • shared_by: 이 템플릿을 등록한 공동 작업자입니다.

  • shared_with: 이 템플릿이 공유되는 공동 작업자입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

스키마:

COLLABORATION

다른 공동 작업자가 보낸 모든 템플릿 업데이트 요청이 자동으로 승인되도록 합니다. 요청은 요청 로그에 계속 표시됩니다. 이는 자동 승인이 활성화된 후에 전송된 요청에만 영향을 줍니다.

구문

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

문자열 성공 메시지.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

스키마:

COLLABORATION

다른 공동 작업자가 제기한 템플릿 요청에 대한 자동 승인을 비활성화합니다. 향후의 모든 요청은 APPROVE_UPDATE_REQUEST를 호출하여 수동으로 승인해야 합니다.

구문

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

문자열 성공 메시지.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

데이터 오퍼링 프로시저

REGISTER_DATA_OFFERING

스키마:

REGISTRY

공동 작업 정의에 연결할 수 있도록 데이터 오퍼링을 등록합니다. 등록된 데이터 오퍼링은 등록 해제할 수 없습니다. 기존 데이터 오퍼링을 덮어쓸 수는 없지만, 같은 이름과 새 버전으로 새 데이터 오퍼링을 등록할 수 있습니다. 데이터 오퍼링의 새 버전을 생성해도 이전 버전은 제거되지 않습니다.

모든 데이터 오퍼링에는 계정의 모든 레지스트리에 있는 모든 데이터 오퍼링에 대해 고유한 이름-버전 조합이 있어야 합니다.

이 테이블을 공동 작업의 다른 사용자와 공유하려면 공동 작업이 생성되기 전에 공동 작업 사양에 이 테이블을 포함합니다.

공동 작업에 공유하는 모든 데이터에 대해 GRANT OPTION 이 있는 REFERENCE_USAGE 권한이 있어야 합니다. 그렇지 않은 경우 협업에 조인하거나 오브젝트를 등록하려고 할 때 “누락된 참조 사용 권한 부여” 오류가 발생합니다. 이 문제를 처리하는 방법을 알아보세요.

구문

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )

인자

:samp:`{registry_name}`*(선택 사항)*

이 데이터 오퍼링을 등록할 :doc:`사용자 지정 레지스트리 </user-guide/cleanrooms/registries>`의 이름입니다. 지정하지 않는 경우 기본 계정 레지스트리에 데이터 오퍼링을 등록합니다.

data_offering_spec

데이터 오퍼링을 설명하는 YAML 형식의 :ref:`데이터 오퍼링 정의 <label-dcr_collaboration_data_yaml>`입니다.

반환

협업의 data_offerings.id 필드에서 사용할 데이터 오퍼링 ID입니다.

기본 레지스트리에 데이터 오퍼링을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

사용자 지정 레지스트리에 데이터 오퍼링을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에 데이터 오퍼링을 등록하려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

사용자 지정 레지스트리에 항목을 등록하려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘REGISTER’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


VIEW_REGISTERED_DATA_OFFERINGS

스키마:

REGISTRY

등록한 모든 데이터 오퍼링을 나열합니다. 다른 사용자가 연결한 공동 작업의 데이터 오퍼링을 확인하려면 COLLABORATION.VIEW_DATA_OFFERINGS를 호출합니다.

구문

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )

인자

:samp:`{registry_name}`*(선택 사항)*

데이터 오퍼링을 가져올 사용자 지정 레지스트리 의 이름입니다. 지정하지 않으면 기본 계정 레지스트리의 데이터 오퍼링을 나열합니다.

반환

이 계정에 등록한 모든 데이터 오퍼링의 세부 정보를 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • DATA_OFFERING_ID: 데이터 오퍼링의 ID입니다.

  • NAME: 데이터 오퍼링 이름입니다.

  • VERSION: 데이터 오퍼링 버전입니다.

  • DATA_OFFERING_SPEC: 데이터 오퍼링의 전체 YAML 사양입니다.

  • REGISTRY: 데이터 오퍼링이 등록된 레지스트리입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에서 항목을 보려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

사용자 지정 레지스트리에서 항목을 보려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘READ’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


VIEW_DATA_OFFERINGS

스키마:

COLLABORATION

분석 실행자로 액세스할 수 있거나 직접 연결한 지정된 공동 작업에 있는 모든 데이터 오퍼링을 나열합니다. 자신이 등록한 데이터 오퍼링만 확인하려면 REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS를 호출합니다.

X가 협업에 조인한 후에만 공동 작업자 X의 데이터 오퍼링을 확인할 수 있습니다.

구문

VIEW_DATA_OFFERINGS( <collaboration_name> )

인자

collaboration_name

탐색할 협업의 이름입니다.

반환

지정된 협업의 모든 데이터 오퍼링에 대한 정보입니다. 테이블에는 다음 열이 포함됩니다.

  • template_view_name: 템플릿을 사용해 쿼리하기 위해 RUN을 호출하는 경우 오퍼링을 참조하는 데 사용되는 정규화된 뷰 이름입니다. 이 이름을 RUN 사양의 source_tables 필드에 전달합니다.

  • template_join_columns: 템플릿 기반 쿼리의 조인에 사용할 수 있는 이 테이블의 열 이름입니다.

  • analysis_allowed_columns: 템플릿 기반 쿼리에서 프로젝션할 수 있는 이 테이블의 열 이름입니다.

  • activation_allowed_columns: 활성화할 수 있는 이 테이블의 열 이름입니다.

  • freeform_sql_view_name: 데이터 세트가 자유 형식 SQL 쿼리 를 지원하는 경우 자유 형식 SQL 쿼리에서 사용되는 정규화된 뷰 이름입니다. 데이터 세트가 자유 형식 SQL 쿼리를 제공하지 않는 경우 이 셀은 비어 있습니다.

  • freeform_sql_column_policies: 이 협업의 모든 :ref:`자유 형식 열 정책 <label-dcr_freeform_sql_policies_field>`을 정책 유형별로 키로 지정한 JSON의 표현입니다.

  • shared_by: 이 데이터 오퍼링을 연결한 공동 작업자입니다.

  • shared_with: 분석에서 데이터를 사용할 수 있는 사용자입니다. 이 값이 ``LOCAL``인 경우, 이는 데이터를 호스팅하는 당사자를 제외하고 어떤 공동 작업자와도 공유되지 않는 로컬 데이터 세트입니다.

  • data_offering_id: 등록 시 생성된 이 데이터 오퍼링의 고유한 ID입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

사용자 지정 함수 프로시저

REGISTER_CODE_SPEC

스키마:

REGISTRY

코드 번들을 등록합니다. 그러면 REGISTRY.CODE_SPECS 테이블의 클린룸 환경에 코드가 저장됩니다. 코드 사양이 등록되면 템플릿에서 사용할 수 있습니다.

등록된 모든 코드 사양에는 계정의 모든 레지스트리에 대해 고유한 이름-버전 조합이 있어야 합니다.

구문

REGISTER_CODE_SPEC( ['<registry_name>' ,] <code_spec> )

인자

:samp:`{registry_name}`*(선택 사항)*

이 코드 사양을 등록할 :doc:`사용자 지정 레지스트리 </user-guide/cleanrooms/registries>`의 이름입니다. 지정하지 않는 경우 기본 계정 레지스트리에 코드 번들을 등록합니다.

code_spec

YAML 형식(문자열)의 코드 번들 사양 정의입니다.

반환

생성된 코드 번들 사양 ID입니다.

기본 레지스트리에 코드 번들을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

사용자 지정 레지스트리에 코드 번들을 등록합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에 오브젝트를 등록하려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER CODE SPEC', 'role name')

사용자 지정 레지스트리에 항목을 등록하려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘REGISTER’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


VIEW_REGISTERED_CODE_SPECS

스키마:

REGISTRY

이 역할이 로컬 계정 레지스트리에 등록한 모든 코드 번들 사양을 나열합니다.

구문

VIEW_REGISTERED_CODE_SPECS( [ '<registry_name>' ] )

인자

:samp:`{registry_name}`*(선택 사항)*

코드 번들을 가져올 사용자 지정 레지스트리 의 이름입니다. 지정하지 않으면 기본 계정 레지스트리의 코드 번들을 나열합니다.

반환

이 계정에 등록한 모든 코드 번들의 세부 정보를 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • code_spec_id: 코드 번들 사양의 ID입니다.

  • name: 코드 번들 사양 이름입니다.

  • version: 코드 번들 사양 버전입니다.

  • code_spec: 코드 번들 사양의 전체 YAML 사양입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_CODE_SPECS();

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

기본 레지스트리에서 항목을 보려면:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED CODE SPECS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

사용자 지정 레지스트리에서 항목을 보려면:

  • 자신이 생성한 모든 사용자 지정 레지스트리에 대한 읽기 및 쓰기 권한이 있습니다.

  • 다른 사용자가 생성한 사용자 지정 레지스트리에 액세스하려면 :samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(‘READ’, ‘REGISTRY’, ‘MY_REGISTRY’, ‘{role name}’)`이 필요합니다.


VIEW_CODE_SPECS

스키마:

COLLABORATION

사용자가 생성했거나 지정된 협업에서 실행할 수 있는 템플릿에서 참조하는 모든 코드 번들 사양을 반환합니다.

구문

VIEW_CODE_SPECS( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

지정된 협업에서 사용 가능한 코드 번들을 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • code_spec_id: 이 코드 번들 사양의 ID입니다.

  • code_spec: 코드 번들 사양의 전체 YAML 사양입니다.

  • shared_by: 코드 번들 사양을 공유하는 공동 작업자 별칭입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_CODE_SPECS(
  $collaboration_id
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW CODE SPECS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

업데이트 요청 프로시저

이 프로시저는 템플릿 연결 흐름 과 같이 승인이 필요한 공동 작업 업데이트 요청을 관리하는 데 사용됩니다.

VIEW_UPDATE_REQUESTS

스키마:

COLLABORATION

지정된 협업에서 자신이 생성했거나 승인 또는 거부할 수 있는 모든 업데이트 요청을 확인합니다. 여기에는 데이터 오퍼링, 템플릿, 코드 패키지 추가와 같은 모든 공동 작업 변경 사항이 포함됩니다. 이 프로시저는 업데이트 상태를 보여줍니다. 요청 목록에 업데이트 요청이 표시되는 데는 몇 초 정도 소요될 수 있으므로, 방금 전에 전송한 요청이 표시되지 않을 수 있습니다.

템플릿 연결 흐름을 참조하세요.

구문

VIEW_UPDATE_REQUESTS( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

이 협업에서 전송된 업데이트 요청 테이블입니다. 포함되는 정보는 다음과 같습니다.

  • id: 요청의 ID입니다. 이를 사용하여 요청을 승인하거나 거부합니다.

  • type: 요청의 유형입니다. 다음 값이 지원됩니다.

    • 템플릿 추가

    • 데이터 오퍼링 연결

    • 데이터 제공 연결 해제

    • 템플릿 제거

  • status: 요청의 현재 상태입니다. 다음과 같은 상태가 보고될 수 있습니다.

    • REQUESTED: 요청이 제출되었습니다.

    • PENDING_MY_APPROVAL: 요청이 승인 또는 거부 대기 중입니다.

    • PENDING_PARTNER_APPROVAL: 요청을 승인했지만 한 명 이상의 다른 공동 작업자가 요청을 승인해야 합니다.

    • REJECTED: 협업의 누군가가 이 요청을 거부했습니다.

    • APPROVED: 모든 필수 승인자가 요청을 승인했습니다.

    • COMPLETED: 업데이트 작업이 완료되고 변경 사항이 협업에 적용되었습니다. 코드 번들을 포함하는 템플릿의 경우 계속 :doc:`업그레이드 상태를 확인 </user-guide/cleanrooms/resources-code-bundles>`하여 코드 번들을 호출할 준비가 되었는지 확인합니다.

    • FAILED: 업데이트 작업이 실패했습니다. 실패 세부 정보는 DETAILS 열을 참조하세요.

  • approval_log: 요청의 모든 승인 및 거부 로그입니다. 요청이 거부되면 거부 당사자가 제시한 이유도 여기에 제공됩니다.

  • details: 템플릿 이름, 설명, ‘템플릿 추가’ 요청에 대해 템플릿을 공유하는 사용자 등 요청 유형과 관련된 세부 정보입니다.

  • spec: ‘템플릿 추가’ 요청에 대한 템플릿 사양과 같이, 업데이트되는 리소스의 세부 정보입니다.

  • updated_on: 이 요청에 대해 마지막 작업이 수행된 타임스탬프입니다(예: 승인 또는 거부).

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW UPDATE REQUESTS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

스키마:

COLLABORATION

협업 업데이트 요청을 승인합니다. VIEW_UPDATE_REQUESTS를 호출하여 보류 중인 요청 목록을 확인합니다. 요청을 승인하면 나중에 거부할 수 없습니다.

영향을 받는 모든 공동 작업자는 변경 사항이 협업에 실제로 적용되기 전에 요청을 승인해야 합니다.

템플릿 연결 흐름을 참조하세요.

구문

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )

인자

collaboration_name

협업의 이름입니다.

request_id

요청의 ID입니다.

반환

문자열 성공 메시지.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

스키마:

COLLABORATION

협업 업데이트 요청을 거부합니다. 한 번 거부하면 변경 사항이 협업에 적용되지 않습니다. 요청을 거부한 후에는 승인할 수 없습니다.

구문

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )

인자

collaboration_name

협업의 이름입니다.

request_id

요청의 ID입니다.

reason

요청이 거부된 이유에 대해 사람이 읽을 수 있는 설명입니다. 인자는 필수이지만, 빈 문자열을 제출할 수 있습니다.

반환

문자열 성공 메시지.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

협업 관리 프로시저

INITIALIZE

스키마:

COLLABORATION

소유자는 이를 호출하여 협업을 생성하고 선택적으로 협업에 조인합니다. auto_join_warehouse 가 FALSE인 경우 다른 공동 작업자가 공동 작업을 사용할 수 있도록 JOIN을 별도로 호출해야 합니다. INITIALIZE 및 JOIN을 호출하려면 동일한 역할을 사용해야 합니다.

기존 협업과 동일한 name 값으로 협업 정의를 제출하면 오류가 발생합니다.

협업을 생성하고 조인하는 데는 시간이 소요되므로 협업에 조인된 시점을 알아보려면 GET_STATUS를 호출해야 합니다.

구문

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )

인자

collaboration_spec

:ref:` 형식(문자열)의 <label-dcr_collaboration_spec_yaml>협업 정의 `YAML입니다.

:samp:`{auto_join_warehouse}`*(선택 사항)*

웨어하우스 이름을 유효한 Snowflake 식별자로 지정하는 문자열입니다. 지정된 경우 이 웨어하우스를 사용하여 협업이 생성되고 조인됩니다. 지정하지 않으면 현재 웨어하우스가 협업을 생성하는 데 사용되며 JOIN을 호출하여 협업에 조인해야 합니다. XS 웨어하우스가 권장됩니다.

반환

다음 열이 포함된 테이블을 반환합니다.

  • collaboration_name: 협업의 이름입니다. 협업을 지정해야 하는 모든 프로시저에서 사용합니다.

  • message: 초기화 요청에 대한 정보입니다.

  • auto_join_task: auto_join_warehouse 가 지정된 경우 자동 조인 작업이 생성되었는지 여부를 나타냅니다.

다음 예제에서는 Alice가 소유자이고 Bob이 제공한 데이터를 사용하여 분석을 실행할 수 있는 협업을 생성합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    auto-join-warehouse 매개 변수를 제공하고 SAMOOHA_APP_ROLE 이외의 역할을 사용하는 경우, 역할에 EXECUTE TASK 계정 수준 권한도 부여되어야 합니다.

추가 필수 역할 권한에 대해서는 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE 섹션을 참조하세요.


TEARDOWN

스키마:

COLLABORATION

모든 당사자에 대한 협업을 삭제하기 위해 소유자가 호출합니다.

이 프로시저를 두 번 호출해야 합니다. 한 번 호출한 후 GET_STATUS이 반환될 때까지 ``LOCAL_DROP_PENDING``를 호출한 다음 이 프로시저를 다시 호출합니다.

참고

이 프로시저는 자신이 생성하고 조인한 협업에서만 호출할 수 있습니다. 협업을 생성했지만 아직 조인하지 않은 경우 먼저 조인해야 협업을 해제할 수 있습니다.

구문

TEARDOWN( <collaboration_name> )

인자

collaboration_name

삭제할 협업의 이름입니다.

반환

문자열 성공 메시지.

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

추가 필수 역할 권한에 대해서는 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE 섹션을 참조하세요.


GET_STATUS

스키마:

COLLABORATION

주어진 협업의 모든 공동 작업자에 대한 정보를 표시합니다.

협업 생성 또는 조인과 같은 비동기 작업을 실행할 때 분석 실행과 같은 해당 협업에 대한 추가 작업을 수행하기 전에 마지막 작업이 완료된 시점을 알기 위해 상태를 확인해야 합니다. 이 프로시저는 협업에 초대된 모든 공동 작업자가 호출할 수 있습니다.

공동 작업 소유자는 다음 상태 경로를 볼 수 있습니다.

  • CREATING » CREATED » INSTALLING » IN_REVIEW(또는 INSTALLATION_FAILED) » JOINING » JOINED(또는 JOIN_FAILED)

소유자가 아닌 사용자에게는 다음 상태 경로가 표시됩니다.

  • INSTALLING » IN_REVIEW(또는 INSTALLATION_FAILED) » JOINING » JOINED(또는 JOIN_FAILED)

구문

GET_STATUS( <collaboration_name> )

인자

collaboration_name

상태를 확인하기 위한 협업의 이름입니다. COLLABORATION.VIEW_COLLABORATIONS를 호출하여 공동 작업 목록을 확인할 수 있습니다. 협업에 초대되었거나 조인한 적이 있어야 GET_STATUS를 호출할 수 있습니다.

반환

지정된 협업의 모든 공동 작업자에 대한 최신 조인 시도에 대한 세부 정보를 보여주는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • updated_on: 시스템에서 상태를 보고한 시점의 타임스탬프입니다.

  • collaborator_account: 이 공동 작업자의 데이터 공유 계정 ID입니다.

  • collaborator_name: 협업 사양에 선언된 공동 작업자의 별칭입니다.

  • roles: 이 공동 작업자의 실제 역할과 잠재적 역할입니다. 값에는 owner, data_provider, ``analysis_runner``가 포함됩니다.

  • status: 업데이트된 시간의 상태입니다. 다음 값이 지원되며 지정된 협업에서 명명된 공동 작업자의 상태를 보여줍니다.

    • CREATING: 협업 생성이 시작되었습니다.

    • CREATE_FAILED: 협업 생성에 실패했습니다.

    • CREATE_TIMED_OUT: 공동 작업 생성 시간이 초과되었습니다.

    • CREATED: 협업이 생성되어 작업할 준비가 되었습니다.

    • INSTALLING: 애플리케이션 패키지를 설치하고 검토를 위한 협업 세부 정보를 준비하는 중입니다.

    • IN_REVIEW: 공동 작업을 검토 중입니다.

    • INSTALLATION_FAILED: 설치에 실패했습니다. 애플리케이션 패키지가 설치되지 않아 검토할 수 없습니다.

    • INVITED: 참여자가 초대되었습니다.

    • JOINING: 조인 프로세스가 시작되었습니다.

    • JOIN_FAILED: 조인 프로세스가 실패했습니다.

    • JOINED: 협업에 성공적으로 조인했습니다. 공동 작업 사용을 시작할 수 있습니다.

    • LEAVING: 나가기 프로세스가 시작되었습니다.

    • LEAVE_FAILED: 나가기 프로세스가 실패했습니다.

    • LEFT: 협업에서 성공적으로 나갔습니다.

    • LOCAL_DROP_PENDING: 협업을 삭제하거나 협업에서 나가는 요청을 완료했습니다. TEARDOWN 또는 LEAVE를 다시 호출하여 프로세스를 완료합니다.

    • DROPPING: 삭제 프로세스가 시작되었습니다.

    • DROPPED: 성공적으로 삭제했습니다.

    • DROP_FAILED: 삭제 프로세스가 실패했습니다.

  • details: 현재 상태에 대한 추가 세부 정보입니다(사용 가능한 경우).

  • region: 이 공동 작업자의 클라우드 리전입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('GET STATUS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

스키마:

ADMIN

계정에서 분석을 실행하는 데 사용할 외부 테이블 및 Apache Iceberg™ 테이블을 활성화합니다. 분석 실행자는 외부 또는 Iceberg 테이블을 포함하는 분석을 실행하기 전에 이를 호출해야 합니다. 이 프로시저는 분석당 한 번이 아닌 협업당 한 번 호출됩니다.

구문

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

성공 메시지가 포함된 MESSAGE 열이 있는 테이블입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 MANAGE FIREWALL CONFIGURATION 권한이 부여된 역할을 사용하여 이 프로시저를 호출해야 합니다.


VIEW_COLLABORATIONS

스키마:

COLLABORATION

자신이 생성했거나, 검토할 수 있거나, 조인한 협업에 대한 정보를 확인합니다.

구문

VIEW_COLLABORATIONS()

인자

없음

반환

액세스할 수 있는 모든 협업의 세부 정보를 나열하는 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • source_name: 협업 사양의 name 값으로 지정된 협업의 이름입니다.

  • collaboration_name: 설치된 협업의 이름입니다. 이는 JOIN(소유자) 또는 REVIEW(비소유자)를 호출하여 협업이 설치될 때까지 NULL입니다.

  • owner_account: 협업을 생성한 계정의 데이터 공유 ID입니다.

  • updated_on: 협업이 마지막으로 업데이트된 시점입니다.

  • collaboration_spec: 이 협업에 대한 YAML 형식의 사양입니다. 여기에는 공동 작업이 생성된 후 연결되거나 제거된 모든 리소스를 포함하여 공동 작업의 최신 버전이 표시됩니다. 그러나 새로운 템플릿이나 제거된 템플릿 또는 데이터 오퍼링과 같이 곧 연결될 진행 중인 업데이트 요청이 있을 수 있습니다.

모든 협업을 확인합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();

주어진 협업에 대한 사양을 이름별로 확인합니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1 WHERE "SOURCE_NAME" = $collaboration_name;

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

스키마:

COLLABORATION

초대된 협업에 대한 세부 정보를 제공합니다. COLLABORATION.VIEW_COLLABORATIONS를 호출하여 초대를 받았지만 아직 조인하지 않은 공동 작업을 확인합니다. 소유자를 제외한 모든 공동 작업자는 JOIN을 호출하기 전에 이 프로시저를 호출해야 합니다. 조인한 협업에서는 이 프로시저를 호출할 수 없습니다. REVIEW 및 JOIN을 호출하려면 동일한 역할을 사용해야 합니다. 계정이 소유자와 다른 클라우드 호스팅 리전에 있는 경우 성공적인 응답을 반환할 때까지 이 프로시저를 여러 번 호출해야 할 수 있습니다.

이 프로시저에서는 계정에 기본 애플리케이션을 설치합니다.

중요 참고 사항:

  • 소유자는 자체 협업에 대해 REVIEW를 호출할 수 없습니다.

  • 소유자를 제외한 모든 사용자는 REVIEW을 호출하기 전에 JOIN를 호출해야 합니다.

  • 협업에 참여한 후에는 REVIEW를 다시 호출할 수 없습니다.

구문

REVIEW( <source_name>, <owner_account> )

인자

source_name

조인하도록 초대된 협업의 이름입니다. COLLABORATION.VIEW_COLLABORATIONS를 호출하여 공동 작업 목록을 확인할 수 있습니다.

owner_account

소유자의 :ref:`데이터 공유 계정 식별자 <label-account_name_data_sharing>`입니다. 이는 COLLABORATION.VIEW_COLLABORATIONS에 대한 응답에서 확인할 수 있습니다.

반환

협업 ID, 소유자 및 협업 사양을 포함하여 협업에 대한 정보 테이블입니다.

계정이 협업 소유자와 :ref:`다른 클라우드 호스팅 리전 <label-dcr_collab_enabling_laf>`에 있는 경우 REVIEW는 추가 설정 단계가 아직 수행 중이라는 메시지를 반환할 수 있습니다. 이 메시지가 표시되면 협업에 대한 정보 테이블을 반환할 때까지 REVIEW를 계속 호출합니다.

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REVIEW COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

추가 필수 역할 권한에 대해서는 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE 섹션을 참조하세요.


JOIN

스키마:

COLLABORATION

지정된 협업에 조인할 비동기 메서드입니다. 조인 시점에는 협업에 나열된 리소스에만 액세스할 수 있습니다. 이 프로시저는 실행하는 데 다소 시간이 소요됩니다.

데이터를 활성화할 수 있는 모든 협업에 조인하려면 REGISTER DATA OFFERING 계정 권한(즉, 분석 실행자이고 협업 사양에 activation_destinations 필드가 포함되어 있음)이 필요합니다. :ref:`액세스 관리 API 참조 가이드 <label-dcr_collaboration_access_management_api>`를 참조하세요.

이 프로시저를 실행할 때 활성 보조 역할을 가질 수 없습니다. 다음 SQL 코드를 실행하여 보조 역할을 비활성화합니다.

USE SECONDARY ROLES NONE;

공동 작업 생성자를 제외한 모든 사용자는 이 프로시저를 호출하기 전에 COLLABORATION.REVIEW를 호출해야 합니다.

이 프로시저는 비동기적입니다. GET_STATUS를 호출하여 협업에 성공적으로 조인한 시점을 확인할 수 있습니다.

공동 작업에 리소스를 제출하거나 공동 작업에서 템플릿을 실행하려는 모든 사용자는 먼저 공동 작업에 조인해야 합니다. 공동 작업 생성자는 INITIALIZE를 호출할 때 자동으로 조인합니다(auto_join_warehouse 가 FALSE로 설정되지 않은 경우).

구문

JOIN( <collaboration_name> )

인자

collaboration_name

조인할 협업의 이름입니다. COLLABORATION.VIEW_COLLABORATIONS를 호출하여 공동 작업 목록을 확인할 수 있습니다. 동일한 이름의 여러 공동 작업에 조인하도록 초대받은 경우, 기본값은 마지막으로 COLLABORATION.REVIEW를 호출한 공동 작업으로 설정됩니다.

반환

문자열 성공 메시지. 참조 사용 권한 누락에 대한 오류가 발생하는 경우 :ref:`문제 해결 가이드 <label-dcr_database_missing_reference_usage_error>`를 참조하세요.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

추가 필수 역할 권한에 대해서는 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE 섹션을 참조하세요.


LEAVE

스키마:

COLLABORATION

자신이 조인한 협업에서 나갑니다. 협업에서 나간 후에는 다시 조인할 수 없습니다.

이 프로시저를 두 번 호출해야 합니다. 한 번 호출한 후 GET_STATUS이 반환될 때까지 ``LOCAL_DROP_PENDING``를 호출한 다음 이 프로시저를 다시 호출합니다.

구문

LEAVE( <collaboration_name> )

인자

collaboration_name

나갈 협업의 이름입니다.

반환

문자열 성공 메시지.

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

추가 필수 역할 권한에 대해서는 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE 섹션을 참조하세요.


GET_CONFIGURATION

스키마:

COLLABORATION

공동 작업의 현재 구성 설정을 반환합니다. 이 프로시저를 호출하기 전에 공동 작업에 조인했어야 합니다.

구문

GET_CONFIGURATION( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

다음 열이 포함된 테이블을 반환합니다.

설명

CONFIGURATION

구성 설정의 이름입니다.

VALUE

구성의 현재 값입니다.

STATUS

값이 ACTIVE 상태 또는 PENDING 상태(변경이 요청되었지만 아직 적용되지 않음)인지 나타냅니다.

지원되는 구성

구성 이름

설명

TEMPLATE_AUTO_APPROVAL

다른 공동 작업자의 템플릿 업데이트 요청이 자동으로 승인되는지 여부입니다. 값: true 또는 false. 기본값: false.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_CONFIGURATION(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


SET_CONFIGURATION

스키마:

COLLABORATION

공동 작업의 구성 값을 설정합니다. 변경은 비동기적입니다. 새 값이 적용된 시점을 확인하려면 GET_CONFIGURATION을 호출합니다. 이 프로시저를 호출하기 전에 공동 작업에 조인했어야 합니다.

사용 중단된 ENABLE_TEMPLATE_AUTO_APPROVAL 및 DISABLE_TEMPLATE_AUTO_APPROVAL 프로시저 대신 이 프로시저를 사용하여 템플릿 자동 승인을 관리합니다. TEMPLATE_AUTO_APPROVALtrue 로 설정하면 자동 승인을 활성화하고 false 로 설정하면 비활성화합니다.

구문

SET_CONFIGURATION( <collaboration_name>, <config_name>, <value> )

인자

collaboration_name

협업의 이름입니다.

config_name

설정할 구성의 이름입니다. 지원되는 구성 이름은 GET_CONFIGURATION 섹션을 참조하세요.

value

구성의 새 값입니다. 지정된 구성 이름에 대해 유효한 값이어야 합니다.

반환

요청이 수락되었음을 확인하는 문자열 메시지입니다.

-- Enable automatic approval of template requests
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.SET_CONFIGURATION(
  $collaboration_name,
  'TEMPLATE_AUTO_APPROVAL',
  'true'
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

분석 및 활성화 실행

RUN

스키마:

COLLABORATION

데이터 Clean Room에서 분석을 실행합니다. 실행 세부 정보는 개별 매개 변수로 또는 :ref:`분석 YAML 사양 문자열 <label-dcr_collaboration_analysis_yaml>`을 전달하여 전달할 수 있습니다.

데이터 Clean Room에서 템플릿을 실행하는 방법에 대한 배경은 :ref:`consumer.run_analysis <dcr_consumer_run_analysis>`를 확인하세요.

이 프로시저에는 실행 인자를 단일 YAML 형식의 문자열로 사용하는 버전 및 인자를 개별 매개 변수로 사용하는 버전의 두 가지 버전이 있습니다.

구문

YAML 인자 구문:

RUN( <collaboration_name>, <analysis_spec> )

명시적 매개 변수 구문:

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )

인자

collaboration_name

이 분석을 실행할 협업의 이름입니다.

analysis_spec

이 분석에 사용할 템플릿, 테이블, 템플릿 값을 설명하는 :ref:` 형식(문자열)의 <label-dcr_collaboration_analysis_yaml>분석 정의 `YAML입니다. YAML 인자 구문과 함께 사용됩니다.

template_id

실행할 템플릿의 ID입니다.

template_view_names

분석에 사용할 소스 테이블의 문자열 이름으로 구성된 배열입니다. template_view_name 열에서 VIEW_DATA_OFFERINGS로 반환된 테이블 이름을 사용합니다. 각 항목의 형식은 :samp:`{user_alias}.{data_offering_id}.{dataset_alias}`입니다.

local_template_view_names

분석에 사용할 자체 테이블의 문자열 IDs 배열입니다. 이러한 테이블을 연결하려면 먼저 LINK_LOCAL_DATA_OFFERING을 호출해야 합니다.

arguments

템플릿에서 사용하는 명명된 인자를 포함하는 JSON 오브젝트로, 여기서 각 키는 템플릿 인자 이름이고 값은 해당 인자의 값입니다.

반환

테이블 형식의 분석 결과.

매개 변수로 전달의 예제는 다음과 같습니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

스키마:

COLLABORATION

공동 작업자에게 전송하기 위해 트리거한 분석 실행 또는 공동 작업자가 사용자에게 전송하기 위해 트리거한 활성화의 활성화 상태를 표시합니다. 자신에게 데이터를 보내기 위한 활성화 요청은 나열되지 않습니다.

활성화에 대한 자세한 내용은 활성화 구현하기 섹션을 참조하세요.

구문

VIEW_ACTIVATIONS( <collaboration_name> )

인자

collaboration_name

협업의 이름입니다.

반환

각 활성화에 대한 세부 정보가 포함된 테이블입니다. 테이블에는 다음 열이 포함됩니다.

  • updated_on: 상태가 마지막으로 업데이트된 시점입니다.

  • segment_name: 이 활성화를 식별하기 위해 분석 실행자가 할당한 임의의 문자열입니다. 자세한 내용은 쿼리 결과 활성화하기 섹션을 참조하십시오.

  • batch_id: 이 활성화 요청의 배치 ID입니다. 자세한 내용은 공급자 및 컨슈머 활성화 결과 보기 섹션을 참조하십시오.

  • template_id: 이 활성화 데이터를 생성하는 데 사용되는 템플릿입니다.

  • shared_by: 분석을 실행한 공동 작업자입니다.

  • shared_with: 분석 데이터를 수신해야 하는 공동 작업자입니다.

  • status: 활성화의 상태입니다. 다음 값이 지원됩니다.

    • PENDING: 활성화가 요청되었지만 처리 대기 중입니다.

    • REPLICATING: 활성화 데이터가 대상 리전에 복제되고 있습니다.

    • SHARED: 활성화 데이터를 처리할 준비가 되었습니다. PROCESS_ACTIVATION을 호출하여 결과를 계정으로 보냅니다.

    • FAILED: 활성화 처리에 실패했습니다. details 열의 정보를 참조하세요.

    • PROCESSED: 활성화 결과가 활성화 요청에 지정된 계정으로 전송되었습니다.

  • details: 활성화에 실패한 경우의 실패 세부 정보입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

스키마:

COLLABORATION

분석 실행자가 다른 공동 작업자의 계정으로 데이터를 보내는 경우 해당 공동 작업자는 PROCESS_ACTIVATION을 호출하여 활성화 데이터를 자신의 계정으로 가져옵니다. 공동 작업자는 PROCESS_ACTIVATION을 호출하기 전에 VIEW_ACTIVATIONS를 호출하고 주어진 세그먼트의 활성화 상태가 ``SHARED``임을 출력에 표시할 때까지 기다려야 합니다.

자세한 내용은 활성화 구현하기 섹션을 참조하십시오.

구문

PROCESS_ACTIVATION( <collaboration_name> [, <segment_name> | <array_of_batch_ids> ] )

인자

collaboration_name

협업의 이름입니다.

:samp:`{segment_name}`*(선택 사항)*

처리할 특정 활성화 세그먼트의 문자열 이름입니다.

:samp:`{batch_ids}`*(선택 사항)*

처리할 활성화 배치 IDs의 문자열 배열입니다. 이 값은 VIEW_ACTIVATIONS에 의해 반환됩니다. 포함되지 않은 경우 요청은 호출자에 대해 지정된 협업에서 보류 중인 모든 활성화를 처리합니다.

반환

사용자가 결과를 검색할 수 있는 테이블 이름 및 결과에 대해 지정된 세그먼트 이름입니다. 결과를 읽는 방법에 대해 알아보려면 활성화 구현하기 섹션을 참조하세요.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

레지스트리 관리 프로시저

이 섹션에는 오브젝트를 등록하는 데 사용되는 프로시저가 포함되어 있습니다. 자세한 내용:

CREATE_REGISTRY

스키마:

REGISTRY

사용자 지정 레지스트리를 생성하여 템플릿 및 데이터 오퍼링과 같은 리소스를 구성합니다. 사용자 지정 레지스트리는 레지스트리를 생성할 때 지정된 단일 유형의 리소스를 저장할 수 있습니다.

사용자 지정 레지스트리를 사용하여 기본 로컬 레지스트리와 별도로 관련 리소스를 그룹화합니다. 선택적 레지스트리 이름 매개 변수를 사용하여 이 레지스트리에 리소스를 추가합니다.

구문

CREATE_REGISTRY( '<registry_name>', <registry_type> )

인자

registry_name

생성할 레지스트리의 이름입니다. 계정의 모든 레지스트리에서 고유한 이름이어야 합니다.

registry_type

이 레지스트리에 포함될 리소스의 유형입니다. 지원되는 값: TEMPLATE, DATA OFFERING.

반환

문자열 성공 메시지.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


VIEW_REGISTRIES

스키마:

REGISTRY

기본 로컬 레지스트리 및 사용자 지정 레지스트리를 포함하여 액세스할 수 있는 모든 레지스트리를 나열합니다.

구문

VIEW_REGISTRIES()

인자

없습니다.

반환

액세스할 수 있는 각 레지스트리에 대한 행이 있는 테이블입니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTRIES();

액세스 요구 사항

SAMOOHA_APP_ROLE 역할을 사용하지 않는 경우 다음 프로시저 중 하나를 호출하여 권한이 부여된 역할을 사용해야 합니다.

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTRIES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

사용자 지정 레지스트리가 VIEW_REGISTRIES에 표시되도록 하려면 다음 프로시저 호출 중 하나에 의해 부여된 READ 또는 REGISTER 권한도 있어야 합니다.

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'registry name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'registry name', 'role name')

액세스 관리 프로시저

SAMOOHA_APP_ROLE 역할은 모든 Data Clean Room Collaboration API 프로시저에 대한 액세스 권한을 부여합니다. 그러나 관리자가 특정 역할에 더 세분화된 권한을 부여하려는 경우 이 섹션에 설명된 절차에 따라 역할을 생성하고 특정 권한을 부여할 수 있습니다. Collaboration API에 대한 액세스 관리에 대해 자세한 내용은 액세스 관리 설명서 를 참조하세요.

다음 프로시저는 Snowflake Data Clean Room Collaboration API에 대한 세분화된 액세스를 관리하는 데 사용됩니다.

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

스키마:

ADMIN

지정된 역할에 특정 오브젝트에서 특정 프로시저를 호출할 수 있는 권한을 부여합니다.

이 프로시저를 여러 번 호출하여 동일한 역할에 여러 권한을 부여할 수 있습니다. 오브젝트를 소유한 역할을 사용하여 이 프로시저를 실행합니다.

구문

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  '<privilege>',
  '<object_type>',
  '<object_name>',
  '<account_role_name>'
);

인자

'privilege'

이 역할에 부여해야 하는 권한입니다. 어떤 오브젝트에 어떤 권한을 사용할 수 있는지 알아보려면 아래 테이블을 참조하세요.

'object_type'

이 역할에 권한이 부여되는 오브젝트의 유형입니다. 지원되는 값:

  • COLLABORATION

  • REGISTRY

'object_name'

오브젝트의 사양에 지정된 오브젝트의 ID입니다.

'account_role_name'

부여되는 역할입니다.

다음 권한 및 오브젝트 유형 조합이 지원됩니다.

복합 권한

다음 복합 권한은 한 번에 여러 프로시저에 대한 액세스 권한을 부여합니다.

권한

오브젝트 타입

활성화된 프로시저

READ

COLLABORATION

VIEW_COLLABORATIONS, GET_STATUS, GET_CONFIGURATION, VIEW_CODE_SPECS, VIEW_DATA_OFFERINGS, VIEW_UPDATE_REQUESTS, VIEW_TEMPLATES

RUN

COLLABORATION

RUN, VIEW_ACTIVATIONS, VIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_LOCAL_DATA_OFFERING, UNLINK_LOCAL_DATA_OFFERING, ADD_TEMPLATE_REQUEST, REMOVE_TEMPLATE, APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST, ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, SET_CONFIGURATION, VIEW_UPDATE_REQUESTS

READ

REGISTRY

:doc:`사용자 지정 레지스트리 </user-guide/cleanrooms/registries>`에 등록된 리소스를 확인합니다.

REGISTER

REGISTRY

사용자 지정 레지스트리 에서 템플릿 및 데이터 오퍼링과 같은 리소스를 보거나 등록합니다.

세분화된 권한

다음과 같은 세분화된 권한은 특정 공동 작업의 개별 프로시저에 대한 액세스 권한을 부여합니다.

권한

활성화된 프로시저

GET STATUS

GET_STATUS

VIEW DATA OFFERINGS

VIEW_DATA_OFFERINGS

VIEW TEMPLATES

VIEW_TEMPLATES

VIEW CODE SPECS

VIEW_CODE_SPECS

VIEW UPDATE REQUESTS

VIEW_UPDATE_REQUESTS

VIEW ACTIVATIONS

VIEW_ACTIVATIONS

ADD TEMPLATE REQUEST

ADD_TEMPLATE_REQUEST

REMOVE TEMPLATE

REMOVE_TEMPLATE

MANAGE UPDATE REQUEST

APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST

MANAGE TEMPLATE AUTO APPROVAL

ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, GET_CONFIGURATION, SET_CONFIGURATION

LINK LOCAL DATA OFFERINGS

LINK_LOCAL_DATA_OFFERING

UNLINK LOCAL DATA OFFERINGS

UNLINK_LOCAL_DATA_OFFERING

PROCESS ACTIVATION

PROCESS_ACTIVATION

반환

성공 메시지가 포함된 MESSAGE 열이 있는 테이블입니다.

이 예제에서는 분석가가 ``my_collaboration``이라는 협업에서 분석을 실행하는 데 사용할 역할을 생성하고 이를 사용자에게 할당합니다.

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;

액세스 요구 사항

해당 오브젝트에 대한 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE을 호출하려면 오브젝트를 생성한 역할과 동일한 역할을 사용해야 합니다.

  • 공동 작업의 경우 CREATE COLLABORATION 또는 JOIN COLLABORATION 권한이 있는 역할은 모든 공동 작업에서 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE을 호출할 수 있습니다.

  • 레지스트리의 경우 레지스트리를 생성한 역할만 해당 레지스트리에서 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE을 호출할 수 있습니다.


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

스키마:

ADMIN

역할에 계정 수준 권한을 부여합니다. 이 프로시저를 사용하면 해당 역할을 사용하는 모든 사용자가 해당 권한에 대해 나열된 프로시저를 호출할 수 있습니다.

구문

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( '<privilege>', '<account_role_name>' );

인자

'privilege'

이 역할을 부여할 권한입니다. 지원되는 문자열 값은 다음과 같습니다.

  • JOIN COLLABORATION: COLLABORATION.JOIN 실행 권한과 조인한 공동 작업에서 다음 프로시저를 실행할 수 있는 권한을 부여합니다.

    • ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • ADMIN.REVOKE_PRIVILEGE_ON_OBJECT_FROM_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_CODE_SPECS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTRIES

    • REGISTRY.VIEW_REGISTERED_CODE_SPECS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    이 권한을 사용하려면 다음과 같은 계정 수준 권한을 역할에 수동으로 부여해야 합니다.

    • APPLY ROW ACCESS POLICY ON ACCOUNT

    • CREATE APPLICATION ON ACCOUNT

    • CREATE DATABASE ON ACCOUNT

    • CREATE LISTING ON ACCOUNT

    • CREATE SHARE ON ACCOUNT

    • IMPORT SHARE ON ACCOUNT

    • MANAGE SHARE TARGET ON ACCOUNT

  • CREATE COLLABORATION: COLLABORATION.INITIALIZE 실행 권한과 조인한 공동 작업에 대해 JOIN COLLABORATION 이 허용하는 모든 프로시저를 실행할 수 있는 권한을 부여합니다. 역할에 다음 계정 수준의 권한을 수동으로 부여해야 합니다.

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTE TASK(INITIALIZE 프로시저에서 자동 조인을 사용하는 경우)

  • VIEW COLLABORATIONS: COLLABORATION.VIEW_COLLABORATIONS 실행 권한을 부여합니다. 역할에 다음 권한을 수동으로 부여해야 합니다.

    • IMPORT SHARE ON ACCOUNT

  • REGISTER DATA OFFERING: REGISTRY.REGISTER_DATA_OFFERING 실행 권한을 부여합니다. 분석 실행자가 활성화를 구현하는 협업에 조인하려면 이 권한이 필요합니다.

  • VIEW REGISTERED DATA OFFERINGS: REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS 실행 권한을 부여합니다.

  • REGISTER TEMPLATE: REGISTRY.REGISTER_TEMPLATE 실행 권한을 부여합니다.

  • VIEW REGISTERED TEMPLATES: REGISTRY.VIEW_REGISTERED_TEMPLATES 실행 권한을 부여합니다.

  • REGISTER CODE SPEC: REGISTRY.REGISTER_CODE_SPEC 실행 권한을 부여합니다.

  • VIEW REGISTERED CODE SPECS: REGISTRY.VIEW_REGISTERED_CODE_SPECS 실행 권한을 부여합니다.

  • CREATE REGISTRY: REGISTRY.CREATE_REGISTRY, REGISTRY.VIEW_REGISTRIES 실행 권한과 직접 생성한 사용자 지정 레지스트리에서 읽을 수 있는 권한을 부여합니다.

  • REVIEW COLLABORATION: COLLABORATION.REVIEW 실행 권한을 부여합니다.

  • VIEW REGISTRIES: REGISTRY.VIEW_REGISTRIES 실행 권한을 부여합니다.

  • VIEW DCR STATUS: 계정에서 Data Clean Rooms의 전체 상태를 볼 수 있는 권한을 부여합니다.

'account_role_name'

계정 수준 역할의 이름입니다.

반환

성공 메시지가 포함된 MESSAGE 열이 있는 테이블입니다.

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);

액세스 요구 사항

이 프로시저를 실행하려면 ACCOUNTADMIN 역할 또는 MANAGE GRANTS 전역 권한이 있는 역할이 필요합니다.