Snowflake Data Clean Rooms: 공급자 API 참조 가이드

이 페이지에서는 Clean Rooms API 컨슈머가 Clean Rooms를 관리하기 위해 사용하는 프로시저에 대해 설명합니다. 코딩 설정 지침은 코딩 설정 섹션을 참조하십시오.

클린룸 생성, 구성 및 삭제

view_cleanrooms

스키마:

PROVIDER

설명: 이 공급자 계정으로 생성한 모든 기존 클린룸 목록을 표시합니다.

인자: 없음

반환: (table) 이 공급자 계정에서 생성한 클린룸 목록입니다. 클린룸은 컨슈머에게 공유하거나 설치하거나 사용할 필요가 없습니다. 삭제된 클린룸은 데이터베이스에서 삭제되며 이 목록에 표시되지 않습니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_cleanrooms();
Copy

describe_cleanroom

스키마:

PROVIDER

설명: 템플릿, 조인 정책, 열 정책, 컨슈머 등 클린룸에 대한 정보 요약을 확인하십시오.

인자:

  • cleanroom_name (string) - 정보를 얻을 클린룸의 이름입니다.

반환값:(string) 클린룸 메타데이터 요약입니다.

예:

CALL samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
Copy

cleanroom_init

스키마:

PROVIDER

설명: 계정에 지정된 이름으로 클린룸을 만듭니다. 이 프로시저는 실행하는 데 1분 이상 걸릴 수 있습니다. 클린룸은 create_or_update_cleanroom_listing을 호출할 때까지 클린룸 UI에서 또는 공동 작업자에게 보이지 않습니다.

인자:

  • cleanroom_name (string) - 클린룸 이름, 최대 80자. 이름에는 [A‑Z,a‑z,0‑9, ,_]가 포함됩니다.

  • 배포(문자열, 선택 사항) - 다음 값 중 하나입니다.

    • INTERNAL(기본값) - 클린룸은 같은 조직에 속한 사용자에게만 표시되며 기본 버전 변경 전에는 보안 검사를 트리거하지 않습니다.

    • EXTERNAL - 클린룸은 생산 준비가 완료된 상태이며 조직 외부에서 공유할 수 있습니다. 클린룸은 기본 버전 변경 전에 보안 검사를 트리거합니다. 클린룸이 생성된 후 배포를 변경하려면 여기에 표시된 대로 ALTER PACKAGE를 호출하세요.

      ALTER APPLICATION PACKAGE samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
      
      Copy

반환: (string) 성공 또는 실패 메시지.

예:

-- Create an internal clean room
CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
Copy

set_default_release_directive

스키마:

PROVIDER

설명: 공동 작업자가 클린룸 UI에서 새 브라우저 세션을 시작하거나 API에서 클린룸에 액세스할 때 로드하는 클린룸의 버전과 패치를 지정합니다. 클린룸을 컨슈머와 공유하려면 이를 먼저 호출해야 합니다.

클린룸 애플리케이션은 Python 코드를 업로드하거나 변경할 때마다 클린룸의 새 버전을 생성합니다. 사용자에게 최신 버전을 제공하려면 새 버전 번호와 함께 이 프로시저를 호출하십시오. 사용 가능한 버전을 확인하고 현재 기본 버전을 알아보려면 실행하십시오.

최신 패치 번호를 잊어버린 경우 다음 코드를 실행하여 사용 가능한 버전을 확인할 수 있습니다(최신 패치를 기본값으로 사용하는 것이 좋음).

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<cleanroom_name>
Copy

Where <cleanroom_name> follows this format.

모든 클린룸은 다음 버전과 패치 번호로 생성됩니다.

  • 버전: V1_0

  • 패치: 0

참고

클린룸 배포가 EXTERNAL로 설정된 경우 이 프로시저는 클린룸 보안 스캔이 APPROVED 상태로 이동한 후에만 호출할 수 있습니다. 보안 상태를 확인하려면 view_cleanroom_scan_status를 호출하세요.

인자:

  • cleanroom_name (string) - 클린룸 이름입니다.

  • version (string) - 버전. 항상 “V1_0”이어야 합니다.

  • patch (string) - 컨슈머가 로딩한 패치 번호입니다. 이 값은 0에서 시작하며, 새로운 클린룸 버전이 가용성을 확보할 때마다 증가시켜야 합니다. 위에서 설명한 대로 사용 가능한 버전을 확인할 수 있습니다.

반환: (문자열) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
Copy

drop_cleanroom

스키마:

PROVIDER

설명: 클린룸을 삭제합니다. 클린룸이 설치된 공동 작업자는 더 이상 클린룸에 액세스하거나 사용할 수 없습니다. 다음에 브라우저를 새로 고칠 때 클린룸이 더 이상 클린룸 UI에 표시되지 않습니다.

인자:

  • cleanroom_name (string) - 삭제할 클린룸의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Copy

enable_consumer_run_analysis

스키마:

PROVIDER

설명: 컨슈머가 클린룸에서 분석을 실행할 수 있습니다. 이 기능은 모든 새 클린룸에서 기본적으로 활성화되어 있으므로 클린룸에 대한 컨슈머 실행 분석을 명시적으로 비활성화한 경우에만 이 프로시저를 실행하면 됩니다.

인자:

  • cleanroom_name (string) - 컨슈머가 운영하는 분석이 허용되는 클린룸의 이름입니다.

  • consumer_accounts(문자열 배열) - 이 기능을 활성화할 모든 컨슈머의 계정 로케이터입니다. NOTE: 이 컨슈머는 이미 클린룸에 추가되어 있어야 합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR_1>']); 
Copy

disable_consumer_run_analysis

스키마:

PROVIDER

설명: 지정된 컨슈머가 지정된 클린룸에서 분석을 실행하지 못하도록 합니다. 기본적으로 모든 컨슈머는 클린룸에서 분석을 실행할 수 있습니다.

인자:

  • cleanroom_name (string) - 컨슈머가 실행하는 분석이 비활성화된 클린룸입니다.

  • consumer_accounts (array of strings) - 이 클린룸에서 분석을 실행할 수 없는 컨슈머의 계정 찾기. 참고: 이 컨슈머는 이미 클린룸에 추가되어 있어야 합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR_1>']); 
Copy

is_consumer_run_enabled

스키마:

LIBRARY

설명: 이 클린룸에서 컨슈머 분석이 가능한지 확인합니다.

인자:

  • cleanroom_name (string) - 확인할 클린룸의 이름입니다.

반환값:(string) 이 클린룸이 컨슈머 분석을 허용하는지 여부.

예:

CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Copy

create_or_update_cleanroom_listing

스키마:

PROVIDER

설명: 새 클린룸을 게시하거나 기존 클린룸을 업데이트합니다. 클린룸을 변경할 때마다 이 메서드를 호출하여 변경 사항이 컨슈머에게 전파되도록 해야 합니다.

클린룸을 처음 게시하는 경우 클린룸이 클린룸 UI에 표시되는 데 최대 15분이 걸릴 수 있습니다.

나중에 이 메서드를 호출하지 않고 클린룸을 업데이트하면 변경 사항이 컨슈머에게 전파된다는 보장이 없습니다.

하나의 계정에서 만들 수 있는 클린룸 + 공동 작업자 수에는 제한이 있습니다. 테스트 클린룸을 너무 많이 만들면 새 클린룸을 만들기 위해 몇 개를 삭제해야 할 수도 있습니다. 계정에 수용 가능한 인원보다 더 많은 클린룸이 필요한 경우 Snowflake 지원에 문의하세요.

참고

이 프로시저를 호출하기 전에 릴리스 지시문을 한 번 이상 설정해야 합니다. 자세한 내용은 provider.set_default_release_directive 섹션을 참조하세요.

인자:

  • cleanroom_name (string) - 게시하거나 업데이트할 클린룸의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

오류 처리:

“Cross-Cloud Auto-Fulfillment is not enabled for this account”라는 오류가 표시되면 컨슈머 중 한 명이 다른 클라우드 호스팅 리전에 있다는 의미입니다. Snowflake Data Clean Rooms 에서 클라우드 간 자동 복제 관리하기 섹션에 설명된 대로 클라우드 간 자동 복제를 활성화해야 합니다.

예:

CALL samooha_by_snowflake_local_db.provider.create_or_update_cleanroom_listing($cleanroom_name);
Copy

데이터 등록 및 등록 취소

다음 명령을 사용하여 데이터베이스, 스키마, 오브젝트를 등록하고 등록을 취소합니다. 테이블과 뷰는 클린룸에 연결하기 전에 등록되어야 합니다. 데이터베이스나 스키마를 등록하면 해당 데이터베이스나 스키마에 있는 모든 오브젝트가 등록됩니다.

데이터 등록에 대해 자세히 알아보기

register_db

스키마:

PROVIDER

설명: 이 클린룸 환경에서 데이터베이스와 데이터베이스 내의 모든 오브젝트를 개별 클린룸에 연결할 수 있습니다. 이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 데이터베이스에 대한 USAGE 및 SELECT 권한을 SAMOOHA_APP_ROLE에 부여합니다.

이 프로시저를 호출하려면 데이터베이스에 MANAGE GRANTS 액세스 권한이 있어야 합니다. 그러면 이 클린룸 환경의 다른 공급자는 SELECT 권한이 없이도 이러한 오브젝트를 자신의 클린룸에 링크할 수 있습니다.

데이터 등록에 대해 자세히 알아보기

중요

이 프로시저는 호출된 후에 생성된 오브젝트를 등록하지 않습니다. 데이터베이스에 새 오브젝트가 추가되어 해당 오브젝트도 등록하려면 이 프로시저를 다시 호출해야 합니다.

인자:

  • db_name (string) - 등록할 데이터베이스의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE_GRANTS>;
CALL samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

register_schema

스키마:

LIBRARY

설명: register_db 와 유사하지만, 스키마 수준에서 작동합니다. 이 프로시저를 호출하려면 스키마에 대한 MANAGE GRANTS 권한이 있어야 합니다.

이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 스키마에 대한 USAGE 및 SELECT 권한을 SAMOOHA_APP_ROLE에 부여합니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)를 등록하려면 library.register_managed_access_schema 를 대신 사용합니다.

중요

이 프로시저는 호출된 후에 생성된 오브젝트를 등록하지 않습니다. 데이터베이스에 새 오브젝트가 추가되어 해당 오브젝트도 등록하려면 이 프로시저를 다시 호출해야 합니다.

인자:

  • schema_name (array of strings) - 등록할 하나 이상의 정규화된 스키마 이름의 배열입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

register_managed_access_schema

스키마:

LIBRARY

설명: register_schema와 유사하지만, WITH MANAGED ACCESS 매개 변수를 사용하여 생성한 스키마를 등록합니다. 이 프로시저를 호출하려면 스키마에 대한 MANAGE GRANTS 권한이 있어야 합니다.

이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 SAMOOHA_APP_ROLE 에 관리 스키마에 대한 사용 권한을 부여합니다.

중요

이 프로시저는 호출된 후에 생성된 오브젝트를 등록하지 않습니다. 데이터베이스에 새 오브젝트가 추가되어 해당 오브젝트도 등록하려면 이 프로시저를 다시 호출해야 합니다.

인자:

  • schema_name (array of strings) - 하나 이상의 정규화된 스키마 이름의 배열입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

register_objects

스키마:

LIBRARY

설명: 클린룸에 모든 유형의 테이블 및 뷰에 대한 액세스 권한을 부여하여 provider.link_datasets 를 호출하여 클린룸에 연결할 수 있도록 합니다. library.register_schema, library.register_managed_access_schema 또는 provider.register_db 를 호출하여 더 광범위한 오브젝트 그룹을 등록할 수 있습니다.

이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 SAMOOHA_APP_ROLE 에 오브젝트에 대한 사용 권한을 부여합니다.

이 프로시저를 호출하려면 오브젝트에 대한 MANAGE GRANTS 권한이 있어야 합니다. 이 프로시저는 데이터베이스를 등록하는 데 사용할 수 없습니다.

다른 데이터베이스의 오브젝트를 기반으로 하는 뷰를 등록하는 경우 기본 애플리케이션에 원본 오브젝트에 액세스할 수 있는 권한도 부여해야 합니다.

인자:

  • object_names (array) - 정규화된 오브젝트 이름의 배열입니다. 그런 다음 이러한 오브젝트를 클린룸에 연결할 수 있습니다.

반환: (string) 성공 또는 실패 메시지.

테이블과 뷰를 등록하려면 다음을 수행합니다.

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_objects(
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
  'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
    ]
 );
Copy

enable_external_tables_on_account

스키마:

LIBRARY

설명: 이 계정의 모든 Clean Rooms에서 Iceberg 또는 외부 테이블을 사용하도록 설정합니다. Iceberg 또는 외부 테이블을 어느 한 계정으로 연결할 수 있도록 하려면 공급자 및 컨슈머 계정에서 모두 ACCOUNTADMIN 으로 호출해야 합니다. 이 기능을 이 계정의 특정 Clean Rooms로 제한하려면 enable_external_tables_for_cleanroom 을 대신 호출하십시오.

성공하고 모든 보안 검사를 통과하면 클린룸의 새 패치 버전이 생성됩니다.

인자: 없음

반환: (string) 성공 또는 실패 메시지. 성공하면 보안 검사를 트리거하고 보안 검사에 성공할 경우 생성될 패치 번호도 제공합니다.

예:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Copy

enable_external_tables_for_cleanroom

스키마:

PROVIDER

설명: 공급자가 이 계정의 지정된 Clean Room에서 Iceberg 또는 외부 테이블을 연결할 수 있도록 설정합니다. 이 계정의 모든 Clean Rooms에 대해 Iceberg 및 외부 테이블을 허용하려면 enable_external_tables_on_account 를 대신 호출하십시오.

성공하면 Clean Room의 새 패치 버전 이 생성됩니다.

인자:

  • cleanroom_name(문자열) - 공급자가 Iceberg 또는 외부 테이블을 연결할 수 있는 Clean Room의 이름입니다.

반환: (string) 성공 또는 실패 메시지. 성공하면 보안 검사를 트리거하고 보안 검사에 성공할 경우 생성될 패치 번호도 제공합니다.

예:

CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
    $cleanroom_name);
Copy

unregister_db

스키마:

LIBRARY

설명: register_db 프로시저를 되돌리고 SAMOOHA_APP_ROLE 역할 및 Snowflake Data Clean Room 네이티브 애플리케이션에 부여된 데이터베이스 수준 부여를 제거합니다. 이렇게 하면 클린룸 UI의 선택기에서 모든 데이터베이스도 제거됩니다.

인자:

  • db_name (string) - 등록을 취소할 데이터베이스의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
Copy

unregister_schema

스키마:

LIBRARY

설명: 스키마를 등록 취소하여 사용자가 해당 테이블과 뷰를 클린룸에 링크할 수 없도록 합니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)를 등록 해지하려면 library.unregister_managed_access_schema 를 대신 사용합니다.

인자:

  • schema_name (array) - 등록을 취소할 스키마입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

unregister_managed_access_schema

스키마:

LIBRARY

설명: unregister_schema 와 유사하지만, WITH MANAGED ACCESS 매개 변수를 사용하여 생성한 스키마를 등록 취소합니다.

인자:

  • schema_name (array) - 등록을 취소할 관리되는 스키마입니다.

반환: (string) 성공 또는 실패 메시지.

예:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

unregister_objects

스키마:

LIBRARY

설명: 모든 유형의 테이블 및 뷰에 대한 클린룸 액세스를 취소합니다. 이 계정으로 관리되는 모든 클린룸의 사용자는 더 이상 오브젝트를 사용할 수 없게 됩니다.

인자:

  • object_names (array) - 액세스를 취소해야 하는 정규화된 오브젝트 이름의 배열입니다.

반환: (string) 성공 또는 실패 메시지.

테이블 및 뷰 등록을 취소하려면 다음을 수행합니다.

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_objects(
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
  'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
    ]
  );
Copy

정책 관리하기

데이터 Clean Rooms의 조인 정책은 Snowflake 전체 조인 정책과 동일하지 않습니다. Clean Rooms에 대한 조인 정책은 이 프로시저를 통해서만 설정되며, Clean Rooms 외부의 테이블에 설정된 조인 정책은 Clean Rooms에서 무시됩니다.

Clean Rooms의 테이블 정책에 대해 자세히 알아보십시오.

view_join_policy

스키마:

PROVIDER

설명: 현재 클린룸에 적용된 조인 정책을 표시합니다.

인자:

  • cleanroom_name (string) - 쿼리할 클린룸의 이름입니다.

반환: (table) 클린룸의 모든 테이블 또는 뷰에서 조인 가능한 행 목록입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
Copy

set_join_policy

스키마:

PROVIDER

설명: 이 클린룸 내에서 템플릿을 실행할 때 컨슈머가 조인할 수 있는 열을 지정합니다. 정책은 바꾸기 전용 이므로 프로시저를 다시 호출하면 이전에 설정된 조인 정책이 새 정책으로 완전히 바뀝니다.

중요

조인 정책은 템플릿이 행을 조인하기 위해 join_policy 또는 join_and_column_policy JinjaSQL 필터를 적용하는 경우에만 적용됩니다.

참고

데이터 클린룸의 조인 정책은 Snowflake 전체 조인 정책과 동일하지 않습니다. 클린룸에 대한 조인 정책은 이 프로시저를 통해서만 설정되며, 클린룸 외부의 테이블에 설정된 조인 정책은 클린룸에서 무시됩니다.

인자:

  • cleanroom_name (string) - 조인 정책을 적용해야 하는 클린룸의 이름입니다.

  • table_and_col_names (array of strings) - database_name.schema_name.table_or_view_name:column_name 형식의 정규화된 열 이름. .과 : 마크의 올바른 사용에 유의하십시오.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_join_policy(
  $cleanroom_name, 
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
    'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL'
  ]
);
Copy

공급자 템플릿 관리하기

다음 명령을 사용하여 이 클린룸에서 지원되는 템플릿/분석을 추가합니다.

view_added_templates

스키마:

PROVIDER

설명: 클린룸에서 공급자가 추가한 템플릿을 봅니다. 이 공급자의 모든 클린룸에 있는 모든 템플릿을 나열하는 방법은 없습니다.

인자:

  • cleanroom_name (string) - 쿼리할 클린룸입니다.

반환: (table) - 지정된 클린룸에서 사용 가능한 템플릿 목록과 각 템플릿에 대한 세부 정보입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
Copy

view_template_definition

스키마:

PROVIDER

설명: 특정 템플릿에 대한 정보를 표시합니다. 공급자 템플릿을 보는 컨슈머는 consumer.view_template_definition 을 사용해야 합니다.

인자:

  • cleanroom_name (string) - 이 템플릿이 있는 클린룸의 이름입니다.

  • template_name (string) - 정보를 요청할 템플릿의 이름입니다.

반환: 템플릿 정의 (string)

예:

CALL samooha_by_snowflake_local_db.provider.view_template_definition(
  $cleanroom_name,
  $template_name);
Copy

add_templates

스키마:

PROVIDER

설명: 클린룸에 템플릿 목록을 추가합니다. 기존 템플릿 목록은 대체되지 않습니다.

인자:

  • cleanroom_name (string) - 템플릿을 추가할 클린룸의 이름입니다.

  • template_names(문자열 배열) - 추가할 템플릿의 이름입니다. Snowflake에서 제공하는 템플릿 전용입니다. 사용자 지정 템플릿을 추가하려면 add_custom_sql_template을 호출하세요.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.add_templates(
  $cleanroom_name,
  ['my_custom_template']);
Copy

clear_template

스키마:

PROVIDER

설명: 클린룸에서 지정된 템플릿을 제거합니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • template_name (string) - 해당 클린룸에서 제거할 템플릿의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.clear_template(
  $cleanroom_name,
  'prod_custom_template');
Copy

clear_all_templates

스키마:

PROVIDER

설명: 클린룸에 추가된 모든 템플릿을 제거합니다.

인자:

  • cleanroom_name (string) - 모든 템플릿을 제거할 클린룸의 이름입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
Copy

set_column_policy

스키마:

PROVIDER

설명: 클린룸에서 지정된 템플릿이 비조인 행으로 사용할 수 있는 데이터의 열을 설정합니다. 클린룸에서 열을 사용하려면 여기 또는 set_join_policy 에서 열을 선언해야 합니다. 여기에 나열된 열은 조인 열을 제외하고 템플릿의 어느 곳에서나 사용할 수 있습니다. 열 정책과 조인 정책 모두에 열을 목록에 올릴 수 없습니다.

기본적으로 테이블의 열 정책은 비어 있으므로 결과에서 열을 볼 수 없습니다.

이 프로시저는 완전 대체 동작이므로 호출될 때마다 이전 열 목록을 완전히 덮어씁니다.

열 정책 검사는 SQL 쿼리를 구문 분석하여 데이터에 대해 실행되는 모든 허용되지 않은 열에 대해 수행됩니다. 와일드카드가 포함된 쿼리는 이러한 검사를 통해 포착되지 않을 수 있으므로 분석 템플릿을 설계할 때 신중을 기해야 합니다. 일부 열은 절대로 쿼리해서는 안 되는 경우, 이러한 민감한 열을 제거한 소스 테이블의 뷰를 만들고 대신 해당 뷰에 링크하는 것을 고려하십시오.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • analysis_and_table_and_cols (array of strings) - 템플릿에서 사용할 수 있는 열의 배열입니다. 형식은 template_name:full_table_name:column_name 입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);

 -- Same example, but using a variable name for the template.
CALL samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
[$template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
 $template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
 $template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);
Copy

view_column_policy

스키마:

PROVIDER

설명: 현재 클린룸에서 활동 중인 열 정책을 목록으로 표시합니다. 열 정책은 어떤 템플릿에 어떤 테이블 열을 표시할 수 있는지 알려줍니다.

**인자:**cleanroom_name (String)

반환: (table) 어떤 템플릿에서 어떤 열을 사용할 수 있는지입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
Copy

add_custom_sql_template

스키마:

PROVIDER

설명: 클린룸에 사용자 지정 JinjaSQL 템플릿을 추가합니다. 이렇게 하면 컨슈머가 템플릿을 호출할 수 있습니다. 사용자 지정 템플릿을 만드는 방법을 알아보십시오.

이 API를 두 번 이상 호출하여 여러 사용자 지정 템플릿을 클린룸에 추가할 수 있습니다. 이 프로시저는 이 클린룸에서 같은 이름의 이전 템플릿을 덮어씁니다.

컨슈머가 템플릿을 사용하여 공급자에게 결과를 다시 활성화하는 경우, 명령은 다음 요구 사항을 충족해야 합니다.

  • 사용자 정의 템플릿의 이름은 activation 이라는 문자열로 시작해야 합니다. 예를 들어, activation_custom_template 일 수 있습니다.

  • 템플릿은 cleanroom.activation_data_ 로 시작하는 테이블을 생성해야 합니다. 예를 들어, CREATE TABLE cleanroom.activation_data_analysis_results AS ... 일 수 있습니다.

  • 템플릿은 정의에서 생성된 테이블 이름의 고유 부분, 즉 cleanroom.activation_data_ 에 추가된 문자열을 반환해야 합니다. 예를 들어, return 'data_analysis_results' 일 수 있습니다.

인자:

  • cleanroom_name (string) - 이 템플릿이 적용되는 클린룸의 이름입니다.

  • template_name (string) - 템플릿 이름입니다. 모두 소문자, 숫자, 공백 또는 밑줄이어야 합니다. 활성화 템플릿의 이름은 “활성화”로 시작해야 합니다.

  • 템플릿 (string) - JinjaSQL 템플릿입니다.

  • sensitivity (Float, 선택 사항) - 이 Clean Room에 차등 개인정보 보호가 활성화된 경우 이 템플릿이 반환하는 데이터에 적용되는 차등 개인정보 보호 노이즈의 양을 제어합니다. 0보다 큰 숫자여야 합니다. 기본값은 1.0입니다. 이 인자를 적용하려면 이 Clean Room에서 차등 개인정보 보호 작업이 실행 중이어야 합니다.

  • consumer_locators (Array of string, 선택 사항) - 하나 이상의 계정 로케이터 배열입니다. 있는 경우 이 템플릿은 해당 계정에 대해서만 클린룸에 추가됩니다. 나중에 provider.restrict_template_options_to_consumers 를 호출하여 이 목록을 수정할 수 있습니다. 컨슈머 목록을 지정하지 않으면 모든 컨슈머가 지정된 클린룸에서 사용자 지정 템플릿을 사용할 수 있습니다.

  • is_obfuscated (Boolean, 선택 사항) - TRUE 인 경우 컨슈머가 템플릿 본문을 볼 수 없도록 합니다. 난독화된 템플릿을 실행하려면 Snowflake Enterprise Edition 이상을 사용해야 합니다. 이 템플릿을 공급자 실행 분석에 사용하는 경우, 컨슈머는 is_obfuscated 상태를 변경할 때마다 분석 요청을 다시 승인해야 합니다. is_obfuscatedsensitivity 와 함께 사용할 수 없습니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.add_custom_sql_template(
    $cleanroom_name, 'prod_custom_template', 
    $$
SELECT 
    identifier({{ dimensions[0] | column_policy }}) 
FROM 
    identifier({{ my_table[0] }}) c 
    inner join 
    identifier({{ source_table[0] }}) p 
    ON 
        c.identifier({{ consumer_id  }}) = identifier({{ provider_id | join_policy }}) 
    {% if where_clause %}
      WHERE {{ where_clause | sqlsafe | join_and_column_policy }}
    {% endif %};
    $$);
Copy

add_ui_form_customizations

스키마:

PROVIDER

설명: 클린룸 UI에서 클린룸을 실행할 때 클린룸의 템플릿에 대한 사용자 지정 양식을 정의합니다. 이는 컨슈머가 테이블이나 열과 같은 템플릿 매개 변수를 선택하도록 할 때 유용합니다. 최소한 template_information 인자에서 display_name, description, methodology에 대한 값을 지정해야 합니다.

특히 열 선택기가 테이블 선택에 따라 채워지는 경우 테이블 선택 요소를 열 선택 요소 앞에 배치하는 것이 좋습니다.

사용자 지정 템플릿에 대한 사용자 입력 양식을 디자인하는 방법을 알아보세요.

이 함수를 호출한 후 Clean Room을 업데이트해야 합니다. UI 를 업데이트한 후 provider.create_or_update_cleanroom_listing 을 호출하지 않으면 공동 작업자에게는 업데이트 내용이 표시되지 않습니다.

인자:

  • cleanroom_name (string): 이 템플릿이 포함된 클린룸의 이름입니다. 제출된 양식은 지정된 클린룸의 지정된 템플릿에만 적용됩니다.

  • template_name(문자열): 이 UI가 적용되는 템플릿의 이름입니다. 이는 template_information.display_name 필드를 사용해 지정되어 사용자가 볼 수 있는 제목이 아닙니다.

  • template_information(Dict): 클린룸 UI에 표시할 템플릿에 대한 메타 정보입니다. 다음 속성을 정의해야 하거나 정의할 수 있습니다.

    • display_name(필수): 클린룸 UI에서 템플릿의 표시 이름입니다.

    • 설명 (필수): 템플릿에 대한 설명입니다.

    • methodology(필수): 인자에 대한 설명과 결과입니다.

    • warehouse_hints (object): 분석을 실행하는 데 사용할 웨어하우스 유형을 추천합니다. 다음 필드가 있는 오브젝트입니다.

      • warehouse_size: 유효한 값은 CREATE WAREHOUSEwarehouse_size 섹션을 참조하십시오.

      • snowpark_optimized (부울): Snowpark 최적화 웨어하우스를 사용하여 쿼리를 처리할지 여부입니다. 대부분의 머신 러닝 사용 사례에서 Snowflake는 TRUE를 권장합니다.

    • render_table_dropdowns (오브젝트): 사용자가 쿼리에 사용할 공급자 또는 컨슈머 테이블을 선택할 수 있는 기본 드롭다운 목록을 표시할지 여부입니다. 이는 다음 필드가 있는 오브젝트입니다.

      • render_consumer_table_dropdown: (부울) TRUE인 경우 기본 컨슈머 테이블 선택기를 표시합니다. FALSE인 경우 컨슈머 테이블 선택기를 숨깁니다. 템플릿은 my_table 템플릿 변수를 사용하여 선택한 값에 목록으로 액세스할 수 있습니다. 요소가 references=CONSUMER_TABLES로 설정된 경우 기본값은 FALSE이고, 그렇지 않은 경우 기본값은 TRUE입니다.

      • render_provider_table_dropdown: (부울) TRUE인 경우 기본 공급자 테이블 선택기를 표시합니다. FALSE인 경우 공급자 테이블 선택기를 숨깁니다. 템플릿은 source_table 템플릿 변수를 사용하여 선택한 값에 목록으로 액세스할 수 있습니다. 요소가 references=PROVIDER_TABLES로 설정된 경우 기본값은 FALSE이고, 그렇지 않은 경우 기본값은 TRUE입니다.

    • activation_template_name: (문자열) 이 클린룸에 있는 활성화 템플릿의 이름입니다. cleanroom 접두사 없이 템플릿 이름을 사용합니다. 활성화 템플릿에 대해 알아보세요.

    • enabled_activations: (String) 사용 설정된 활성화의 종류. 가능한 값: 컨슈머, 공급자. 기본값 없음. activation_template_name 을 지정한 경우 제공해야 합니다.

  • details(Dict, 선택 사항): 템플릿에 값을 전달하는, 사용자가 구성 가능한 입력 필드를 정의합니다. 이는 키 - 오브젝트 쌍의 사전으로, 각 쌍은 하나의 양식 요소를 나타냅니다. 키는 연결된 JinjaSQL 템플릿에 사용할 수 있는 변수 이름이며, 값은 양식 요소를 정의하는 오브젝트입니다. 템플릿 변수에 여기에 정의된 동등한 양식 요소가 없는 경우 클린룸은 기본 양식 요소를 자동으로 생성합니다. 각 오브젝트는 다음 필드를 정의할 수 있습니다.

    <field_name>: {
      ['display_name': <string>,]
      ['order': <number>,]
      ['description': <string>,]
      ['type': <enum>,]
      ['default': <value>,]
      ['choices': <string array>,]
      ['infoMessage': <string>,]
      ['size': <enum>,]
      ['required': <bool>,]
      ['group': <string>,]
      ['references': <array of string>,]
      ['provider_parent_table_field':  <string>,]
      ['consumer_parent_table_field': <string>]
    }
    
    Copy
    • display_name: UI 양식에 이 항목에 대한 텍스트를 레이블로 지정합니다.

    • order: 1부터 시작하는 순서로, 이 요소가 양식으로 표시되어야 합니다. 지정하지 않으면 요소는 오브젝트에 나타나는 순서대로 렌더링됩니다.

    • description: 요소 목적에 대한 설명으로, 레이블 아래에 표시됩니다. 여기에 간단한 도움말이나 예제를 제공합니다. 제공하지 않으면 아무것도 표시되지 않습니다.

    • 유형: UI 요소의 유형입니다. 입력 필드에 참조 가 지정된 경우 이 항목을 생략합니다(유형은 자동으로 결정됨). 지원되는 값:

      • 모두 (기본값): 일반 텍스트 입력 필드입니다.

      • boolean: True/False 선택기

      • 정수: 화살표를 사용하여 숫자를 변경

      • multiselect: 드롭다운 목록에서 여러 항목을 선택합니다.

      • dropdown: 드롭다운 목록에서 하나의 항목을 선택합니다

      • 날짜: 날짜 선택기

    • 기본값: 이 요소의 기본값입니다

    • choices: (array of strings) dropdown 및 multiselect 요소에 대한 선택 목록

    • infoMessage: 요소 옆에 표시되는 정보성 hovertext. 제공하지 않으면 도구 설명이 제공되지 않습니다.

    • 크기: 요소 크기입니다. 지원되는 값: XS, S, M, L, XL

    • 필수: 사용자가 값을 요구하는지 여부. TRUE 또는 FALSE 를 지정합니다.

    • group: UI에서 항목을 그룹화하는 데 사용되는 그룹 이름입니다. UI에서 함께 그룹화해야 하는 항목에 대해 동일한 그룹 이름을 사용합니다. 기본 드롭다운 목록을 숨기면 사용자 지정 템플릿에서 {{ source_table }}{{ my_table}} 특수 인자를 사용한 다음, 원하는 테이블이 포함된 자체 드롭다운 목록을 정의합니다. 사용자 지정 템플릿을 정의할 때 이러한 특수 변수를 사용하는 방법에 대한 자세한 내용은 provider.add_custom_sql_template 섹션을 참조하세요.

    • references: 클린룸에서 지정된 유형의 테이블 또는 열로 드롭다운 목록을 채웁니다. 사용하는 경우, typemultiselect 또는 dropdown 중 하나여야 합니다. 다음 문자열 값이 지원됩니다.

      • PROVIDER_TABLES: 클린룸에 있는 모든 공급자의 테이블을 나열합니다. 지정된 경우 render_table_dropdowns.render_provider_table_dropdown은 FALSE여야 합니다.

      • PROVIDER_JOIN_POLICY: provider_parent_table_field 요소에서 현재 선택된 테이블에 대한 공급자의 조인 정책에 있는 모든 열을 나열합니다.

      • PROVIDER_COLUMN_POLICY: 현재 템플릿과 provider_parent_table_field 요소에서 선택한 테이블에 대한 공급자의 열 정책에 있는 모든 열을 나열합니다.

      • PROVIDER_ACTIVATION_POLICY: 공급자의 활성화 정책에 있는 모든 열을 나열합니다.

      • CONSUMER_TABLES: 클린룸의 모든 컨슈머 테이블을 나열합니다. 지정된 경우 render_table_dropdowns.render_consumer_table_dropdown은 FALSE여야 합니다.

      • CONSUMER_COLUMNS: consumer_parent_table_field로 지정된 컨슈머 테이블의 모든 열을 나열합니다. 컨슈머가 이러한 열에 조인 및 열 정책을 적용할 수 있으므로 공급자 실행 템플릿에서 컨슈머 열 참조를 사용하면 안 됩니다. 공급자 실행 템플릿의 경우 CONSUMER_JOIN_POLICY 또는 CONSUMER_COLUMN_POLICY를 대신 사용하세요.

      • CONSUMER_JOIN_POLICY: consumer_parent_table_field 요소에서 선택한 테이블에서 컨슈머의 조인 정책에 있는 모든 열을 나열합니다.

      • CONSUMER_COLUMN_POLICY: 현재 템플릿과 consumer_parent_table_field 필드에서 선택한 테이블에 대한 컨슈머의 열 정책에 있는 모든 열을 나열합니다.

    • provider_parent_table_field: 사용자가 공급자 테이블을 선택하는 UI 요소의 이름입니다. 여기에 테이블 이름 자체를 제공하지 마세요. referencesPROVIDER_COLUMN_POLICY 또는 PROVIDER_JOIN_POLICY로 설정된 경우에만 사용합니다. 기본 공급자 테이블 선택기를 참조하려면 여기에 source_table을 지정하고 render_table_dropdowns.render_provider_table_dropdown을 TRUE로 설정하세요.

    • consumer_parent_table_field: 사용자가 컨슈머 테이블을 선택하는 UI 요소의 이름입니다. 여기에 테이블 이름 자체를 제공하지 마세요. referencesCONSUMER_COLUMNS, CONSUMER_JOIN_POLICY 또는 CONSUMER_COLUMN_POLICY로 설정된 경우에만 사용합니다. 기본 컨슈머 테이블 선택기를 참조하려면 여기에 my_table을 지정하고 render_table_dropdowns.render_provider_table_dropdown을 TRUE로 설정하세요.

  • output_config(Dict): 웹 애플리케이션에서 템플릿 결과를 그래픽으로 표시하는 방법을 정의합니다. 제공하지 않으면 결과가 그래프로 표시되지 않고 테이블로만 표시됩니다. 그래프를 원하지 않으면 이 인자에 빈 오브젝트 {}를 제공하세요. 허용되는 필드는 다음과 같습니다.

    • measure_columns: 클린룸 UI에서 생성된 그래프에서 사용할 측정값 및 차원이 포함된 열의 이름입니다.

    • default_output_type: 결과를 표시할 기본 형식입니다. 사용자는 일반적으로 데이터가 적절한 형식인 경우 UI 에서 표시 형식을 변경할 수 있습니다. 지원되는 데이터 타입:

      • TABLE: (기본값) 테이블 형식

      • BAR: 다양한 카테고리를 비교하기에 좋은 막대 차트

      • LINE: 시간 경과에 따른 추세 또는 연속 데이터를 표시하는 데 좋은 꺾은선형 차트

      • PIE: 비율 또는 백분율을 표시하는 데 적합한 원형 차트

다음 테이블은 충돌할 수 있는 값에 대한 details 오브젝트에서 허용되는 값의 행렬을 보여줍니다.

타입

references

provider_parent_table_field

consumer_parent_table_field

render_provider_table_dropdown

render_consumer_table_dropdown

multiselect 또는 dropdown

PROVIDER_TABLES

허용되지 않음

허용되지 않음

FALSE

TRUE 또는 FALSE

PROVIDER_JOIN_POLICY

source_table

허용되지 않음

TRUE

TRUE 또는 FALSE

PROVIDER_JOIN_POLICY

parent field name

허용되지 않음

TRUE 또는 FALSE

TRUE 또는 FALSE

PROVIDER_COLUMN_POLICY

source_table

허용되지 않음

TRUE

TRUE 또는 FALSE

PROVIDER_COLUMN_POLICY

parent field name

허용되지 않음

TRUE 또는 FALSE

TRUE 또는 FALSE

CONSUMER_TABLES

허용되지 않음

허용되지 않음

TRUE 또는 FALSE

FALSE

CONSUMER_COLUMNS

허용되지 않음

my_table 또는 parent field name

TRUE 또는 FALSE

TRUE

CONSUMER_JOIN_POLICY

허용되지 않음

my_table 또는 parent field name

TRUE 또는 FALSE

TRUE

CONSUMER_COLUMN_POLICY

허용되지 않음

my_table 또는 parent field name

TRUE 또는 FALSE

TRUE

PROVIDER_ACTIVATION_POLICY

허용되지 않음

허용되지 않음

TRUE 또는 FALSE

TRUE 또는 FALSE

반환: (string) 성공 또는 실패 메시지.

예:

-- Specify the display name, description, and warehouse, and hide the default table dropdown lists. 
-- Define the following two fields in the UI:
--   A provider table selector that shows all provider tables. Chosen tables can be accessed by the template with the variable 'a_provider_table'
--     (This dropdown list is equivalent to setting `render_table_dropdowns.render_provider_table_dropdown: True`)
--   A column selector for the tables chosen in 'a_provider_table'. Chosen columns can be accessed by the template with the variable 'a_provider_col'

CALL samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
    $cleanroom_name,
    'prod_custom_template',
    {
        'display_name': 'Custom Analysis Template',
        'description': 'Use custom template to run a customized analysis.',
        'methodology': 'This custom template dynamically renders a form for you to fill out, which are then used to generate a customized analysis fitting your request.',
        'warehouse_hints': {
            'warehouse_size': 'xsmall',
            'snowpark_optimized': FALSE
        },
        'render_table_dropdowns': {
            'render_consumer_table_dropdown': false,
            'render_provider_table_dropdown': false
        },
        'activation_template_name': 'activation_my_template',
        'enabled_activations': ['consumer', 'provider']  
    },    
    {
        'a_provider_table': {
            'display_name': 'Provider table',
            'order': 3,
            'description': 'Provider table selection',
            'size': 'S',
            'group': 'Seed Audience Selection',
            'references': ['PROVIDER_TABLES'],
            'type': 'dropdown'
        },
        'a_provider_col': {
            'display_name': 'Provider column',
            'order': 4,
            'description': 'Which col do you want to count on',
            'size': 'S',
            'group': 'Seed Audience Selection',
            'references': ['PROVIDER_COLUMN_POLICY'],
            'provider_parent_table_field': 'a_provider_table',
            'type': 'dropdown'
        }
    },
    {
        'measure_columns': ['col1', 'col2'],
        'default_output_type': 'PIE'
    }
);
Copy

restrict_template_options_to_consumers

스키마:

PROVIDER

설명: 지정된 클린룸에서 지정된 템플릿에 액세스할 수 있는 사용자를 제어합니다. 이 프로시저는 이전에 클린룸/템플릿 쌍에 대해 다른 프로시저에서 지정한 액세스 목록을 재정의합니다.

참고

이 프로시저를 호출하여 생성한 제한은 클린룸 UI에서 예상대로 동작하지 않을 수 있습니다. 클린룸 UI에서 사용할 수 있는 클린룸에서는 이 프로시저를 호출해서는 안 됩니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름.

  • access_details (object) - 템플릿의 이름과 해당 클린룸에서 해당 템플릿에 액세스할 수 있는 사용자입니다. 템플릿을 지정하면 여기에 나열된 사용자만 해당 클린룸에서 해당 템플릿에 액세스할 수 있습니다. 템플릿당 1개의 하위 오브젝트가 있는 오브젝트로, {'template_name': ['user1_locator','user2_locator','userN_locator']} 형식을 갖습니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.restrict_template_options_to_consumers(
    $cleanroom_name,
    {
        'prod_template_1': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
    }
);
Copy

컨슈머 정의 템플릿

다음 APIs를 사용하면 클린룸에 템플릿을 추가하라는 컨슈머의 요청을 승인하거나 거부할 수 있습니다. 컨슈머가 정의한 템플릿은 공급자가 컨슈머의 추가 요청을 승인한 경우에만 클린룸에 추가됩니다. 자세한 내용은 컨슈머가 작성한 사용자 지정 템플릿 섹션을 참조하세요.

list_pending_template_requests

스키마:

PROVIDER

설명: Clean Room에 컨슈머 정의 템플릿을 추가하려는 컨슈머의 모든 승인되지 않은 요청을 나열합니다. 여기에는 보류 중, 승인된, 거부된 요청이 포함됩니다. 이 프로시저를 사용하여 보류 중인 요청을 확인하고 승인(provider.approve_template_request)하거나 거부(provider.reject_template_request)할 수 있습니다.

인자:

  • cleanroom_name (string) - 이 클린룸에 템플릿을 추가하려는 컨슈머의 요청을 봅니다.

반환: 다음 값을 포함한 테이블을 반환합니다.

  • request_id(문자열) - 요청의 ID로, 요청을 수락하거나 거부하는 데 필요합니다.

  • consumer_locator(문자열) - 요청하는 사람의 계정 로케이터입니다.

  • template_name(문자열) - 컨슈머 제공 템플릿의 이름입니다.

  • template_definition(문자열) - 컨슈머 제안 템플릿의 전체 정의입니다.

예:

CALL samooha_by_snowflake_local_db.provider.list_pending_template_requests($template_name);
Copy

list_template_requests

스키마:

PROVIDER

설명: 클린룸에 컨슈머 정의 템플릿을 추가하려는 컨슈머의 모든 요청을 목록으로 표시합니다. 여기에는 보류 중 요청, 승인된 요청, 거부된 요청이 포함됩니다. 이를 사용하여 보류 중인 요청을 확인하고 승인(provider.approve_template_request)하거나 거부(provider.reject_template_request)할 수 있습니다.

인자:

  • cleanroom_name (string) - 이 클린룸에 템플릿을 추가하려는 컨슈머의 요청을 봅니다.

반환: 다음 값을 포함한 테이블을 반환합니다.

  • request_id(문자열) - 요청의 ID로, 요청을 수락하거나 거부하는 데 필요합니다.

  • consumer_identifier(문자열) - 요청하는 사람의 계정 로케이터입니다.

  • template_name(문자열) - 컨슈머 제공 템플릿의 이름입니다.

  • template_definition(문자열) - 컨슈머 제안 템플릿의 전체 정의입니다.

  • status(문자열) - 요청 상태: PENDING, APPROVED, REJECTED.

예:

CALL samooha_by_snowflake_local_db.provider.list_template_requests($template_name);
Copy

approve_template_request

스키마:

PROVIDER

설명: 클린룸에 템플릿을 추가하라는 요청을 승인합니다.

인자:

  • cleanroom_name (string) - 사용자가 템플릿을 추가하려는 클린룸의 이름입니다.

  • request_id (string) - 승인할 요청의 ID 입니다. provider.list_template_requests 를 호출하여 요청 IDs 를 확인합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.approve_template_request($cleanroom_name, 
    '815324e5-54f2-4039-b5fb-bb0613846a5b');
Copy

approve_multiple_template_requests

스키마:

PROVIDER

설명: Clean Room에 템플릿을 추가하기 위한 여러 컨슈머의 요청을 승인합니다. 모든 요청은 단일 Clean Room에 대한 요청이어야 합니다.

인자:

  • cleanroom_name (String) - 이 요청이 적용되는 Clean Room의 이름입니다.

  • request_ids (Array of strings) - 승인할 모든 템플릿 요청의 ID입니다. 요청 ID 를 받으려면 provider.list_template_requests 를 호출하십시오.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.approve_multiple_template_requests(
  $cleanroom_name, 
  ['cfd538e2-3a17-48e3-9773-14275e7d2cc9',
   '2982fb0a-02b7-496b-b1c1-56e6578f5eac']);
Copy

reject_template_request

스키마:

PROVIDER

설명: 클린룸에 템플릿을 추가하라는 요청을 거부합니다.

인자:

  • cleanroom_name (string) - 사용자가 템플릿을 추가하려는 클린룸의 이름입니다.

  • request_id (string) - 거부할 요청의 ID 입니다. provider.list_template_requests 를 호출하여 요청 IDs 를 확인합니다.

  • reason_for_rejection (string) - 요청을 거부한 이유입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.reject_template_request(
  $cleanroom_name,
  'cfd538e2-3a17-48e3-9773-14275e7d2cc9',
  'Failed security assessment');
Copy

reject_multiple_template_requests

스키마:

PROVIDER

설명: Clean Room에 템플릿을 추가하기 위한 여러 컨슈머의 요청을 거절합니다. 모든 요청은 동일한 Clean Room에 대한 요청이어야 합니다.

인자:

  • cleanroom_name (string) - 이 요청이 적용되는 Clean Room의 이름입니다.

  • rejected_templates (array of objects) - 다음 필드가 있는 오브젝트 배열(거부당 하나씩)입니다.

    • request_id (string) - 거부할 요청의 ID 입니다. 요청 ID 를 받으려면 provider.list_template_requests 를 호출하십시오.

    • reason_for_rejection(string) - 요청이 거부된 이유에 대한 자유 텍스트 설명입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.reject_multiple_template_requests($cleanroom_name,
  [OBJECT_CONSTRUCT('request_id', '815324e5-54f2-4039-b5fb-bb0613846a5b', 'reason_for_rejection', 'Failed security assessment'),
   OBJECT_CONSTRUCT('request_id', '2982fb0a-02b7-496b-b1c1-56e6578f5eac', 'reason_for_rejection', 'Some other reason')
  ]);
Copy

템플릿 체인

템플릿 체인을 생성하고 관리하려면 다음 명령을 사용합니다.

add_template_chain

스키마:

PROVIDER

설명: 새 템플릿 체인을 생성합니다. 이전에 존재하는 템플릿만 템플릿 체인에 추가할 수 있습니다. 템플릿 체인이 생성된 후에는 수정할 수 없지만 같은 이름의 새 템플릿 체인을 만들어 이전 템플릿 체인을 덮어쓸 수는 있습니다.

인자:

  • cleanroom_name (string) - 템플릿 체인을 추가해야 하는 클린룸의 이름입니다.

  • template_chain_name (string) - 템플릿 체인의 이름입니다.

  • 템플릿(오브젝트 배열) - 템플릿당 하나씩의 오브젝트 배열입니다. 오브젝트에는 다음 필드가 포함될 수 있습니다.

    • template_name (string) - 템플릿 체인에 추가할 템플릿을 지정합니다. provider.add_template_chain 을 호출하여 템플릿을 클린룸에 이미 추가해야 합니다.

    • cache_results (boolean) - 템플릿 체인의 다른 템플릿이 액세스할 수 있도록 템플릿의 결과를 임시로 저장할지 여부를 결정합니다. 결과를 캐시하려면 TRUE로 지정합니다.

    • output_table_name (string) - cache_results = TRUE 인 경우 템플릿 결과가 저장되는 Snowflake 테이블의 이름을 지정합니다.

    • jinja_output_table_param (string) - cache_results = TRUE 인 경우 output_table_name 에 저장된 결과를 수락하기 위해 다른 템플릿이 포함해야 하는 Jinja 매개 변수의 이름을 지정합니다.

    • cache_expiration_hours (integer) - cache_results = TRUE 인 경우 캐시의 결과가 삭제될 때까지 걸리는 시간을 지정합니다. 캐시가 만료되면 다음에 템플릿 체인이 실행될 때 템플릿의 결과로 캐시가 새로 고쳐집니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.add_template_chain(
  $cleanroom_name,
  'my_chain',
  [
    {
      'template_name': 'crosswalk',
      'cache_results': True,
      'output_table_name': 'crosswalk',
      'jinja_output_table_param': 'crosswalk_table_name',
      'cache_expiration_hours': 2190
    },
    {
      'template_name': 'transaction_insights',
      'cache_results': False
    }
  ]
);
Copy

view_added_template_chains

스키마:

PROVIDER

설명: 지정된 클린룸에 있는 템플릿 체인을 목록으로 표시합니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

반환: (table) 이 클린룸에 추가된 모든 템플릿 체인에 대한 설명입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
Copy

view_template_chain_definition

스키마:

PROVIDER

설명: 템플릿 체인의 정의를 반환합니다.

인자:

  • cleanroom_name (string) - 이 템플릿 체인과 연결된 클린룸의 이름입니다.

  • template_chain_name (string) - 이 클린룸과 연결된 템플릿 체인의 이름입니다.

반환: (table) 지정된 템플릿 체인에 대한 설명.

예:

CALL samooha_by_snowflake_local_db.provider.view_template_chain_definition(
  $cleanroom_name,
  'my_chain');
Copy

clear_template_chain

스키마:

PROVIDER

설명: 지정된 클린룸에서 지정된 템플릿 체인을 삭제합니다. 체인은 어디에도 저장되지 않으므로 체인을 다시 생성하려면 처음부터 다시 생성해야 합니다.

인자:

  • cleanroom_name (string) - 이 템플릿 체인이 할당된 클린룸입니다.

  • template_chain_name (string) - 이 클린룸에서 제거할 템플릿 체인입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'my_chain');
Copy

다중 공급자 분석

이러한 프로시저를 통해 다중 공급자 분석 을 활성화합니다.

enable_multiprovider_computation

스키마:

PROVIDER

설명: 이 프로시저는 지정된 사용자가 요청할 때 사용자의 클린룸 테이블들이 지정된 템플릿과 함께, 그리고 지정된 클린룸들의 테이블과 함께 사용될 수 있도록 합니다. 이 프로시저를 통해 컨슈머는 여러 클린룸의 데이터에 대해 쿼리를 실행할 수 있습니다. 이 프로시저는 이러한 요청을 자동으로 승인하지 않지만, 요청을 이 클린룸에 대한 다중 공급자 요청 로그에 로깅하여 지정된 사용자 및 클린룸에 대해 수동 또는 자동 승인 프로세스를 시작할 수 있도록 합니다.

이 Clean Room에 대해 consumer.prepare_multiprovider_flow 를 사용하는 모든 호출은 이 Clean Room에 대해 enable_multiprovider_computation 을 호출하기 전에도 저장되어 표시됩니다.

컨슈머가 계정의 여러 Clean Rooms에 액세스할 수 있도록 하려면 cleanroom_name 인자에 하나의 Clean Room을 지정하고 approved_other_cleanrooms 인자에 나머지 Clean Rooms를 지정하십시오.

이 프로시저를 사용하려면 Clean Room에 조인 정책을 설정해야 합니다.

요청이 로그되면 해당 사용자 및 쿼리에 대한 요청 흐름에 따라 승인이 이루어집니다.

요청 로그가 시작된 후에는 이를 비활성화할 수 있는 방법은 없지만 특정 사용자에 대한 자동 승인을 일시 중지한 다음(provider.suspend_multiprovider_tasks 를 호출하여 권한을 부여한 경우)에는 더 이상 요청을 승인하지 않을 수 있습니다.

인자:

  • cleanroom_name (string) - 소유하고 있는 클린룸의 이름입니다. 이 Clean Room의 모든 데이터는 consumer_account 에서 다중 공급자 요청을 통해 approved_other_cleanrooms 에 나열된 Clean Room과 공유할 수 있습니다.

  • consumer_account (string) - 요청을 할 수 있는 컨슈머의 계정 위치이며, 승인되면 approved_other_cleanrooms 에 나열된 모든 클린룸의 데이터와 결합하여 이 클린룸의 모든 테이블에 대해 쿼리를 실행합니다.

  • approved_other_cleanrooms (array of strings) - 이 클린룸의 데이터를 결합할 수 있는 정규화된 클린룸 이름의 배열입니다. 각 항목의 형식은 provider_org_name.provider_account_name.cleanroom_name 입니다. 중요: 각 Clean Room 설명에 계정 로케이터아니라 계정 이름 을 입력하십시오.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.enable_multiprovider_computation(
  $cleanroom_name,
  $consumer_account_locator,
  <org_name>.<account_locator>.<cleanroom_name>);
Copy

view_multiprovider_requests

스키마:

PROVIDER

설명: 지정된 계정 및 클린룸에서 다중 공급자 분석에 대한 모든 요청을 표시합니다. 여기에는 승인된 요청과 거부된 요청이 모두 포함됩니다. 공급자는 이 프로시저를 사용하여 요청을 폴링하여 수동으로 승인하기 위해 provider.process_multiprovider_request 를 호출하거나 지정된 Clean Room에서 지정된 컨슈머의 모든 요청을 확인하는 방법으로 요청을 폴링할 수 있습니다.

이 Clean Room 및 컨슈머 계정에 대해 enable_multiprovider_computation 을 호출해야 view_multiprovider_requests 를 호출할 수 있습니다.

인자:

  • cleanroom_name (String) - 이 Clean Room에서 지정된 컨슈머의 요청을 표시합니다.

  • consumer_account (String) - 지정된 Clean Room에서 이 컨슈머 계정 로케이터의 요청을 표시합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.view_multiprovider_requests(
  $cleanroom_name,
  $consumer_locator);
Copy

process_multiprovider_request

스키마:

PROVIDER

설명: 모든 검사가 통과되면 지정된 다중 공급자 쿼리의 실행을 승인합니다. 확인 사항에는 요청의 나이와 공급자가 provider.enable_multiprovider_computation 으로의 이전 호출에서 요청을 승인했는지 여부가 포함됩니다. 컨슈머는 쿼리를 실행하려면 consumer.execute_multiprovider_flow 를 호출해야 합니다. 요청이 승인되지 않으면 4시간 후에 요청이 제거됩니다.

기본적으로 모든 다중 공급자 요청은 이 프로시저를 사용하여 처리해야 합니다. 이 Clean Room에서 이 컨슈머의 모든 요청이 자동으로 승인되도록 하려면 request_id-1 을 지정합니다. 이 Clean Room에 있는 모든 컨슈머의 요청을 모두 승인하려면 provider.resume_multiprovider_tasks 를 호출하십시오. 이전에 승인된 요청을 취소하는 방법을 알아보십시오.

요청이 평가된 후 요청 및 평가 상태가 이 Clean Room의 로그 테이블 에 기록됩니다.

인자:

  • cleanroom_name (string) - 컨슈머가 다중 공급자 분석에 포함하도록 요청하는 클린룸의 이름입니다.

  • consumer_account (string) - 다중 공급자 분석을 요청하는 사용자의 컨슈머 계정 위치입니다. 이 로케이터는 이 클린룸과 요청에 나열된 다른 클린룸에 대해 provider.enable_multiprovider_computation 으로의 호출에서 승인을 받았어야 합니다.

  • request_id (string) - provider.view_multiprovider_requests 에서 ID 로 승인 요청. 이 Clean Room에서 이 컨슈머에 대한 모든 요청을 승인하려면 -1 로 전달하십시오.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.process_multiprovider_request(
  $cleanroom_name_1,
  $consumer_account_locator,
  $request_id);
Copy

suspend_multiprovider_tasks

스키마:

PROVIDER

설명: 지정된 Clean Room의 다중 공급자 쿼리에서 자동 검토 및 승인(적격 쿼리에 대해)을 중지합니다. Clean Room에 대한 다중 공급자 쿼리는 여전히 활성화되어 있지만, 이제 각 요청은 provider.process_multiprovider_request 를 호출하여 공급자가 명시적으로 승인해야 합니다.

모든 Clean Room의 기본 상태는 다중 공급자 자동 승인이 비활성화된 상태입니다. 활성화하려면 provider.resume_multiprovider_tasks 를 호출하십시오.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • consumer_account (String) - 이 Clean Room의 모든 템플릿에 대해 다중 공급자 요청을 일시 중단해야 하는 컨슈머의 계정 로케이터입니다. 나중에 이 Clean Room에서 이 사용자의 요청은 제거됩니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.suspend_multiprovider_tasks(
  $cleanroom_name,
  $consumer_locator);
Copy

resume_multiprovider_tasks

스키마:

PROVIDER

설명: 주어진 클린룸에서 주어진 사용자에 대한 다중 공급자 분석의 자동화된 검토 및 승인(적격 쿼리의 경우)을 활성화합니다. 자동 검토는 클린룸에 대해 기본적으로 비활성화되어 있습니다.

자동 승인을 중지하려면 provider.suspend_multiprovider_tasks 를 호출하십시오.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • consumer_account (String) - 이 Clean Room에서 여러 공급자의 요청을 큐에 넣을 컨슈머의 계정 로케이터입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.resume_multiprovider_tasks(
  $cleanroom_name,
  $consumer_locator);
Copy

활성화

활성화 는 공급자, 컨슈머 또는 서드 파티에게 결과를 내보내는 것을 의미합니다. 활성화에 대해 자세히 알아보십시오.

set_activation_policy

스키마:

PROVIDER

설명: 활성화 템플릿 내에서 사용할 수 있는 공급자 열을 정의합니다. 활성화 정책에 목록에 있는 열만 공급자의 데이터 세트에서 활성화할 수 있습니다. 활성화 정책을 설정하지 않으면 공급자 데이터가 활성화되지 않습니다.

이 프로시저를 호출하면 공급자가 설정한 이전 활성화 정책이 모두 지워집니다.

인자:

  • cleanroom_name (string) - 활동을 허용해야 하는 클린룸의 이름입니다.

  • columns (array of strings) - 이 클린룸의 활성화 템플릿에서는 여기에 나열된 열만 사용할 수 있습니다. 열 이름 형식은 template_name:fully_qualified_table_name:column_name 입니다. 점 .및 콜론 : 마커의 올바른 사용법에 유의하십시오.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_activation_policy('my_cleanroom', [ 
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',  
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Copy

update_activation_warehouse

스키마:

PROVIDER

설명: 공급자 활성화에서 결과를 출력 테이블로 암호 해독할 때 사용할 웨어하우스 크기를 지정합니다. 암호 해독에 사용되는 웨어하우스는 DCR_ACTIVATION_WAREHOUSE 입니다. 공급자가 이 웨어하우스에 대한 비용을 지불합니다.

인자:

  • size (String) - 웨어하우스 크기입니다. CREATE WAREHOUSE 명령에서 WAREHOUSE_SIZE 값 중 하나를 선택합니다.

반환: (문자열) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.update_activation_warehouse('LARGE');
Copy

setup_provider_activation_share_mount_task

스키마:

PROVIDER

설명: 공급자가 계정에 Clean Room UI 를 설치하지 않은 경우 공급자 활성화를 사용합니다.

provider.add_consumers 로 컨슈머를 추가한 후 호출합니다. 공급자 활성화를 구현하고 있는 동시에 귀하(공급자)가 Clean Room UI 를 설치하지 않은 경우에만 호출됩니다. (컨슈머가 UI 를 설치했는지 여부는 중요하지 않습니다.)

그러면 공급자 활성화에 필요한 컨슈머 공유를 비동기적으로 탑재하는 스레드가 시작됩니다. 이 코드는 공유를 동기적으로 탑재하고 코드를 차단하는 대신 비동기적으로 공유를 탑재하고 새 공동 작업자가 있는지 주기적으로 다시 확인합니다. 이 프로시저는 한 번만 호출하면 되며, 나중에 이 프로시저를 다시 호출할 필요 없이 공동 작업자를 추가할 수 있습니다.

인자:

  • frequency_minutes (Integer) - 이 Clean Room에 새로운 컨슈머가 있는지 얼마나 자주 다시 확인하여 해당 컨슈머에 대한 공유를 탑재할지 여부입니다. 권장 값은 15입니다.

반환: (String) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.setup_provider_activation_share_mount_task(15);
Copy

dcr_health.provider_run_provider_activation_history

설명: 지정된 클린룸에 대한 공급자 활성화 요청 기록을 반환합니다. 공급자와 컨슈머가 모두 시작한 공급자 활성화 요청이 표시됩니다. 이 프로시저는 공급자 활성화 관련 문제를 디버그하는 데 도움이 되는 추가 정보를 제공합니다.

인자:

  • cleanroom_name(문자열) - 활성화가 요청된 클린룸의 이름입니다. 사용자는 이 클린룸의 공급자 또는 컨슈머여야 합니다.

반환: (테이블) - 템플릿 및 세그먼트 이름, 상태, 컨슈머 계정 로케이터, 요청에서 반환된 모든 오류 메시지 등 각각에 대한 정보가 포함된 활성화 요청 목록입니다.

예:

CALL samooha_by_snowflake_local_db.dcr_health.provider_run_provider_activation_history(
  $cleanroom_name);
Copy

view_external_activation_history

스키마:

LIBRARY

설명: 현재 계정의 활성화 요청 기록을 봅니다.

인자: 없음

반환: 활성화 요청의 세부 정보 및 상태가 포함된 테이블.

:

CALL samooha_by_snowflake_local_db.library.view_external_activation_history();
Copy

공급자로 분석 실행하기

공급자 분석 실행 방법 알아보기

enable_provider_run_analysis

스키마:

PROVIDER

설명: 공급자(클린룸 생성자)가 지정된 클린룸에서 분석을 실행할 수 있도록 합니다. 이 기능은 기본적으로 비활성화되어 있습니다. 그런 다음 컨슈머는 consumer.enable_templates_for_provider_run 을 호출하여 Clean Room의 특정 템플릿에 대한 공급자 실행 분석을 활성화해야 합니다. 그 후 공급자는 provider.submit_analysis_request 를 호출하여 분석을 실행할 수 있습니다.

공급자 운영 분석에 대해 자세히 알아보기

중요

이 프로시저는 provider.add_consumers 이후에 컨슈머가 클린룸을 설치하기 전에 호출해야 합니다. 컨슈머가 이미 클린룸을 설치한 후에 변경하는 경우 컨슈머는 새 구성을 반영하기 위해 클린룸을 다시 설치해야 합니다.

인자:

  • cleanroom_name (string) - 공급자 실행 분석을 활성화해야 하는 클린룸의 이름입니다.

  • consumer_accounts (array of strings) - 이 클린룸에 데이터를 추가한 모든 컨슈머 계정의 계정 위치입니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.enable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
Copy

disable_provider_run_analysis

스키마:

PROVIDER

설명: 공급자(클린룸 생성자)가 클린룸에서 분석을 실행하지 못하도록 합니다(기본적으로 비활성화됨).

중요

이 프로시저는 provider.add_consumers 이후에 컨슈머가 클린룸을 설치하기 전에 호출해야 합니다. 컨슈머가 이미 클린룸을 설치한 후에 이를 변경하는 경우, 새로운 구성을 반영하기 위해 클린룸을 다시 설치해야 합니다.

인자:

  • cleanroom_name (string) - 공급자 실행 분석을 비활성화해야 하는 클린룸의 이름입니다.

  • consumer_account_locator (string) - provider.enable_provider_run_analysis 에 전달된 것과 동일한 컨슈머 계정 이름 목록.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.disable_provider_run_analysis(
  $cleanroom_name,
  ['<CONSUMER_ACCOUNT_LOCATOR>']);
Copy

is_provider_run_enabled

스키마:

LIBRARY

설명: 이 클린룸에서 공급자 실행 분석을 허용하는지 확인합니다.

인자:

  • cleanroom_name (string) - 확인할 클린룸의 이름입니다.

반환: (string) 이 클린룸에서 공급자 실행 분석을 허용하는지 여부.

예:

CALL samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

is_request_back_share_mounted

스키마:

PROVIDER

설명: 지정된 컨슈머로부터 지정된 클린룸의 공급자에게 메시지를 전파할 수 있는지 확인합니다. 이 클린룸에서 이 컨슈머에 대한 백 공유가 마운트되지 않은 경우, 공급자 실행 요청 승인과 같은 메시지는 컨슈머에서 공급자로 전파되지 않습니다(단, 컨슈머 측에서는 큐에 추가됨).

이 컨슈머와의 백 공유를 설정하려면 provider.mount_request_logs_for_all_consumers를 호출하세요. provider.mount_request_logs_for_all_consumers를 이전에 호출했고 is_request_back_share_mounted가 실패한 경우 마지막으로 provider.mount_request_logs_for_all_consumers를 호출한 후 이 컨슈머를 이 클린룸에 추가했을 가능성이 큽니다.

인자:

  • cleanroom_name (문자열) - 확인할 클린룸의 이름입니다.

  • consumer_account(문자열) - 컨슈머의 계정 로케이터입니다.

반환: 지정된 클린룸에서 지정된 컨슈머에 대해 백 공유가 활성화된 경우 SUCCESS입니다. 그렇지 않으면 오류가 발생합니다.

예:

CALL samooha_by_snowflake_local_db.library.is_request_back_share_mounted(
  $cleanroom_name,
  $consumer_locator);
Copy

view_warehouse_sizes_for_template

스키마:

PROVIDER

설명: 지정된 템플릿으로 공급자 실행 분석에 사용할 수 있는 웨어하우스 크기 및 유형 목록을 봅니다. 컨슈머는 먼저 consumer.enable_templates_for_provider_run 에 대한 호출에서 목록을 채워야 합니다.

인자:

  • consumer_account (String) - 공급자가 실행하는 요청을 승인할 컨슈머의 계정 로케이터입니다.

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • template_name (String) - 공급자가 실행하려는 템플릿의 이름입니다.

  • consumer_account (String) - 공급자가 실행하는 요청을 승인할 컨슈머의 계정 로케이터입니다.

반품: 허용되는 웨어하우스 크기와 유형에 대한 테이블. 지원되는 웨어하우스 유형 및 크기 문자열은 CREATE WAREHOUSE 명령의 WAREHOUSE_TYPE 및 WAREHOUSE_SIZE 속성에서 사용되는 문자열입니다.

예:

CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE(
  $cleanroom_name,
  $template_name,
  $consumer_account_loc);
Copy

submit_analysis_request

스키마:

PROVIDER

설명: Clean Room에서 실행할 분석을 제출합니다. 이 프로시저를 호출하려면 다음 조건을 모두 충족해야 합니다.

템플릿은 클린룸 내에서 실행되며 결과는 클린룸 내부에 안전하게 저장됩니다. 결과는 암호화되어 공급자만 결과를 볼 수 있습니다.

인자:

  • cleanroom_name (string) - 템플릿이 실행될 클린룸의 이름입니다.

  • consumer_account_locator (string) - consumer.enable_templates_for_provider_run 을 호출하여 공급자 실행 분석을 허용한 이 클린룸에서 컨슈머의 계정 위치입니다.

  • template_name (string) - 실행할 템플릿의 이름입니다.

  • provider_tables (array) - 템플릿에 노출할 공급자 테이블 목록입니다. 이 목록은 source_table 배열 변수를 채웁니다.

  • consumer_tables (array) - 템플릿에 노출할 컨슈머 테이블 목록입니다. 이 목록은 my_table 배열 변수를 채웁니다.

  • analysis_arguments (object) - 각 키가 사용자가 만든 템플릿에서 사용되는 인수 이름인 JSON 오브젝트입니다. 특정 웨어하우스 유형 및 크기를 사용하려면 provider.view_warehouse_sizes_for_template 에 나열된 유형 및 크기를 선택한 후 다음 필드를 사용하여 지정합니다.

    • warehouse_type (String) - 지정된 템플릿으로 공급자 실행 분석에 대해 컨슈머가 지원하는 웨어하우스 유형입니다.

    • warehouse_size (String) - 지정된 템플릿으로 공급자 실행 분석에 대해 컨슈머가 지원하는 웨어하우스 크기입니다.

반환: (string) 요청의 상태를 확인하고 결과에 액세스하는 데 사용되는 요청 ID 입니다. 분석 결과를 확인하는 데 필요하므로 이 ID 를 저장하십시오.

예:

CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
    $cleanroom_name, 
    '<CONSUMER_ACCOUNT>',
    'prod_overlap_analysis', 
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
    object_construct(       
      'dimensions', ['c.REGION_CODE'],        
      'measure_type', ['AVG'],           
      'measure_column', ['c.DAYS_ACTIVE'],
      'warehouse_type', 'STANDARD',        -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
      'warehouse_size', 'LARGE'            -- the request will automatically fail.
    ));
Copy

check_analysis_status

스키마:

PROVIDER

설명: 공급자는 공급자 분석 요청의 상태를 확인하기 위해 이 프로시저를 호출합니다. 요청 상태를 확인하기까지 상당한 지연이 발생할 수 있습니다. 분석이 완료로 표시되면 provider.get_analysis_result 를 호출하여 결과를 확인합니다.

인자:

  • cleanroom_name (string) - 요청이 이루어진 클린룸의 이름입니다.

  • request_id (string) - ID 요청의 provider.submit_analysis_request 에서 반환합니다.

  • consumer_account_locator (string) - 요청이 전송된 컨슈머의 계정 위치입니다.

반환: (string) 요청의 상태, 여기서 COMPLETED 는 분석이 성공적으로 완료되었음을 의미합니다. 가능한 상태:

  • IN-PROGRESS: 분석이 진행 중입니다.

  • PENDING: 다음 경우 중 하나를 나타냅니다.

    • 요청이 여전히 전파 중이며 몇 분 정도 걸릴 수 있습니다. 몇 분 후에 다시 시도하세요.

    • 사용자가 consumer.enable_templates_for_provider_run을 호출하여 요청을 승인하지 않았습니다. 몇 분 후에 다시 시도하세요.

    • 이 컨슈머에 대한 요청 로그를 마운트하지 않았습니다. provider.is_request_back_share_mounted를 호출합니다. 해당 프로시저가 SUCCESS를 반환하지 않는 경우 provider.mount_request_logs_for_all_consumers를 호출합니다.

  • COMPLETED: 분석이 완료되었습니다. provider.get_analysis_result를 호출할 수 있습니다.

예:

-- It can take up to 2 minutes for this to pick up the request ID after the initial request
CALL samooha_by_snowflake_local_db.provider.check_analysis_status(
    $cleanroom_name, 
    $request_id, 
    '<CONSUMER_ACCOUNT>'
);
Copy

get_analysis_result

스키마:

PROVIDER

설명: 공급자 실행 분석 결과를 가져옵니다. provider.check_analysis_status가 COMPLETED를 반환할 때까지 get_analysis_result를 호출하지 마세요. 분석 결과는 클린룸에서 무기한으로 유지됩니다.

인자:

  • cleanroom_name (string) - 요청이 전송된 클린룸의 이름입니다.

  • request_id (string) - ID 요청의 submit_analysis_request 에서 반환됩니다.

  • consumer_account_locator (string) - submit_analysis_request 에 전달된 컨슈머의 계정 위치입니다.

반환: (Table) 쿼리 결과.

예:

CALL samooha_by_snowflake_local_db.provider.get_analysis_result(
    $cleanroom_name, 
    $request_id, 
    $locator
);
Copy

클린룸 공유 관리

다음 명령을 사용하여 컨슈머와의 클린룸 공유를 관리하십시오.

view_consumers

스키마:

PROVIDER

설명: 클린룸에 대한 액세스 권한이 부여된 컨슈머를 목록으로 표시합니다. 컨슈머가 클린룸을 설치했는지 여부는 표시되지 않습니다.

인자:

  • cleanroom_name (string) - 관심 있는 클린룸입니다.

반환: (table) - 클린룸에 액세스할 수 있는 컨슈머 계정 목록입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
Copy

add_consumers

스키마:

PROVIDER

설명: 지정된 사용자에게 지정된 클린룸에 대한 액세스 권한을 부여합니다. 클린룸은 클린룸 UI와 API를 통해 액세스할 수 있습니다. 이는 이전 호출의 컨슈머 목록을 덮어쓰지는 않습니다. 클린룸 액세스 권한은 전체 계정이 아닌 특정 사용자에게 부여됩니다. 클린룸에 액세스하려면 컨슈머 계정이 공급자와 동일한 Snowflake 리전에 있어야 합니다. select current_region();을 호출하여 리전을 확인할 수 있습니다.

provider.view_consumers 를 호출하여 현재 컨슈머 목록을 확인할 수 있습니다.

인자:

  • cleanroom_name(문자열) - 지정된 사용자와 공유할 클린룸의 이름입니다. 사용자는 클린룸 API 또는 UI 중 하나를 사용하여 클린룸을 설치할 수 있습니다.

  • consumer_account_locators (string) - CURRENT_ACCOUNT에서 반환한 쉼표로 구분된 컨슈머 계정 위치 찾기 목록입니다. 이 목록에 consumer_account_names 에 포함된 것과 동일한 수의 항목이 동일한 순서로 포함되어야 합니다.

  • consumer_account_names (String) - 컨슈머의 컨슈머 데이터 공유 계정 ID 가 포함된 쉼표로 구분된 목록으로, org_name.account_name 형식으로 되어 있습니다. 조직 이름CURRENT_ORGANIZATION_NAME 을 호출하여 검색할 수 있습니다. 계정 이름CURRENT_ACCOUNT_NAME 을 호출하여 검색할 수 있습니다. 이 목록에는 consumer_account_locators 에 나열된 것과 동일한 수의 항목이 동일한 순서로 포함되어야 합니다.

  • enable_differential_privacy_tasks (Boolean, 선택 사항) - Clean Room에 나열된 사용자의 모든 쿼리에 대해 차등 개인정보 보호를 적용하려면 TRUE 를 선택합니다. 이는 목록에 있는 사용자에 대해 기본값으로 차등 개인정보 보호를 활성화하는 간단한 방법입니다. 고급 설정을 지정하려면 privacy_settings 인자를 대신 입력합니다. 차등 개인정보 보호를 사용하려면 이 Clean Room에서 차등 개인정보 보호 작업이 실행 중이어야 합니다. 기본값은 FALSE 입니다.

  • privacy_settings (String, 선택 사항) - 있는 경우, consumer_account_names 의 사용자가 사용할 때 사용자 지정 템플릿에 개인정보 설정을 적용합니다. 이것은 단일 NULL 키와 다양한 개인정보 설정을 지정하는 값을 가진 오브젝트의 문자열 버전입니다. enable_differential_privacy_tasksprivacy_settings 를 둘 다 지정하지는 마십시오. 차등 개인정보 보호를 사용하려면 이 Clean Room에서 차등 개인정보 보호 작업이 실행 중이어야 합니다. 이 오브젝트에 대해 사용 가능한 필드 섹션을 참조하십시오.

반환: 성공 메시지. 이 프로시저는 사용자 위치 또는 계정 이름의 유효성을 검사하지 않으므로 성공은 제출된 위치가 이 클린룸의 데이터베이스에 추가되었다는 의미일 뿐이라는 점에 유의하십시오.

예제:

-- Add consumer without differential privacy.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
  'LOCATOR1,LOCATOR2',
  'ORG1.NAME1,ORG2.NAME2');

-- Add consumer and turn on differential privacy for all their queries.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
  'LOCATOR1',
  'ORGNAME.ACCOUNTNAME',
  '{
      "null": {
          "threshold_value": 5000,
          "differential": 1,
          "privacy_budget": 10,
          "epsilon": 0.1,
          "noise_mechanism": "Laplace"
      }}');
Copy

remove_consumers

스키마:

PROVIDER

설명: 지정된 클린룸에 대한 계정 액세스 권한을 제거합니다. 이 방법은 제공된 계정의 모든 사용자의 액세스를 차단합니다.

provider.view_consumers 를 호출하여 현재 컨슈머 목록을 확인할 수 있습니다.

인자:

  • cleanroom_name (string) - 클린룸의 ID (사용자 친화적인 이름이 아님).

  • cleanroom_account_locators (string) - 쉼표로 구분된 사용자 계정 로케이터 목록입니다. 계정의 모든 사용자는 클린룸에 대한 액세스 권한을 잃게 됩니다.

반환: (string) - 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.remove_consumers($cleanroom_name, 'locator1,locator2,locator3');
Copy

set_cleanroom_ui_accessibility

스키마:

PROVIDER

설명: 이 공급자 계정에 로그인한 모든 사용자에게 클린룸 UI에서 클린룸을 표시하거나 숨깁니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름.

  • visibility_status (string) - 대소문자를 구분하는 다음 값 중 하나입니다.

    • HIDDEN - 현재 공급자 계정의 모든 사용자로부터 클린룸 UI의 클린룸을 숨깁니다. 클린룸은 API 호출에 대해서는 계속 액세스할 수 있습니다.

    • EDITABLE - 클린룸 UI에서 클린룸을 표시합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
Copy

클라우드 간 협업

Clean Room을 다른 클라우드 리전의 컨슈머와 공유할 수 있도록 설정하십시오. 자세히 알아보십시오.

enable_laf_on_account

스키마:

LIBRARY

설명: 현재 계정에서 클라우드 간 자동 복제를 활성화합니다. 이 프로시저를 실행하려면 ACCOUNTADMIN 역할이 필요합니다.

중요

먼저 SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT를 호출하여 계정에 대해 클라우드 간 자동 복제를 활성화해야 합니다. 자동 복제자동 복제 권한 관리에 대해 자세히 알아보세요.

인자: 없음

반환: (문자열) 성공 메시지.

예:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_laf_on_account();
Copy

disable_laf_on_account

스키마:

LIBRARY

설명: 현재 계정에서 클라우드 간 자동 복제를 비활성화합니다. 이 프로시저를 실행하려면 ACCOUNTADMIN 역할이 필요합니다.

중요

먼저 SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT를 호출하여 계정에서 클라우드 간 자동 복제를 비활성화할 수 있습니다. 자동 복제자동 복제 권한 관리에 대해 자세히 알아보세요.

인자: 없음

반환: (문자열) 성공 메시지.

예:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.disable_laf_on_account();
Copy

is_laf_enabled_on_account

스키마:

LIBRARY

설명: 이 계정에 대해 클라우드 간 자동 복제가 사용 설정되어 있는지 여부를 반환합니다.

인자: 없음

반환: 이 계정에 크로스 클라우드 자동 복제가 활성화된 경우 TRUE 이고, 그렇지 않은 경우 FALSE 입니다.

예:

CALL samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
Copy

set_laf_dcr_refresh_schedule

스키마:

PROVIDER

설명: 공급자와 컨슈머가 서로 다른 클라우드 리전에 있는 경우 공급자와 컨슈머 간 클린룸 데이터의 새로 고침 간격을 설정합니다. 이 데이터에는 공급자 데이터 세트, 공급자 실행 요청, 클린룸 정책, 클린룸 메타데이터가 포함됩니다. 즉시 새로 고침이 필요한 경우 SYSTEM$TRIGGER_LISTING_REFRESH를 호출할 수 있습니다.

인자:

  • schedule(Int) - 새로 고침 사이의 간격(분)입니다. 허용되는 최솟값은 10입니다.

반환: (문자열) - 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.set_laf_dcr_refresh_schedule(10);
Copy

클린룸에서 Python 사용

load_python_into_cleanroom

스키마:

PROVIDER

설명: 사용자 지정 Python 코드를 클린룸에 로드합니다. 이 프로시저를 사용하여 클린룸에 로드된 코드는 컨슈머에게 표시되지 않습니다. 업로드된 코드는 Jinja 템플릿으로 호출할 수 있습니다. 코드에 여러 함수 정의가 포함될 수 있지만, 템플릿이 호출할 수 있는 함수는 하나만 노출됩니다.

클린룸에서 Python 코드를 업로드하고 사용하는 방법을 알아보세요.

이 프로시저는 클린룸의 패치 번호를 증가시키고 보안 검사를 트리거합니다. 스캔 상태가 APPROVED 가 될 때까지 기다려야 공동 작업자와 최신 버전을 공유할 수 있습니다.

이 프로시저는 오버로드되어 있으며, 코드를 인라인으로 업로드할지 아니면 스테이지의 파일에서 로딩할지를 결정하는 다섯 번째 인자의 데이터 타입이 다른 두 개의 서명이 있습니다.

load_python_into_cleanroom에는 인라인 코드 업로드를 위해 다음과 같은 서명이 있습니다. 코드 문자열을 code 인자에 전달합니다.

(cleanroom_name String, function_name String, arguments Array, packages Array, rettype String, handler String, code String)
Copy

인자:

  • cleanroom_name (string) - 스크립트를 로딩할 클린룸의 이름입니다.

  • function_name(문자열) - 템플릿이 handler로 지정된 함수를 호출하는 데 사용하는 이름입니다. 템플릿은 cleanroom 네임스페이스로 함수 이름을 한정해야 합니다. 예: cleanroom.my_func(val1, val2).

  • arguments(문자열 쌍의 배열) - 함수 function_name에 필요한 인자의 배열입니다. 각 요소는 공백으로 구분된 ‘name data type’ 쌍으로, 인자 이름과 Snowflake SQL 데이터 타입을 지정합니다. 예: ['size INT', 'start_date  DATE'].

  • packages(문자열 배열) - 코드에서 사용하는 Python 패키지 이름 목록입니다. 클린룸은 기본적으로 이 목록 또는 Snowpark API에 있는 모든 패키지를 지원합니다. 목록에 없는 패키지가 필요한 경우 클린룸의 Snowpark Container Services를 사용해야 합니다.

  • ret_type(문자열) - 함수 handler가 반환한 값의 SQL 데이터 타입입니다. (동등한 Python 및 SQL 유형을 참조하세요. Snowflake SQL 유형 동의어가 허용됩니다(예: VARCHAR의 경우 STRING).) UDF의 경우, 반환 유형은 단일 SQL 유형입니다. UDTF의 경우, 반환 유형은 <column name> <SQL column type> 쌍을 포함한 TABLE 함수입니다. 예:

    TABLE(item_name STRING, total FLOAT).

  • handler(문자열) - 템플릿이 function_name을 호출할 때 코드에서 호출되는 함수입니다. UDF의 경우 이는 함수 이름 자체여야 합니다. UDTF의 경우 UDTF를 구현하는 클래스의 이름이어야 합니다.

  • code(문자열) - Python 코드를 문자열로 표시합니다. 이는 Python UDF여야 합니다.

반환: (string) 성공 또는 실패 메시지.

예제:

-- Inline UDF

CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name, 
    'assign_group',                      -- Name of the UDF.
    ['data STRING', 'index INTEGER'],    -- Arguments of the UDF, along with their type.
    ['pandas', 'numpy'],                 -- Packages UDF will use.
    'INTEGER',                           -- Return type of UDF.
    'main',                              -- Handler.
    $$
import pandas as pd
import numpy as np

def main(data, index):
    df = pd.DataFrame(data)  # you can do something with df but this is just an example
    return np.random.randint(1, 100)
    $$
);
Copy
-- Upload from stage

CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name,
    'myfunc',                            -- Name of the UDF.
    ['data STRING', 'index INTEGER'],    -- Arguments of the UDF.
    ['numpy', 'pandas'],                 -- Packages UDF will use.
    ['/assign_group.py']                 -- Python file to import from a stage.
    'INTEGER',                           -- Return type of UDF.
    'assign_group.main'                  -- Handler, scoped to file name.
);
Copy

get_stage_for_python_files

스키마:

PROVIDER

설명: 클린룸에서 사용자 정의 Python 코드를 정의하기 위해 인라인 코드 정의 대신 스테이지에 업로드된 코드 파일을 사용할 계획인 경우 Python 파일을 업로드해야 하는 스테이지 경로를 반환합니다. 이 스테이지는 provider.load_python_into_cleanroom 을 호출하여 파일이 업로드될 때까지 존재하지 않으며 검사할 수 없습니다.

클린룸에서 Python 코드를 업로드하고 사용하는 방법을 알아보세요.

인자:

  • cleanroom_name (string) - 파일을 업로드할 클린룸의 이름입니다.

반환: (string) 코드 파일을 업로드할 경로입니다. provider.load_python_into_cleanroom 에서 imports 인자에 사용합니다.

예:

CALL samooha_by_snowflake_local_db.provider.get_stage_for_python_files($cleanroom_name);
Copy

view_cleanroom_scan_status

스키마:

PROVIDER

설명: DISTRIBUTION 으로 설정된 클린룸의 위협 검사 상태를 EXTERNAL 로 보고합니다. 기본 릴리스 지시어를 설정하거나 변경하려면 스캔을 “APPROVED”로 표시해야 합니다. 스캔 상태는 EXTERNAL 클린룸으로만 확인해야 합니다.

인자:

  • cleanroom_name (string) - 상태를 확인할 클린룸의 이름입니다.

반환: (문자열) 스캔 상태입니다. 다음 값이 가능합니다.

  • NOT_REVIEWED - 스캔이 진행 중입니다.

  • APPROVED - 스캔이 통과되었습니다.

  • REJECTED - 스캔에 실패했습니다. 새로운 클린룸 버전이 게시되지 않습니다. 코드에서 문제를 찾아 마지막 작업을 다시 시도하세요.

  • MANUAL_REVIEW - 스캔은 Snowflake의 수동 검토가 필요합니다. 이 작업에는 며칠이 걸릴 수 있으므로 주기적으로 다시 확인하세요.

예:

CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
Copy

요청 로그

다음 명령을 사용하여 컨슈머 요청 로그를 관리합니다. 컨슈머는 요청 로그를 통해 공급자에게 메시지를 보낼 수 있으며, 컨슈머 사용자 지정 템플릿 요청, 공급자 실행 요청에 대한 컨슈머 승인, 클라우드 간 자동 복제와 같은 기능을 사용하려면 이 로그를 마운트해야 합니다.

mount_request_logs_for_all_consumers

스키마:

PROVIDER

설명: 공급자에게 컨슈머의 요청에 대한 액세스 권한을 부여합니다. 컨슈머 사용자 지정 템플릿 요청, 공급자 실행 요청의 컨슈머 승인, 클라우드 간 자동 복제 등 다양한 기능을 지원하려면 요청 로그를 마운트해야 합니다.

이렇게 하면 지정된 클린룸을 이미 설치한 컨슈머에 대한 요청 로그만 마운트됩니다. 공급자가 이 프로시저를 호출한 후 컨슈머가 클린룸을 설치하는 경우 공급자는 이 프로시저를 다시 호출해야 합니다.

인자:

  • cleanroom_name (string) - 요청 로그를 마운트할 클린룸의 이름입니다.

반환: (테이블) 각각에 대한 요청 로그 마운트 상태가 있는 컨슈머 테이블입니다. 컨슈머에게 클린룸에 대한 액세스 권한이 부여되었지만 아직 클린룸을 설치하지 않은 경우 상태는 보류 중으로 표시되며 클린룸을 설치한 후 mount_request_logs_for_all_consumers를 다시 호출해야 합니다.

예:

CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
Copy

view_request_mount_status_for_all_consumers

스키마:

PROVIDER

설명: 지정된 클린룸의 모든 컨슈머에 대한 요청 로그의 마운트 상태를 표시합니다. provider.mount_request_logs_for_all_consumers에 대한 호출에 포함된 컨슈머만 표시됩니다. 요청 로그를 사용하면 컨슈머에서 공급자로 메시지를 전달할 수 있습니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

반환: (테이블) - 컨슈머와 각 컨슈머의 요청 로그 마운트 상태에 대한 테이블입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_request_mount_status_for_all_consumers($cleanroom_name);
Copy

view_request_logs

스키마:

PROVIDER

설명: 이 클린룸에서 컨슈머가 보낸 요청 로그를 표시합니다. 이전에 mount_request_logs_for_all_consumers에 대한 성공적인 호출에 포함된 컨슈머의 요청만 표시됩니다.

인자:

  • cleanroom_name (string) - 요청 로그를 검토할 클린룸의 이름입니다.

반환: (테이블) 컨슈머가 지정된 클린룸의 공급자에게 보낸 요청입니다.

예:

CALL samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Copy

차등 개인정보 보호

이러한 명령은 사용자 수준 또는 공급자 계정 수준에서 차등 개인정보 보호를 제어합니다. 차등 개인정보 보호에 대해 자세히 알아보십시오.

set_privacy_settings

스키마:

PROVIDER

설명: 지정된 고객이 사용자 지정 템플릿을 실행할 때 적용되는 개인정보 보호 설정을 설정(또는 재설정)합니다. 이렇게 하면 이 컨슈머에 대한 모든 기존 설정을 덮어씁니다.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • consumer_account_locator (String) - 쉼표로 구분된 목록에 있는 하나 이상의 컨슈머의 계정 로케이터입니다.

  • privacy_settings (Object) - 하나 이상의 템플릿에 대한 차등 개인정보 보호 설정을 지정하는 JSON 오브젝트입니다. 설정은 지정된 컨슈머가 실행하는 모든 템플릿에 적용됩니다. 이 오브젝트에 대해 사용 가능한 필드 섹션을 참조하십시오.

반환: 성공 메시지.

예:

-- Enforce differential privacy on queries by this consumer
-- with the settings provided.
CALL samooha_by_snowflake_local_db.provider.set_privacy_settings(
  $cleanroom_name, 
  $consumer_locator,
  { 'differential': 1,
    'epsilon': 0.1,
    'privacy_budget': 3 });
Copy

is_dp_enabled_on_account

스키마:

PROVIDER

설명: 이 계정에 대해 차등 개인정보 보호가 사용 설정되어 있는지 여부를 설명합니다.

인자: 없음

반환: 이 계정에 대해 차등 개인정보 보호가 활성화된 경우 TRUE, 그렇지 않은 경우 FALSE.

예:

CALL samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
Copy

suspend_account_dp_task

스키마:

PROVIDER

설명: 차등 개인정보 보호 예산을 모니터링하고 적용하는 작업을 비활성화합니다. 이는 계정의 차등 개인정보 보호와 관련된 비용을 제어하는 데 사용됩니다. 차등 개인정보 보호 작업이 비활성화된 경우에도 차등 개인정보 보호가 지정된 사용자, 템플릿 또는 클린룸의 쿼리에 노이즈가 계속 추가되지만, 예산 제한이 적용되지 않으며 차등 개인정보 보호로 인한 비용이 발생하지 않습니다. 차등 개인정보 보호 관리에 대해 자세히 알아보기

인자: 없음

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
Copy

resume_account_dp_task

스키마:

PROVIDER

설명: 현재 계정에서 차등 개인정보 보호 작업 리스너를 다시 시작하면 차등 개인정보 보호 예산이 적용됩니다. 이전에 설정한 모든 차등 개인정보 보호 값(예: 민감도 또는 연결된 사용자)은 유지됩니다.

인자: 없음

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.resume_account_dp_task();
Copy

Snowpark Container Services 명령

이 프로시저를 통해 Clean Room 내부에서 Snowpark Container Services를 사용 할 수 있습니다.

load_service_into_cleanroom

스키마:

PROVIDER

설명: Clean Room에서 컨테이너 서비스를 만들거나 업데이트합니다. 이 프로시저를 호출하면 Clean Room 패치 번호가 업데이트되므로 이 프로시저를 호출한 후 provider.set_default_release_directive 를 호출해야 합니다. 서비스를 만들거나 업데이트할 때마다 이 프로시저를 호출해야 합니다. 그런 다음 클라이언트는 consumer.start_or_update_service 를 호출하여 업데이트를 확인해야 합니다.

클린룸에서 Snowpark Container Services를 사용하는 방법에 대해 알아보세요.

인자:

  • cleanroom_name (string) - 클린룸의 이름입니다.

  • service_spec (String) - spec 요소에 루팅된 서비스에 대한 YAML 사양입니다.

  • service_config (String) - 서비스에 대한 YAML 형식의 구성입니다. 지원되는 속성은 다음과 같습니다.

    • default_service_options - 서비스 수준 기본값으로 구성된 선택적 배열입니다. 이러한 값은 컨슈머가 서비스를 만들 때 재정의할 수 있습니다. 지원되는 하위 속성은 다음과 같습니다.

      • min_instances (Integer, 선택 사항)

      • max_instances (Integer, 선택 사항)

      • allow_monitoring (Boolean, 선택 사항) - TRUE 인 경우 컨슈머가 서비스 로그를 볼 수 있도록 허용합니다. 기본값은 FALSE 입니다.

    • functions - 서비스에서 노출하는 함수의 배열입니다. 각 함수 정의는 SPCS 서비스 함수 정의 에 매핑됩니다. 각 요소에 대한 자세한 내용은 해당 설명서를 참조하십시오. 지원되는 하위 속성은 다음과 같습니다.

      • 이름

      • args

      • returns

      • endpoint

      • 경로

      • max_batch_rows (선택 사항)

      • context_headers (선택 사항)

반환: (String) 성공할 경우 성공 메시지. 성공하지 못할 경우 오류를 발생시킵니다.

예:

CALL samooha_by_snowflake_local_db.provider.load_service_into_cleanroom(
    $cleanroom_name,
    $$
    spec:
      containers:
      - name: lal
        image: /dcr_spcs/repos/lal_example/lal_service_image:latest
        env:
          SERVER_PORT: 8000
        readinessProbe:
          port: 8000
          path: /healthcheck
      endpoints:
      - name: lalendpoint
        port: 8000
        public: false
    $$,
    $$
    default_service_options:
      min_instances: 1
      max_instances: 1
      allow_monitoring: true
    
    functions:
      - name: train
        args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY, FILTER VARCHAR
        returns: VARCHAR
        endpoint: lalendpoint
        path: /train
      - name: score
        args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY
        returns: VARCHAR
        endpoint: lalendpoint
        path: /score
      - name: score_batch
        args: ID VARCHAR, FEATURES ARRAY
        returns: VARIANT
        max_batch_rows: 1000
        endpoint: lalendpoint
        path: /scorebatch
$$);
Copy

환경 관리

다음 명령을 사용하여 일반적으로 클린룸 기능 및 지원되는 플로우를 활용하는 데 도움을 받을 수 있습니다.

manage_datastats_task_on_account

스키마:

PROVIDER

설명: 클린룸 통계를 계산하는 백그라운드 작업을 활성화하거나 비활성화합니다. 작업은 기본적으로 실행 중이지만 비용을 절감하기 위해 비활성화할 수 있습니다. 작업을 관리하려면 모든 공동 작업자가 동일한 값을 사용하여 이 프로시저의 적절한 공급자 또는 컨슈머 버전을 호출해야 합니다.

인자:

  • 활성화(부울) - TRUE이면 작업을 활성화하고, FALSE이면 작업을 비활성화합니다.

반환: 성공 메시지.

예:

-- Disable the task in this account.
CALL samooha_by_snowflake_local_db.provider.manage_datastats_task_on_account(FALSE);
Copy

enable_local_db_auto_upgrades

스키마:

LIBRARY

설명: 새로운 프로시저나 기능이 릴리스될 때 Snowflake Data Clean Rooms 환경을 자동으로 업그레이드하는 작업을 활성화합니다(작업은 samooha_by_snowflake_local_db.admin.expected_version_task임). 업그레이드를 자동화하려면 새로운 릴리스마다 library.apply_patch를 호출하는 대신 이 프로시저를 호출하세요.

이 작업을 비활성화하면 비용을 절감할 수 있지만, 시스템에 최신 버전의 클린룸 환경이 설치되어 있는지 확인하기 위해 실행 상태로 두는 것이 좋습니다.

인자: 없음

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

disable_local_db_auto_upgrades

스키마:

LIBRARY

설명: 새 버전이 릴리스될 때 Snowflake Data Clean Rooms 환경을 자동으로 업그레이드하는 작업을 비활성화합니다. 자동 업그레이드를 비활성화는 경우 새 릴리스마다 library.apply_patch를 호출해야 합니다.

인자: 없음

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy

apply_patch

스키마:

LIBRARY

설명: 클린룸 환경을 업데이트하여 환경의 새로운 기능과 수정 사항을 활성화합니다. 클린룸 환경의 새 버전이 출시되면 이를 호출합니다. (이는 일반적으로 매주 발생합니다. 최신 기능 업데이트의 클린룸 항목을 참조하세요.) 이 프로시저는 samooha_by_snowflake_local_db를 업데이트합니다.

library.enable_local_db_auto_upgrades를 호출하여 패치 업데이트를 자동화할 수 있습니다. 자동 업데이트를 활성화하는 것이 좋습니다.

인자: 없음

반환: (문자열) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.library.apply_patch();
Copy

patch_cleanroom

스키마:

PROVIDER

설명: 지정된 클린룸을 최신 버전으로 업데이트하여 해당 클린룸의 새로운 기능과 수정 사항을 활성화합니다. 일반적으로 Snowflake 지원에서 호출하도록 지시한 경우에만 호출합니다.

공급자는 컨슈머가 library.patch_cleanroom을 호출하기 전에 library.patch_cleanroom을 호출해야 합니다. 그렇지 않으면 적용할 패치가 없습니다.

인자:

  • cleanroom_name(문자열) : 패치할 클린룸의 이름입니다.

반환: (문자열) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.patch_cleanroom($cleanroom_name);
Copy

dcr_health.dcr_tasks_health_check

설명: 실행 중이거나 최근에 중지된 클린룸 작업에 대한 정보를 표시합니다.

인자: 없음

반환: (테이블) 일정, 웨어하우스 이름, 웨어하우스 크기 등 클린룸 작업에 대한 정보입니다.

예:

CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
Copy

사용되지 않는 프로시저

다음 프로시저는 더 이상 사용되지 않으며 여기에는 완전성을 위해서만 나열되어 있습니다. 교체 프로시저가 표시되면 최신 프로시저를 사용합니다.

mount_laf_cleanroom_requests_share(사용 중단됨)

스키마:

PROVIDER

이 함수는 이제 더 이상 사용되지 않습니다. 대신 provider.mount_request_logs_for_all_consumers를 호출하세요.

설명: 지정된 Clean Room 및 컨슈머 계정에 대해 클라우드 간 요청에 액세스할 수 있도록 합니다. provider.request_laf_cleanroom_requests 가 FULFILLED 상태를 반환해야 이 프로시저를 호출할 수 있습니다.

이 프로세스는 공급자와 컨슈머가 서로 다른 클라우드 리전에 있는 컨슈머 정의 템플릿에 필요합니다.

인자:

  • cleanroom_name (String) - 공유되는 Clean Room입니다.

  • consumer_locator (String) - 이 Clean Room에서 클라우드 간 요청을 할 컨슈머의 Snowflake 계정 로케이터입니다.

반환: (문자열) 성공 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.mount_laf_cleanroom_requests_share(
  $cleanroom_name, $consumer_locator);
Copy

request_laf_cleanroom_requests(사용 중단됨)

스키마:

PROVIDER

이 함수는 이제 더 이상 사용되지 않습니다. 대신 provider.mount_request_logs_for_all_consumers를 호출하세요.

설명: 특정 컨슈머에 대해 공급자 측에서 클라우드 간 요청 공유를 설정합니다. 계정 관리자는 먼저 클라우드 간 자동 복제를 활성화해야 하며, 컨슈머는 consumer.setup_cleanroom_request_share_for_laf 를 호출해야 합니다.

이 프로세스는 공급자와 컨슈머가 서로 다른 클라우드 리전에 있는 컨슈머 정의 템플릿에 필요합니다.

이 프로시저를 반복해서 호출하여 요청 상태를 확인할 수 있습니다. 상태가 FULFILLED 에 도달하면 provider.mount_laf_cleanroom_requests_share 를 호출할 수 있습니다. 상태가 FULFILLED 에 도달하는 데 10분 정도 걸릴 수 있습니다.

인자:

  • cleanroom_name (String) - 클라우드 간 요청 공유를 활성화할 Clean Room의 이름입니다.

  • consumer_locator (String) - 클라우드 간 요청 공유를 활성화할 컨슈머의 계정 로케이터입니다.

반환: (문자열) 요청의 상태 메시지: CREATED, PENDING, FULFILLED, FAILURE. ‘FAILURE, 목록을 찾을 수 없음’은 컨슈머가 클린룸을 설치하지 않았거나 제거했음을 의미합니다.

예:

CALL samooha_by_snowflake_local_db.provider.request_laf_cleanroom_requests(
  $cleanroom_name, $consumer_locator);
Copy

enable_laf_for_cleanroom(사용 중단됨)

스키마:

PROVIDER

이 함수는 이제 더 이상 사용되지 않으며 해당 기능은 provider.create_or_update_cleanroom_listing에 의해 처리됩니다.

설명: 클라우드 간 자동 복제를 활성화하면 Snowflake 계정이 공급자 계정과 다른 리전에 있는 공동 작업자와 클린룸을 공유할 수 있습니다. 클라우드 간 자동 복제는 목록 자동 복제(LAF)라고도 합니다.

기본적으로 크로스 클라우드 자동 복제는 환경에 대해 사용 설정되어 있더라도 새 클린룸의 경우 해제되어 있습니다.

중요

ACCOUNTADMIN 역할이 있는 Snowflake 관리자는 이 프로시저를 실행하기 전에 Snowflake 계정에서 클라우드 간 자동 복제를 활성화해야 합니다. 클라우드 간 자동 복제에 대해 알아보기.

다른 리전의 컨슈머와 협력하는 데는 추가 비용이 발생합니다. 이러한 비용에 대한 자세한 내용은 클라우드 간 자동 복제 비용 섹션을 참조하십시오.

인자:

cleanroom_name (string) - 리전 간에 공유해야 하는 클린룸의 이름입니다. 개별 클린룸을 공유하려면 먼저 관리자가 계정에 대해 클라우드 간 자동 복제를 사용하도록 설정해야 합니다.

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.enable_laf_for_cleanroom($cleanroom_name);
Copy

view_ui_registration_request_log – DEPRECATED

스키마:

PROVIDER

주의

이 명령은 이제 더 이상 사용되지 않습니다. 더 이상 클린룸 UI에서 사용하기 위해 클린룸 템플릿을 수동으로 등록할 필요가 없습니다.

설명: 클린룸을 클린룸 UI에 등록하기 위해 계정에서 발생한 요청 목록을 봅니다. 각 요청에는 view_ui_registration_log 프로시저와 함께 사용하여 요청 상태를 확인할 수 있는 연결된 ID가 있습니다. 요청은 백엔드로 공유되어 처리되고 클린룸이 클린룸에 추가됩니다.

인자:

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
Copy

register_table_or_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.register_objects를 사용하십시오.

설명: 모든 유형의 테이블 및 뷰를 등록합니다.

인자: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)

반환: (string) 성공 또는 실패 메시지.

테이블을 등록하려면:

CALL samooha_by_snowflake_local_db.library.register_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

Iceberg 테이블을 등록하려면:

CALL samooha_by_snowflake_local_db.library.register_table_or_view(
        ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
        false, 
        true,
        false,
        false);
Copy

register_table – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.register_objects를 사용하십시오.

설명: register_db 와 유사하지만 테이블 수준에서 작업합니다. SAMOOHA_APP_ROLE 역할에 이 테이블에 대한 SELECT 권한을 부여하여 사용자가 이 테이블을 클린룸에 링크할 수 있도록 합니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)에 테이블을 등록하려면 대신 library.register_managed_access_table 을 사용합니다.

인자: table_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

register_managed_access_table – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.register_objects를 사용하십시오.

설명: register_table 과 유사하지만, WITH MANAGED ACCESS 매개 변수로 생성된 스키마에 테이블을 등록합니다. 정규화된 테이블 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여가 이루어지면 사용자가 테이블을 클린룸에 연결할 수 있습니다.

인자: table_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

register_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.register_objects를 사용하십시오.

설명: register_db 와 유사하지만 뷰 수준에서 작업합니다. 정규화된 뷰 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여를 선택하면 사용자가 뷰를 클린룸에 연결할 수 있습니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 만든 스키마)에 보기를 등록하려면 대신 library.register_managed_access_view 를 사용합니다.

인자: view_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

register_managed_access_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.register_objects를 사용하십시오.

설명: register_view 와 유사하지만, WITH MANAGED ACCESS 매개 변수로 생성된 스키마에 뷰를 등록합니다. 정규화된 뷰 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여를 선택하면 사용자가 뷰를 클린룸에 연결할 수 있습니다.

인자: view_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

unregister_table_or_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.unregister_objects를 사용하십시오.

설명: 모든 유형의 테이블 및 뷰 등록을 취소합니다.

인자: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)

반환: (string) 성공 또는 실패 메시지.

테이블 등록을 취소하려면:

CALL samooha_by_snowflake_local_db.library.unregister_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

unregister_table – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.unregister_objects를 사용하십시오.

설명: unregister_db 와 유사하지만 테이블 수준에서 작업합니다. 완전히 정규화된 테이블 이름을 나타내는 배열이나 문자열을 전달하여 테이블의 등록을 취소할 수 있습니다. 사용자는 등록되지 않은 테이블을 클린룸에 연결할 수 없습니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)에 테이블을 등록 취소하려면 대신 library.unregister_managed_access_table 을 사용합니다.

인자: table_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

unregister_managed_access_table – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.unregister_objects를 사용하십시오.

설명: unregister_table 과 유사하지만, 관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)의 테이블 등록을 취소합니다.

인자: table_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

unregister_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.unregister_objects를 사용하십시오.

설명: unregister_db 과 유사하지만 뷰 수준에서 작업합니다. 완전히 정규화된 뷰 이름을 나타내는 배열이나 문자열을 전달하여 뷰의 등록을 취소할 수 있습니다. 사용자는 등록되지 않은 뷰를 클린룸에 연결할 수 없습니다.

관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 만든 스키마)에 보기를 등록 취소하려면 대신 library.unregister_managed_access_view 를 사용합니다.

인자: view_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

unregister_managed_access_view – 사용 중단됨

스키마:

LIBRARY

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 library.unregister_objects를 사용하십시오.

설명: unregister_view 와 유사하지만, 관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)의 뷰 등록을 취소합니다.

인자: view_name (array)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

create_cleanroom_listing – 사용 중단됨

스키마:

PROVIDER

주의

이 명령은 이제 더 이상 사용되지 않습니다. 대신 [공급자_생성 또는 업데이트_클린룸_목록](#공급자_생성 또는 업데이트_클린룸_목록)을 사용하십시오.

설명: 클린룸을 구성한 후 Snowflake Marketplace에서 클린룸이 포함된 비공개 목록을 만들고 지정된 공동 작업자와 공유합니다.

공동 작업자는 계정 URL의 orgname.account_name 형식을 사용하여 식별합니다. 컨슈머는 계정의 조직 및 계정 이름 찾기의 지침에 따라 이 문자열을 찾을 수 있습니다.

참고

이 프로시저를 사용하려면 릴리스 지시문을 설정해야 합니다. 자세한 내용은 provider.set_default_release_directive를 참조하세요.

인자: cleanroom_name (string), consumer_account_name (string)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.create_cleanroom_listing($cleanroom_name, <consumerorg.consumeracct>);
Copy

register_cleanroom_in_ui – DEPRECATED

스키마:

PROVIDER

주의

이 명령은 이제 더 이상 사용되지 않습니다. 더 이상 클린룸 UI에서 사용하기 위해 클린룸 템플릿을 수동으로 등록할 필요가 없습니다.

설명: 컨슈머가 클린룸 UI에서 사용할 클린룸을 등록합니다. 클린룸은 공급자가 개발자 APIs를 사용하여 을 생성하고 구성합니다. 그런 다음, 이 명령은 컨슈머가 개발자 APIs를 사용할 필요 없이 클린룸을 클린룸 UI에 등록하여 설치하고, 테이블을 추가하고, 추가한 사용자 지정 분석을 실행할 수 있도록 합니다. 컨슈머는 전적으로 클린룸 UI의 사용자 인터페이스를 통해 클린룸을 사용합니다.

이 API를 두 번 이상 호출하여 클린룸 UI에 여러 사용자 지정 템플릿을 포함시킬 수 있습니다.

**인자:**cleanroom_name (String), 템플릿 이름 (String), consumer_account_locator (String), user_email (String)

반환: (string) 성공 또는 실패 메시지.

예:

CALL samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)
Copy