Snowflake Data Clean Rooms: 공급자 API 참조 가이드¶
이 페이지에서는 Clean Rooms API 컨슈머가 Clean Rooms를 관리하기 위해 사용하는 프로시저에 대해 설명합니다. 코딩 설정 지침은 코딩 설정 섹션을 참조하십시오.
클린룸 생성, 구성 및 삭제¶
provider.view_cleanrooms¶
설명: 이 공급자 계정으로 생성한 모든 기존 클린룸 목록을 표시합니다.
인자: 없음
반환: (table) 이 공급자 계정에서 생성한 클린룸 목록입니다. 클린룸은 컨슈머에게 공유하거나 설치하거나 사용할 필요가 없습니다. 삭제된 클린룸은 데이터베이스에서 삭제되며 이 목록에 표시되지 않습니다.
예:
call samooha_by_snowflake_local_db.provider.view_cleanrooms();
provider.describe_cleanroom¶
설명: 템플릿, 조인 정책, 열 정책, 컨슈머 등 클린룸에 대한 정보 요약을 확인하십시오.
인자:
cleanroom_name (string) - 정보를 얻을 클린룸의 이름입니다.
반환값:(string) 클린룸 메타데이터 요약입니다.
예:
call samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
provider.cleanroom_init¶
설명: 계정에 지정된 이름의 클린룸을 만듭니다. 이 프로시저는 실행하는 데 1분 이상 걸릴 수 있습니다. 클린룸은 웹 앱이나 공동 작업자에게 create_or_update_cleanroom_listing
을 호출하기 전까지는 표시되지 않습니다.
인자:
cleanroom_name (string) - 클린룸 이름, 최대 80자. 이름에는 [A‑Z,a‑z,0‑9, ,_]가 포함됩니다.
배포(문자열, 선택 사항) - 다음 값 중 하나입니다.
INTERNAL (기본값) - 클린룸은 같은 조직에 속한 사용자에게만 표시되며 [기본 버전 변경](#공급자 설정-기본 릴리스 지시어) 전에는 보안 검사를 트리거하지 않습니다.
EXTERNAL - 클린룸은 생산 준비가 완료된 상태이며 조직 외부에서 공유할 수 있습니다. 클린룸은 [기본 버전 변경](#공급자 설정-기본 릴리스 지시어) 전에 보안 검사를 트리거합니다. 클린룸을 생성한 후 배포를 변경하려면 여기에 표시된 대로
alter package
를 호출하십시오.alter application package samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
반환: (string) 성공 또는 실패 메시지.
예:
-- Create an internal clean room
call samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
provider.set_default_release_directive¶
설명: 공동 작업자가 웹 앱에서 새 브라우저 세션을 시작하거나 API 에서 클린룸에 액세스할 때 로딩되는 클린룸의 버전 및 패치를 지정합니다. 클린룸을 컨슈머와 공유하기 전에 반드시 호출해야 합니다.
클린룸 애플리케이션은 Python 코드를 업로드하거나 변경할 때마다 클린룸의 새 버전을 생성합니다. 사용자에게 최신 버전을 제공하려면 새 버전 번호와 함께 이 프로시저를 호출하십시오. 사용 가능한 버전을 확인하고 현재 기본 버전을 알아보려면 실행하십시오.
show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
모든 클린룸은 다음 버전과 패치 번호로 생성됩니다.
버전: V1_0
패치: 0
참고
클린룸 배포가 EXTERNAL 로 설정된 경우 이 프로시저는 클린룸 보안 스캔이 APPROVED 상태로 이동한 후에만 호출할 수 있습니다. 보안 상태를 확인하려면 view_cleanroom_scan_status
를 호출합니다.
인자:
cleanroom_name (string) - 클린룸 이름입니다.
version (string) - 버전. 항상 “V1_0”이어야 합니다.
patch (string) - 컨슈머가 로딩한 패치 번호입니다. 이 값은 0에서 시작하며, 새로운 클린룸 버전이 가용성을 확보할 때마다 증가시켜야 합니다. 위에서 설명한 대로 사용 가능한 버전을 확인할 수 있습니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
provider.drop_cleanroom¶
설명: 클린룸을 삭제합니다. 클린룸이 설치된 공동 작업자는 더 이상 클린룸에 액세스하거나 사용할 수 없습니다. 클린룸은 다음에 브라우저를 새로 고칠 때 웹 앱에 더 이상 표시되지 않습니다.
인자:
cleanroom_name (string) - 삭제할 클린룸의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
provider.enable_consumer_run_analysis¶
설명: 컨슈머가 클린룸에서 분석을 실행할 수 있습니다. 이 기능은 모든 새 클린룸에서 기본적으로 활성화되어 있으므로 클린룸에 대한 컨슈머 실행 분석을 명시적으로 비활성화한 경우에만 이 프로시저를 실행하면 됩니다.
인자:
cleanroom_name (string) - 컨슈머가 운영하는 분석이 허용되는 클린룸의 이름입니다.
consumer_accounts (array of strings) - 이 기능을 활성화할 모든 컨슈머의 계정 찾기. 참고: 이 컨슈머는 이미 클린룸에 추가되어 있어야 합니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR_1>']);
provider.disable_consumer_run_analysis¶
설명: 지정된 컨슈머가 지정된 클린룸에서 분석을 실행하지 못하도록 합니다. 기본적으로 모든 컨슈머는 클린룸에서 분석을 실행할 수 있습니다.
인자:
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>']);
library.is_consumer_run_enabled¶
설명: 이 클린룸에서 컨슈머 분석이 가능한지 확인합니다.
인자:
cleanroom_name (string) - 확인할 클린룸의 이름입니다.
반환값:(string) 이 클린룸이 컨슈머 분석을 허용하는지 여부.
예:
call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
provider.create_or_update_cleanroom_listing¶
설명: 새 클린룸을 게시하거나 기존 클린룸을 업데이트합니다. 클린룸을 변경할 때마다 이 메서드를 호출하여 변경 사항이 컨슈머에게 전파되도록 해야 합니다.
클린룸을 처음 게시하는 경우 클린룸이 웹 앱에 표시되는 데 시간이 걸릴 수 있습니다(최대 15분).
나중에 이 메서드를 호출하지 않고 클린룸을 업데이트하면 변경 사항이 컨슈머에게 전파된다는 보장이 없습니다.
하나의 계정에서 만들 수 있는 Clean Rooms + 공동 작업자 수에는 제한이 있습니다. 테스트 Clean Rooms를 너무 많이 만들면 새 Clean Rooms를 만들기 위해 몇 개를 삭제해야 할 수도 있습니다. 계정에 수용 가능한 인원보다 더 많은 Clean Room이 필요한 경우 Snowflake 지원팀으로 문의하십시오.
참고
이 프로시저를 호출하기 전에 릴리스 지시어를 한 번 이상 설정해야 합니다. 자세한 내용은 provider.set_default_release_directive를 참조하십시오.
인자:
cleanroom_name (string) - 게시하거나 업데이트할 클린룸의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.create_or_update_cleanroom_listing($cleanroom_name);
데이터 등록 및 등록 취소¶
다음 명령을 사용하여 데이터베이스, 스키마, 오브젝트를 등록하고 등록을 취소합니다. 테이블과 뷰는 클린룸에 연결하기 전에 등록되어야 합니다. 데이터베이스나 스키마를 등록하면 해당 데이터베이스나 스키마에 있는 모든 오브젝트가 등록됩니다.
provider.register_db¶
설명: 이 클린룸 환경에서 데이터베이스와 그 안의 모든 오브젝트를 개별 클린룸에 링크할 수 있습니다. 이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 SAMOOHA_APP_ROLE 에 데이터베이스에 대한 USAGE 및 SELECT 권한을 부여합니다.
이 프로시저를 호출하려면 데이터베이스에 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');
library.register_schema¶
설명: register_db
와 유사하지만, 스키마 수준에서 작동합니다. 이 프로시저를 호출하려면 스키마에 대한 MANAGE GRANTS 권한이 있어야 합니다.
이 프로시저는 클린룸 환경에서 데이터에 액세스하는 데 사용되는 SAMOOHA_APP_ROLE 에 스키마에 대한 USAGE 및 SELECT 권한을 부여합니다.
관리되는 액세스 스키마(즉, 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']);
library.register_managed_access_schema¶
설명: 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']);
library.register_objects¶
설명: 클린룸에 모든 유형의 테이블 및 뷰에 대한 액세스 권한을 부여하여 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']);
library.enable_external_tables_on_account¶
설명: 이 계정의 모든 Clean Rooms에서 Iceberg 또는 외부 테이블을 사용하도록 설정합니다. Iceberg 또는 외부 테이블을 어느 한 계정으로 연결할 수 있도록 하려면 공급자 및 컨슈머 계정에서 모두 ACCOUNTADMIN 으로 호출해야 합니다. 이 기능을 이 계정의 특정 Clean Rooms로 제한하려면 enable_external_tables_for_cleanroom
을 대신 호출하십시오.
성공하고 모든 보안 검사를 통과하면 Clean Room의새 패치 버전 이 생성됩니다.
인자: 없음
반환: (string) 성공 또는 실패 메시지. 성공하면 보안 검사를 트리거하고 보안 검사에 성공할 경우 생성될 패치 번호도 제공합니다.
예:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
provider.enable_external_tables_for_cleanroom¶
설명: 공급자가 이 계정의 지정된 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);
library.unregister_db¶
설명: register_db
프로시저를 되돌리고 SAMOOHA_APP_ROLE 역할 및 Snowflake Data Clean Room 기본 애플리케이션에 부여된 데이터베이스 수준 부여를 제거합니다. 이렇게 하면 웹 앱의 선택기에서 데이터베이스도 제거됩니다.
인자:
db_name (string) - 등록을 취소할 데이터베이스의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
library.unregister_schema¶
설명: 스키마를 등록 취소하여 사용자가 해당 테이블과 뷰를 클린룸에 링크할 수 없도록 합니다.
관리되는 액세스 스키마(즉, 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']);
library.unregister_managed_access_schema¶
설명: 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']);
library.unregister_objects¶
설명: 모든 유형의 테이블 및 뷰에 대한 클린룸 액세스를 취소합니다. 이 계정으로 관리되는 모든 클린룸의 사용자는 더 이상 오브젝트를 사용할 수 없게 됩니다.
인자:
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']);
링크 데이터 및 테이블¶
다음 명령을 사용하여 클린룸에서 테이블과 뷰를 추가하거나 제거할 수 있습니다.
provider.link_datasets¶
설명: Snowflake 테이블 또는 뷰를 클린룸에 링크합니다. 이 프로시저는 클린룸 내에서 테이블의 보안 뷰를 생성하여 클린룸에서 테이블에 자동으로 액세스할 수 있도록 하므로 테이블의 복사본을 만들 필요가 없습니다. 테이블은 여전히 소스에 링크되어 있으므로 소스의 업데이트는 클린룸 내의 보안 버전에 반영됩니다.
여기에 링크된 모든 항목은 데이터베이스, 스키마 또는 오브젝트 수준에서 먼저 등록해야 합니다.
인자:
cleanroom_name (string) - 오브젝트에 액세스할 수 있는 클린룸의 이름입니다.
tables_list (array of strings) - 클린룸에 링크할 테이블 또는 뷰의 목록입니다. 오브젝트를 링크하려면 먼저 등록해야 합니다.
consumer_list(문자열 배열, 선택 사항) - 존재하면 여기에 나열된 컨슈머만 이 오브젝트에 액세스할 수 있도록 허용합니다. 없는 경우 클린룸에 액세스할 수 있는 모든 사용자가 이 데이터에 액세스할 수 있도록 허용합니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.link_datasets(
$cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
참고
뷰를 Clean Room에 연결하고 뷰가 다른 데이터베이스의 테이블을 기반으로 하는 경우 뷰와 뷰의 원본을 모두 등록해야 합니다
provider.unlink_datasets¶
설명: 모든 사용자의 지정된 클린룸의 지정된 테이블에 대한 액세스 권한을 제거합니다. 지정된 테이블은 공급자가 링크한 것이어야 합니다.
인자:
cleanroom_name (string) - 이 데이터 세트에 링크된 클린룸의 이름입니다.
tables_list (array) - 클린룸에서 연결을 해제할 테이블 또는 뷰 이름의 배열입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.unlink_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
provider.view_provider_datasets¶
설명: 이 계정의 모든 공급자가 지정된 클린룸에 링크한 모든 테이블 및 뷰를 볼 수 있습니다.
인자:
cleanroom_name (string) - 클린룸의 이름입니다.
반환: 지정된 클린룸에 연결된 오브젝트 테이블과 각 오브젝트에 대한 클린룸의 내부 뷰 이름입니다.
예:
call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
provider.restrict_table_options_to_consumers¶
설명: 특정 컨슈머가 클린룸의 테이블에 액세스할 수 있는지 여부를 제어합니다. 이 프로시저는 바꾸기 전용 으로, 이전 호출에서 설정된 모든 값을 완전히 덮어씁니다.
provider.link_datasets
, provider.restrict_table_options_to_consumers
또는 다른 메서드를 통해 액세스 권한을 부여받은 컨슈머는 이 메서드를 호출할 때 지정하지 않으면 테이블에 대한 액세스 권한을 잃게 됩니다.
인자:
cleanroom_name (String) - 제한할 Clean Room의 이름입니다.
*access_details(Object) - JSON 오브젝트로, 여기서 각 필드 이름은 테이블 또는 뷰의 정규화된 이름이고 필드 값은 해당 테이블 또는 뷰에 액세스할 수 있는 사용자의 계정 로케이터 배열입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.restrict_table_options_to_consumers(
$cleanroom_name,
{
'DB.SCHEMA.TABLE1': ['CONSUMER_1_LOCATOR'],
'DB.SCHEMA.TABLE2': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
정책 관리하기¶
데이터 Clean Rooms의 조인 정책은 Snowflake 전체 조인 정책과 동일하지 않습니다. Clean Rooms에 대한 조인 정책은 이 프로시저를 통해서만 설정되며, Clean Rooms 외부의 테이블에 설정된 조인 정책은 Clean Rooms에서 무시됩니다.
Clean Rooms의 테이블 정책에 대해 자세히 알아보십시오.
provider.view_join_policy¶
설명: 현재 클린룸에 적용된 조인 정책을 표시합니다.
인자:
cleanroom_name (string) - 쿼리할 클린룸의 이름입니다.
반환: (table) 클린룸의 모든 테이블 또는 뷰에서 조인 가능한 행 목록입니다.
예:
call samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
provider.set_join_policy¶
설명: 이 클린룸 내에서 템플릿을 실행할 때 컨슈머가 조인할 수 있는 열을 지정합니다. 정책은 바꾸기 전용 이므로 프로시저를 다시 호출하면 이전에 설정된 조인 정책이 새 정책으로 완전히 바뀝니다.
중요
조인 정책은 템플릿이 행을 조인하기 위해 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']);
공급자 템플릿 관리하기¶
다음 명령을 사용하여 이 클린룸에서 지원되는 템플릿/분석을 추가합니다.
provider.view_added_templates¶
설명: 클린룸에서 공급자가 추가한 템플릿을 봅니다. 이 공급자의 모든 클린룸에 있는 모든 템플릿을 나열하는 방법은 없습니다.
인자:
cleanroom_name (string) - 쿼리할 클린룸입니다.
반환: (table) - 지정된 클린룸에서 사용 가능한 템플릿 목록과 각 템플릿에 대한 세부 정보입니다.
예:
call samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
provider.view_template_definition¶
설명: 특정 템플릿에 대한 정보를 표시합니다. 공급자 템플릿을 보는 컨슈머는 consumer.view_template_definition
을 사용해야 합니다.
인자:
cleanroom_name (string) - 이 템플릿이 있는 클린룸의 이름입니다.
template_name (string) - 정보를 요청할 템플릿의 이름입니다.
반환: 템플릿 정의 (string)
예:
call samooha_by_snowflake_local_db.provider.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
provider.add_templates¶
설명: 클린룸에 템플릿 목록을 추가합니다. 기존 템플릿 목록은 대체되지 않습니다.
인자:
cleanroom_name (string) - 템플릿을 추가할 클린룸의 이름입니다.
template_names (array of strings) - 추가할 템플릿의 이름입니다. 이 템플릿은 Snowflake에서 제공하는 템플릿만 해당됩니다. 사용자 지정 템플릿을 추가하려면
add_custom_sql_template
을 호출하십시오. Snowflake에서 제공하는 템플릿 이름에는 “prod_overlap_analysis” 및 “prod_provider_data_analysis”가 있습니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
provider.clear_template¶
설명: 클린룸에서 지정된 템플릿을 제거합니다.
인자:
cleanroom_name (string) - 클린룸의 이름입니다.
template_name (string) - 해당 클린룸에서 제거할 템플릿의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.clear_template($cleanroom_name, 'prod_custom_template');
provider.clear_all_templates¶
설명: 클린룸에 추가된 모든 템플릿을 제거합니다.
인자:
cleanroom_name (string) - 모든 템플릿을 제거할 클린룸의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
provider.set_column_policy¶
설명: 클린룸에서 지정된 템플릿이 비조인 행으로 사용할 수 있는 데이터의 열을 설정합니다. 클린룸에서 열을 사용하려면 여기 또는 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']);
provider.view_column_policy¶
설명: 현재 클린룸에서 활동 중인 열 정책을 목록으로 표시합니다. 열 정책은 어떤 템플릿에 어떤 테이블 열을 표시할 수 있는지 알려줍니다.
**인자:**cleanroom_name (String)
반환: (table) 어떤 템플릿에서 어떤 열을 사용할 수 있는지입니다.
예:
call samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
provider.add_custom_sql_template¶
설명: 클린룸에 사용자 지정 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_obfuscated
는sensitivity
와 함께 사용할 수 없습니다.
반환: (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 %};
$$);
provider.add_ui_form_customizations¶
설명: 웹 앱에서 Clean Room을 실행할 때 Clean Room의 템플릿에 대한 사용자 지정 양식을 정의합니다. 이는 컨슈머가 테이블이나 열과 같은 템플릿 매개 변수를 선택할 수 있도록 허용할 때 유용합니다. 최소한 template_information
인자에 display_name
, description
, methodology
에 대한 값을 지정해야 합니다.
특히 열 선택기가 테이블 선택에 따라 채워지는 경우 테이블 선택 요소를 열 선택 요소 앞에 배치하는 것이 좋습니다.
이 함수를 호출한 후 Clean Room을 업데이트해야 합니다. UI 를 업데이트한 후 provider.create_or_update_cleanroom_listing
을 호출하지 않으면 공동 작업자에게는 업데이트 내용이 표시되지 않습니다.
인자:
cleanroom_name (string): 이 템플릿이 포함된 클린룸의 이름입니다. 제출된 양식은 지정된 클린룸의 지정된 템플릿에만 적용됩니다.
template_name (string): UI 가 적용되는 템플릿의 이름입니다. 이는 template_information.display_name 필드를 사용하여 지정하는 사용자가 볼 수 있는 제목이 아닙니다.
template_information(딕셔너리): UI 에서 사용자에게 표시되는 정보. 다음 필드를 포함합니다.
display_name
(필수): 웹 앱에서 템플릿의 표시 이름입니다.설명
(필수): 템플릿에 대한 설명입니다.방법론
(필수): 컨슈머가 분석을 실행하기 위해 양식을 어떻게 사용해야 하는지에 대한 설명입니다.warehouse_hints
(object): 분석을 실행하는 데 사용할 웨어하우스 유형을 추천합니다. 다음 필드가 있는 오브젝트입니다.warehouse_size
: 유효한 값은 CREATE WAREHOUSE의 warehouse_size 섹션을 참조하십시오.snowpark_optimized
(Boolean): 쿼리 처리를 위해 Snowpark 최적화 웨어하우스를 사용할지 여부입니다. 대부분의 머신 러닝 사용 사례에 대해 Snowflake는 TRUE 를 권장합니다.
render_table_dropdowns
(Object): 사용자가 쿼리에 사용할 공급자 및/또는 컨슈머 테이블을 선택할 수 있는 기본 드롭다운 목록을 표시할지 여부입니다. 다음 필드가 있는 오브젝트입니다.render_consumer_table_dropdown
: (부울, 기본값 = TRUE) TRUE 인 경우, 기본 컨슈머 테이블 선택기를 표시합니다. FALSE 인 경우 컨슈머 테이블 선택기를 숨깁니다. 템플릿은my_table
템플릿 변수를 사용하여 선택한 값에 목록으로 액세스할 수 있습니다.render_provider_table_dropdown
: (부울, 기본값 = TRUE) TRUE 인 경우, 기본 공급자 테이블 선택기를 표시합니다. FALSE 인 경우 공급자 테이블 선택기를 숨깁니다. 템플릿은source_table
템플릿 변수를 사용하여 선택한 값에 목록으로 액세스할 수 있습니다.
activation_template_name
: (String) 이 Clean Room의 활성화 템플릿 이름입니다.cleanroom
접두사 없이 템플릿 이름을 사용하십시오. 활성화 템플릿에 대해 알아보십시오.enabled_activations
: (String) 사용 설정된 활성화의 종류. 가능한 값:컨슈머
,공급자
. 기본값 없음.activation_template_name
을 지정한 경우 제공해야 합니다.
세부 정보(딕셔너리) : 템플릿에 값을 전달하는 사용자 구성 가능한 입력 필드를 정의합니다. 이는 키/오브젝트 페어의 사전으로, 각 페어는 사용자가 구성할 수 있는 UI 요소를 하나씩 나타냅니다. 키는 JinjaSQL 템플릿의 변수 이름입니다. 값은 UI 요소를 정의하는 오브젝트입니다. 각 오브젝트에는 다음과 같은 필드가 있을 수 있습니다.
<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>] }
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 를 지정합니다.그룹
: UI 에 있는 항목을 그룹화하는 데 사용되는 그룹 이름입니다. UI 에서 함께 그룹화해야 하는 항목에는 동일한 그룹 이름을 사용합니다. 기본 드롭다운 목록을 숨기려면 사용자 정의 템플릿에서{{ source_table }}
및{{ my_table}}
특수 인자를 사용한 후 원하는 테이블이 포함된 자체 드롭다운 목록을 정의할 수 있습니다. 사용자 지정 템플릿을 정의할 때 이러한 특수 변수를 사용하는 방법에 대한 자세한 내용은 provider.add_custom_sql_template 섹션을 참조하십시오.references
: 클린룸에서 사용 가능한 테이블이나 열을 미리 알고 있거나 개별적으로 나열할 필요 없이 드롭다운 목록을 생성합니다. 사용하는 경우 유형 은 “multiselect” 또는 “dropdown”이어야 합니다. 지원되는 문자열 값은 다음과 같습니다.PROVIDER_TABLES
: 사용자가 액세스할 수 있는 클린 룸의 모든 공급자에 대한 테이블 드롭다운 목록입니다.PROVIDER_JOIN_POLICY
:provider_parent_table_field
에 지정된 공급자 테이블에서 조인할 수 있는 모든 열의 드롭다운 목록입니다.PROVIDER_COLUMN_POLICY
:provider_parent_table_field
에 지정된 공급자 테이블에 열 정책이 있는 모든 열의 드롭다운 목록입니다.PROVIDER_ACTIVATION_POLICY
: 공급자의 활성화 정책에 있는 모든 열의 드롭다운 목록입니다.CONSUMER_TABLES
: 사용자가 액세스 할 수 있는 클린 룸의 모든 컨슈머 테이블의 드롭다운 목록입니다.CONSUMER_COLUMNS
: 사용자가 액세스할 수 있는 consumer_parent_table_field 에 지정된 컨슈머 테이블의 모든 열의 드롭다운 목록입니다. 공급자가 실행하는 템플릿에서는 컨슈머가 조인 및 열 정책을 적용하여 열에 대한 정책이 준수되지 않을 때 쿼리가 실패할 수 있으므로 컨슈머 열 참조를 사용해서는 안 됩니다.CONSUMER_JOIN_POLICY
:consumer_parent_table_field
에 지정된 컨슈머 테이블에서 조인할 수 있는 모든 열의 드롭다운 목록입니다.CONSUMER_COLUMN_POLICY
:consumer_parent_table_field
에 지정된 컨슈머 테이블에 열 정책이 있는 모든 열의 드롭다운 목록입니다.
provider_parent_table_field
: 사용자가 공급자 테이블을 선택하는 UI 요소의 이름을 지정합니다(여기에는 테이블 이름 자체를 제공하지 마십시오). 참조 가PROVIDER_COLUMN_POLICY
또는PROVIDER_JOIN_POLICY
로 설정된 경우에만 사용하십시오.consumer_parent_table_field
: 사용자가 컨슈머 테이블을 선택하는 UI 요소의 이름을 지정합니다(여기에는 테이블 이름 자체를 제공하지 마십시오). 참조 가CONSUMER_COLUMNS
,CONSUMER_JOIN_POLICY
또는CONSUMER_COLUMN_POLICY
로 설정된 경우에만 사용하십시오.
output_config(Dict) 웹 애플리케이션에서 템플릿 결과를 그래픽으로 표시하는 방법을 정의합니다. 공급자가 제공하지 않으면 결과가 그래프로 표시되지 않고 테이블로만 표시됩니다. 그래프를 원하지 않는 경우 이 인자에 빈 오브젝트 {}를 제공하십시오. 허용된 필드:
measure_columns
: 웹 애플리케이션에서 생성된 그래프에서 사용할 측정값 및 차원이 포함된 열의 이름입니다.default_output_type
: 결과를 표시할 기본 형식입니다. 사용자는 일반적으로 데이터가 적절한 형식인 경우 UI 에서 표시 형식을 변경할 수 있습니다. 지원되는 데이터 타입:TABLE
: (기본값) 테이블 형식BAR
: 다양한 카테고리를 비교하기에 좋은 막대 차트LINE
: 시간 경과에 따른 추세 또는 연속 데이터를 표시하는 데 좋은 꺾은선형 차트PIE
: 비율 또는 백분율을 표시하는 데 적합한 원형 차트
반환: (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'
}
);
provider.restrict_template_options_to_consumers¶
설명: 지정된 클린룸에서 지정된 템플릿에 액세스할 수 있는 사용자를 제어합니다. 이 프로시저는 이전에 클린룸/템플릿 쌍에 대해 다른 프로시저에서 지정한 액세스 목록을 재정의합니다.
인자:
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']
}
);
컨슈머 정의 템플릿¶
다음은APIs컨슈머가 클린룸에 템플릿을 추가하라는 요청을 승인하거나 거부할 수 있습니다. 컨슈머가 정의한 템플릿은 공급자가 컨슈머의 추가 요청을 승인한 경우에만 클린룸에 추가됩니다. 자세한 내용은 개발자 API를 사용하여 컨슈머 정의 템플릿 추가하기 섹션을 참조하십시오.
provider.list_pending_template_requests¶
설명: Clean Room에 컨슈머 정의 템플릿을 추가하려는 컨슈머의 모든 승인되지 않은 요청을 나열합니다. 여기에는 보류 중, 승인된, 거부된 요청이 포함됩니다. 이 프로시저를 사용하여 보류 중인 요청을 확인하고 승인(provider.approve_template_request
)하거나 거부(provider.reject_template_request
)할 수 있습니다.
인자:
cleanroom_name (string) - 이 클린룸에 템플릿을 추가하려는 컨슈머의 요청을 봅니다.
반환: 다음 값을 포함한 테이블을 반환합니다.
request_id (string) - 요청을 수락하거나 거부하는 데 필요한 요청의 ID - consumer_locator (string) - 요청을 한 사용자의 계정 찾기. template_name (string) - 컨슈머가 제공한 템플릿의 이름. template_definition (string) - 컨슈머가 제공한 템플릿의 전체 정의. status (string) - 요청의 상태로, , , .
예:
call samooha_by_snowflake_local_db.provider.list_pending_template_requests($template_name);
provider.list_template_requests¶
설명: 클린룸에 컨슈머 정의 템플릿을 추가하려는 컨슈머의 모든 요청을 목록으로 표시합니다. 여기에는 보류 중 요청, 승인된 요청, 거부된 요청이 포함됩니다. 이를 사용하여 보류 중인 요청을 확인하고 승인(provider.approve_template_request
)하거나 거부(provider.reject_template_request
)할 수 있습니다.
인자:
cleanroom_name (string) - 이 클린룸에 템플릿을 추가하려는 컨슈머의 요청을 봅니다.
반환: 다음 값을 포함한 테이블을 반환합니다.
request_id (string) - 요청을 수락하거나 거부하는 데 필요한 요청의 ID - consumer_identifier (string) - 요청을 한 사용자의 계정 찾기. template_name (string) - 컨슈머가 제공한 템플릿의 이름. template_definition (string) - 컨슈머가 제공한 템플릿의 전체 정의. status (string) - 요청의 상태로, PENDING, APPROVED, REJECTED.
예:
call samooha_by_snowflake_local_db.provider.list_template_requests($template_name);
provider.approve_template_request¶
설명: 클린룸에 템플릿을 추가하라는 요청을 승인합니다.
인자:
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');
provider.approve_multiple_template_requests¶
설명: 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']);
provider.reject_template_request¶
설명: 클린룸에 템플릿을 추가하라는 요청을 거부합니다.
인자:
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('dcr_cleanroom',
'cfd538e2-3a17-48e3-9773-14275e7d2cc9',
'Failed security assessment');
provider.reject_multiple_template_requests¶
설명: 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')
]);
템플릿 체인¶
템플릿 체인을 생성하고 관리하려면 다음 명령을 사용합니다.
provider.add_template_chain¶
설명: 새 템플릿 체인을 생성합니다. 이전에 존재하는 템플릿만 템플릿 체인에 추가할 수 있습니다. 템플릿 체인이 생성된 후에는 수정할 수 없지만 같은 이름의 새 템플릿 체인을 만들어 이전 템플릿 체인을 덮어쓸 수는 있습니다.
인자:
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
}
]
);
provider.view_added_template_chains¶
설명: 지정된 클린룸에 있는 템플릿 체인을 목록으로 표시합니다.
인자:
cleanroom_name (string) - 클린룸의 이름입니다.
반환: (table) 이 클린룸에 추가된 모든 템플릿 체인에 대한 설명입니다.
예:
call samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
provider.view_template_chain_definition¶
설명: 템플릿 체인의 정의를 반환합니다.
인자:
cleanroom_name (string) - 이 템플릿 체인과 연결된 클린룸의 이름입니다.
template_chain_name (string) - 이 클린룸과 연결된 템플릿 체인의 이름입니다.
반환: (table) 지정된 템플릿 체인에 대한 설명.
예:
call samooha_by_snowflake_local_db.provider.view_template_chain_definition($cleanroom_name, 'my_chain');
provider.clear_template_chain¶
설명: 지정된 클린룸에서 지정된 템플릿 체인을 삭제합니다. 체인은 어디에도 저장되지 않으므로 체인을 다시 생성하려면 처음부터 다시 생성해야 합니다.
인자:
cleanroom_name (string) - 이 템플릿 체인이 할당된 클린룸입니다.
template_chain_name (string) - 이 클린룸에서 제거할 템플릿 체인입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'my_chain');
다중 공급자 분석¶
이러한 프로시저를 통해 다중 공급자 분석 을 활성화합니다.
provider.enable_multiprovider_computation¶
설명: 이 프로시저를 사용하면 지정된 사용자가 요청할 때 지정된 템플릿과 함께 Clean Room의 테이블을 지정된 Clean Room의 테이블과 함께 사용할 수 있습니다. 이 프로시저를 통해 컨슈머는 여러 Clean Rooms의 데이터에 대해 쿼리를 실행할 수 있습니다. 이 프로시저는 이러한 요청을 자동으로 승인하지는 않지만 이 Clean Room에 대한 다중 공급자 요청 로그 에 요청을 로그하여 지정된 사용자 및 Clean Rooms에 대한 수동 또는 자동 승인 프로세스를 시작할 수 있도록 합니다.
이 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>);
provider.view_multiprovider_requests¶
설명: 지정된 계정 및 클린룸에서 다중 공급자 분석에 대한 모든 요청을 표시합니다. 여기에는 승인된 요청과 거부된 요청이 모두 포함됩니다. 공급자는 이 프로시저를 사용하여 요청을 폴링하여 수동으로 승인하기 위해 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);
provider.process_multiprovider_request¶
설명: 모든 검사가 통과되면 지정된 다중 공급자 쿼리의 실행을 승인합니다. 확인 사항에는 요청의 나이와 공급자가 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);
provider.suspend_multiprovider_tasks¶
설명: 지정된 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);
provider.resume_multiprovider_tasks¶
설명: 지정된 Clean Room에서 지정된 사용자에 대한 다중 공급자 분석을 자동으로 검토하고 승인(적격 쿼리에 대해)할 수 있습니다. Clean Room의 경우 자동 검토는 기본적으로 비활성화되어 있습니다.
자동 승인을 중지하려면 provider.suspend_multiprovider_tasks
를 호출하십시오.
인자:
cleanroom_name (string) - 클린룸의 이름입니다.
consumer_account (String) - 이 Clean Room에서 여러 공급자의 요청을 큐에 넣을 컨슈머의 계정 로케이터입니다.
반환: (string) 성공 또는 실패 메시지.
예:
CALL samooha_by_snowflake_local_db.provider.resume_multiprovider_tasks('my_cleanroom', $consumer_locator);
활성화¶
활성화 는 공급자, 컨슈머 또는 서드 파티에게 결과를 내보내는 것을 의미합니다. 활성화에 대해 자세히 알아보십시오.
provider.set_activation_policy¶
설명: 활성화 템플릿 내에서 사용할 수 있는 공급자 열을 정의합니다. 활성화 정책에 목록에 있는 열만 공급자의 데이터 세트에서 활성화할 수 있습니다. 활성화 정책을 설정하지 않으면 공급자 데이터가 활성화되지 않습니다.
이 프로시저를 호출하면 공급자가 설정한 이전 활성화 정책이 모두 지워집니다.
인자:
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' ]);
provider.request_provider_activation_consent¶
설명: 공급자가 지정된 템플릿을 실행하고 그 결과를 공급자의 Snowflake 계정으로 푸시하도록 허용하는 요청을 컨슈머에게 보냅니다. 백그라운드에서 Clean Room의 공급자 활성화 템플릿 목록에 템플릿을 추가합니다. 템플릿이 활성화 템플릿으로 지정되면 활성화 요청에만 사용할 수 있습니다.
인자:
cleanroom_name (string) - 활성화 템플릿이 포함된 클린룸입니다.
template_name (string) - 승인을 요청할 활성화 템플릿의 이름입니다. 이 템플릿은 이전 호출에서 클린룸에 추가한 적이 있어야 합니다. 템플릿 이름은 “activation_”으로 시작해야 합니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.request_provider_activation_consent(
$cleanroom_name, 'activation_my_activation_template');
provider.update_activation_warehouse¶
설명: 공급자 활성화에서 결과를 출력 테이블로 암호 해독할 때 사용할 웨어하우스 크기를 지정합니다. 암호 해독에 사용되는 웨어하우스는 DCR_ACTIVATION_WAREHOUSE 입니다. 공급자가 이 웨어하우스에 대한 비용을 지불합니다.
인자:
size (String) - 웨어하우스 크기입니다. CREATE WAREHOUSE 명령에서 WAREHOUSE_SIZE 값 중 하나를 선택합니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.provider.update_activation_warehouse('LARGE');
공급자로 분석 실행하기¶
provider.enable_provider_run_analysis¶
설명: 공급자(클린룸 생성자)가 지정된 클린룸에서 분석을 실행할 수 있도록 합니다. 이 기능은 기본적으로 비활성화되어 있습니다. 그런 다음 컨슈머는 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>']);
provider.disable_provider_run_analysis¶
설명: 공급자(클린룸 생성자)가 클린룸에서 분석을 실행하지 못하도록 합니다(기본적으로 비활성화됨).
중요
이 프로시저는 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>']);
library.is_provider_run_enabled¶
설명: 이 클린룸에서 공급자 실행 분석을 허용하는지 확인합니다.
인자:
cleanroom_name (string) - 확인할 클린룸의 이름입니다.
반환: (string) 이 클린룸에서 공급자 실행 분석을 허용하는지 여부.
예:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
provider.view_warehouse_sizes_for_template¶
설명: 지정된 템플릿으로 공급자 실행 분석에 사용할 수 있는 웨어하우스 크기 및 유형 목록을 봅니다. 컨슈머는 먼저 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);
provider.submit_analysis_request¶
설명: 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.
));
provider.check_analysis_status¶
설명: 공급자는 공급자 분석 요청의 상태를 확인하기 위해 이 프로시저를 호출합니다. 요청 상태를 확인하기까지 상당한 지연이 발생할 수 있습니다. 분석이 완료로 표시되면 provider.get_analysis_result
를 호출하여 결과를 확인합니다.
인자:
cleanroom_name (string) - 요청이 이루어진 클린룸의 이름입니다.
request_id (string) - ID 요청의
provider.submit_analysis_request
에서 반환합니다.consumer_account_locator (string) - 요청이 전송된 컨슈머의 계정 위치입니다.
반환: (string) 요청의 상태, 여기서 COMPLETED
는 분석이 성공적으로 완료되었음을 의미합니다. 가능한 상태:
IN-PROGRESS: 분석이 진행 중입니다.
FAILED: 분석 실행 중에 문제가 발생했습니다.
COMPLETED: 분석이 완료되었습니다.
NOT FOUND: 제공된 인자로 인해 결과가 나오지 않았습니다(예: 잘못된 요청 ID).
예:
-- 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>'
);
provider.get_analysis_result¶
설명: 공급자 실행 분석에 대한 결과를 가져옵니다. 분석 상태가 COMPLETED 로 목록에 표시될 때까지 기다려야 결과를 확인할 수 있습니다. 결과는 클린룸에 영구적으로 유지됩니다.
인자:
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
);
클린룸 공유 관리¶
다음 명령을 사용하여 컨슈머와의 클린룸 공유를 관리하십시오.
provider.view_consumers¶
설명: 클린룸에 대한 액세스 권한이 부여된 컨슈머를 목록으로 표시합니다. 컨슈머가 클린룸을 설치했는지 여부는 표시되지 않습니다.
인자:
cleanroom_name (string) - 관심 있는 클린룸입니다.
반환: (table) - 클린룸에 액세스할 수 있는 컨슈머 계정 목록입니다.
예:
call samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
provider.add_consumers¶
설명: 지정된 사용자에게 지정된 클린룸에 대한 액세스 권한을 부여합니다. 클린룸은 웹 앱과 API 를 통해 액세스할 수 있습니다. 이렇게 해도 이전 호출의 컨슈머 목록을 덮어쓰지 않습니다. Clean Room 액세스 권한은 전체 계정이 아닌 특정 사용자에게 부여됩니다. Clean Room에 액세스하려면 컨슈머 계정이 공급자와 동일한 Snowflake Region에 있어야 한다는 점에 유의하십시오. select current_region();
을 호출하여 리전을 확인할 수 있습니다.
provider.view_consumers
를 호출하여 현재 컨슈머 목록을 확인할 수 있습니다.
인자:
cleanroom_name (string) - 지정된 사용자와 공유할 클린룸의 이름입니다. 사용자는 API 또는 웹 앱을 사용하여 클린룸을 설치할 수 있습니다.
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_tasks
및privacy_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"
}}');
provider.remove_consumers¶
설명: 지정된 클린룸에 대한 계정 액세스 권한을 제거합니다. 이 방법은 제공된 계정의 모든 사용자의 액세스를 차단합니다.
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');
provider.set_cleanroom_ui_accessibility¶
설명: 이 공급자 계정에 로그인한 모든 사용자에게 웹 앱에서 클린룸을 표시하거나 숨깁니다.
인자:
cleanroom_name (string) - 클린룸의 이름.
visibility_status (string) - 대소문자를 구분하는 다음 값 중 하나입니다.
HIDDEN - 현재 공급자 계정의 모든 사용자로부터 웹 앱의 클린룸을 숨깁니다. 클린룸은 API 호출을 통해 계속 액세스할 수 있습니다.
EDITABLE - 웹 앱에서 클린룸을 표시합니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
클라우드 간 협업¶
Clean Room을 다른 클라우드 리전의 컨슈머와 공유할 수 있도록 설정하십시오. 자세히 알아보십시오.
library.enable_laf_on_account¶
설명: 현재 계정에서 클라우드 간 자동 복제를 사용하도록 설정합니다. ACCOUNTADMIN 역할이 필요합니다.
인자: 없음
반환: (문자열) 성공 메시지.
예:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
library.is_laf_enabled_on_account¶
설명: 이 계정에 대해 클라우드 간 자동 복제가 사용 설정되어 있는지 여부를 반환합니다.
반환: 이 계정에 크로스 클라우드 자동 복제가 활성화된 경우 TRUE 이고, 그렇지 않은 경우 FALSE 입니다.
예:
call samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
provider.enable_laf_for_cleanroom (사용되지 않음)¶
이 함수는 이제 더 이상 사용되지 않으며 해당 기능은 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);
provider.request_laf_cleanroom_requests¶
설명: 특정 컨슈머에 대해 공급자 측에서 클라우드 간 요청 공유를 설정합니다. 계정 관리자는 먼저 클라우드 간 자동 복제를 활성화해야 하며, 컨슈머는 consumer.setup_cleanroom_request_share_for_laf
를 호출해야 합니다.
이 프로세스는 공급자와 컨슈머가 서로 다른 클라우드 리전에 있는 컨슈머 정의 템플릿에 필요합니다.
이 프로시저를 반복해서 호출하여 요청 상태를 확인할 수 있습니다. 상태가 FULFILLED 에 도달하면 provider.mount_laf_cleanroom_requests_share
를 호출할 수 있습니다. 상태가 FULFILLED 에 도달하는 데 10분 정도 걸릴 수 있습니다.
인자:
cleanroom_name (String) - 클라우드 간 요청 공유를 활성화할 Clean Room의 이름입니다.
consumer_locator (String) - 클라우드 간 요청 공유를 활성화할 컨슈머의 계정 로케이터입니다.
반환: (String) 요청의 상태 메시지: 생성됨, 보류 중 또는 복제됨.
예:
CALL samooha_by_snowflake_local_db.provider.request_laf_cleanroom_requests(
$cleanroom_name, $consumer_locator);
클린룸에서 Python 사용¶
provider.load_python_into_cleanroom¶
설명: 클린룸에 사용자 정의 Python 함수를 로드합니다. 이 프로시저를 사용하여 클린룸에 로딩된 코드는 컨슈머에게 보이지 않습니다. 업로드한 코드는 진자 템플릿으로 호출할 수 있습니다.
클린룸에서 Python 코드를 업로드하고 사용하는 방법을 알아보십시오.
이 프로시저는 클린룸의 패치 번호를 증가시키고 보안 검사를 트리거합니다. 스캔 상태가 APPROVED 가 될 때까지 기다려야 공동 작업자와 최신 버전을 공유할 수 있습니다.
이 프로시저는 오버로드되어 있으며, 코드를 인라인으로 업로드할지 아니면 스테이지의 파일에서 로딩할지를 결정하는 다섯 번째 인자의 데이터 타입이 다른 두 개의 서명이 있습니다.
서명¶
인라인 UDF 업로드:
(cleanroom_name String, function_name String, arguments Array, packages Array, rettype String, handler String, code String)
스테이지에서 UDF 업로드:
(cleanroom_name String, function_name String, arguments Array, packages Array, imports Array, rettype String, handler String)
인자:
cleanroom_name (string) - 스크립트를 로딩할 클린룸의 이름입니다.
function_name (string) - 이 패키지의 이름입니다. 사용자 정의 템플릿에서 이 이름을 사용하여 처리기 에 지정된 함수를 인자 에 설명된 인자와 함께 호출합니다.
arguments(문자열 쌍의 배열) - 함수에 필수 인자의 배열 function_name. 각 인자는 인자 이름과 SQL 데이터 타입이 공백으로 구분된 문자열 쌍입니다. 이는 사용자 설명서에 사용되며 유효성이 검사되지 않습니다. 예: ‘크기 정수’, ‘월 문자열’, ‘데이터 베리언트’.
packages (array of strings) - 코드에서 사용하는 Python 패키지 이름 목록입니다. UDFs 는 업로드된 다른 UDFs 를 호출할 수 없는 표준 Python 패키지여야 합니다.
가져오기(Array of string with single element) - 스테이지에서 UDF 를 업로드할 때만 표시됩니다. 코드를 업로드한 스테이지를 기준으로 스테이지 주소라는 단일 요소가 포함된 문자열 배열입니다. 루트 스테이지 경로는
provider.get_stage_for_python_files
를 호출하여 사용할 수 있습니다.ret_type (string) - SQL 함수 처리기 가 반환한 값의 데이터 타입. 예: ‘정수’, ‘베리언트’.
handler (string) - 템플릿이 function_name 을 호출할 때 호출해야 하는 코드의 진입점 함수입니다.
인라인 UDF 의 경우 함수 이름입니다(예:
main
).스테이지에서 업로드된 코드의 경우 소스 파일 이름으로 한정된 함수 이름입니다(예:
myscript.main
).
코드 (string) - UDF 를 인라인 코드로 업로드할 때만 표시됩니다. 이는 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 variant', '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)
$$
);
-- Upload from stage
call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'myfunc', # Name of the UDF
['data variant', 'index integer'], # Arguments of the UDF
['numpy', 'pandas'], # Packages UDF will use
['/test_folder/assign_group.py'], # Python file to import from a stage
'integer', # Return type of UDF
'assign_group.main' # Handler scoped to file name
);
provider.get_stage_for_python_files¶
설명: 클린룸에서 사용자 정의 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);
provider.view_cleanrooom_scan_status¶
설명: DISTRIBUTION 으로 설정된 클린룸의 위협 검사 상태를 EXTERNAL 로 보고합니다. 기본 릴리스 지시어를 설정하거나 변경하려면 스캔을 “APPROVED”로 표시해야 합니다. 스캔 상태는 EXTERNAL 클린룸으로만 확인해야 합니다.
인자:
cleanroom_name (string) - 상태를 확인할 클린룸의 이름입니다.
반환: (string) 스캔 상태입니다.
예:
call samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
클린룸 메타데이터 가져오기 명령¶
다음 명령을 사용하여 클린룸의 관련 속성을 표시합니다.
library.view_external_activation_history¶
설명: 현재 계정의 활성화 요청 기록을 봅니다.
인자: 없음
반환: 활성화 요청의 세부 정보 및 상태가 포함된 테이블.
예:
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
provider.mount_request_logs_for_all_consumers¶
설명: 공급자가 클린룸의 컨슈머로부터 공급자에게 돌아오는 정보에 액세스할 수 있도록 합니다. 이 프로시저는 API 참조에 설명된 대로 다양한 상황에서 호출해야 컨슈머 정보를 가져오거나 공유하기 시작할 수 있습니다.
인자:
cleanroom_name (string) - 요청 로그를 마운트할 클린룸의 이름입니다.
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
provider.view_request_logs¶
설명: 이 클린룸의 컨슈머로부터 전송되는 요청 로그를 봅니다. 이 기능을 처음 호출하기 전에 mount_request_logs_for_all_consumer
를 호출해야 합니다.
인자:
cleanroom_name (string) - 요청 로그를 검토할 클린룸의 이름입니다.
반환: 클린룸 (table)에 대해 실행 중인 쿼리에 대해 기록된 로그 세트입니다
예:
call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
차등 개인정보 보호¶
이러한 명령은 사용자 수준 또는 공급자 계정 수준에서 차등 개인정보 보호를 제어합니다. 차등 개인정보 보호에 대해 자세히 알아보십시오.
provider.set_privacy_settings¶
설명: 지정된 고객이 사용자 지정 템플릿을 실행할 때 적용되는 개인정보 보호 설정을 설정(또는 재설정)합니다. 이렇게 하면 이 컨슈머에 대한 모든 기존 설정을 덮어씁니다.
인자:
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 });
provider.is_dp_enabled_on_account¶
설명: 이 계정에 대해 차등 개인정보 보호가 사용 설정되어 있는지 여부를 설명합니다.
인자: 없음
반환: 이 계정에 대해 차등 개인정보 보호가 활성화된 경우 TRUE, 그렇지 않은 경우 FALSE.
예:
call samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
provider.suspend_account_dp_task¶
설명: 차등 개인정보 보호 예산을 모니터링하고 적용하는 작업을 비활성화합니다. 이는 계정의 차등 개인정보 보호와 관련된 비용을 제어하는 데 사용됩니다. 차등 개인정보 보호 작업을 비활성화해도 차등 개인정보 보호가 지정된 사용자, 템플릿 또는 Clean Rooms의 쿼리에는 여전히 노이즈가 추가되지만 예산 제한이 적용되지 않으며 차등 개인정보 보호로 인한 비용이 발생하지 않습니다. 차등 개인정보 보호 관리에 대해 자세히 알아보십시오.
인자: 없음
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
provider.resume_account_dp_task¶
설명: 현재 계정에서 차등 개인정보 보호 작업 리스너를 다시 시작하면 차등 개인정보 보호 예산이 적용됩니다. 이전에 설정한 모든 차등 개인정보 보호 값(예: 민감도 또는 연결된 사용자)은 유지됩니다.
인자: 없음
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.resume_account_dp_task();
Snowpark Container Services 명령¶
이 프로시저를 통해 Clean Room 내부에서 Snowpark Container Services를 사용 할 수 있습니다.
provider.load_service_into_cleanroom¶
설명: Clean Room에서 컨테이너 서비스를 만들거나 업데이트합니다. 이 프로시저를 호출하면 Clean Room 패치 번호가 업데이트되므로 이 프로시저를 호출한 후 provider.set_default_release_directive
를 호출해야 합니다. 서비스를 만들거나 업데이트할 때마다 이 프로시저를 호출해야 합니다. 그런 다음 클라이언트는 consumer.start_or_update_service
를 호출하여 업데이트를 확인해야 합니다.
- ref:
Clean Room에서 Snowpark Container Services를 사용하는 방법에 대해 알아보십시오. <label-cleanrooms_using_spcs>
인자:
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
$$);
일반 도우미 명령¶
다음 명령을 사용하여 일반적으로 클린룸 기능 및 지원되는 플로우를 활용하는 데 도움을 받을 수 있습니다.
library.enable_local_db_auto_upgrades¶
설명: 새 버전이 릴리스될 때 Snowflake Data Clean Rooms Native App을 자동으로 업그레이드하는 작업(samooha_by_snowflake_local_db.admin.expected_version_task
)을 활성화합니다. 이 작업을 비활성화하면 비용을 절감할 수 있지만, 시스템에 최신 버전의 클린룸 기본 앱이 설치되어 있는지 확인하기 위해 실행 상태로 두는 것이 좋습니다.
인자: 없음
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
library.disable_local_db_auto_upgrades¶
설명: 새 버전이 릴리스될 때 Snowflake Data Clean Rooms Native App을 자동으로 업그레이드하는 작업(samooha_by_snowflake_local_db.admin.expected_version_task
)을 비활성화합니다.
인자: 없음
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
사용되지 않는 프로시저¶
다음 프로시저는 더 이상 사용되지 않으며 완전성을 위해 여기에만 나열되어 있습니다. 교체 프로시저가 표시되면 최신 프로시저를 사용합니다.
provider.view_ui_registration_request_log – DEPRECATED¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 더 이상 웹 앱에서 사용하기 위해 클린룸 템플릿을 수동으로 등록할 필요가 없습니다.
설명: 웹 앱에 클린룸을 등록하기 위해 계정에서 발생한 요청 목록을 봅니다. 각 요청에는 view_ui_registration_log
프로시저와 함께 사용하여 요청의 상태를 볼 수 있는 ID 링크가 있습니다. 요청은 백엔드로 공유되어 처리되고 클린룸에 추가됩니다.
인자:
반환: (string) 성공 또는 실패 메시지.
예:
call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
library.register_table_or_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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);
Iceberg 테이블을 등록하려면:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
true,
false,
false);
library.register_table – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.register_managed_access_table – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.register_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.register_managed_access_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.unregister_table_or_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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);
library.unregister_table – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.unregister_managed_access_table – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.unregister_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
library.unregister_managed_access_view – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 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']);
provider.create_cleanroom_listing – 사용 중단됨¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 대신 [공급자_생성 또는 업데이트_클린룸_목록](#공급자_생성 또는 업데이트_클린룸_목록)을 사용하십시오.
설명: 클린룸을 구성한 후 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>);
provider.register_cleanroom_in_ui – DEPRECATED¶
주의
이 명령은 이제 더 이상 사용되지 않습니다. 더 이상 웹 앱에서 사용하기 위해 클린룸 템플릿을 수동으로 등록할 필요가 없습니다.
설명: 컨슈머가 웹 앱에서 사용할 클린룸을 등록합니다. 클린룸은 공급자가 개발자 APIs를 사용하여 생성하고 구성합니다. 이 명령을 사용하면 컨슈머가 웹 앱에 등록하여 설치한 후 테이블을 추가하고 개발자 APIs 를 사용할 필요 없이 추가한 사용자 지정 분석을 실행할 수 있습니다. 웹 앱의 사용자 인터페이스를 통해 전적으로 클린룸에서 작업합니다.
이 API를 두 번 이상 호출하여 웹 앱에 여러 사용자 지정 템플릿을 포함시킬 수 있습니다.
**인자:**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>)