Snowflake Data Clean Rooms: 컨슈머 API 참조 가이드¶
이 페이지에서는 Clean Rooms API 컨슈머가 Clean Rooms를 관리하기 위해 사용하는 프로시저에 대해 설명합니다. 코딩 설정 지침은 코딩 설정 섹션을 참조하십시오.
역할 액세스 관리하기¶
grant_run_on_cleanrooms_to_role¶
- 스키마:
CONSUMER
설명: 지정된 역할에 지정된 Clean Rooms에서 프로시저의 하위 세트를 실행할 수 있는 권한을 부여합니다. Clean Rooms는 이 계정으로 생성 하는 것이 아니라 이 계정에 설치 해야 합니다. (즉, 귀하가 컨슈머인 Clean Rooms만 해당됩니다.)
클린룸에 제한적인 사용 권한을 부여하려면 사용자에게 SAMOOHA_APP_ROLE이 아닌 지정된 역할을 부여하세요. 역할 액세스에 대한 자세한 내용은 제한된 API 액세스 권한 부여하기 섹션을 참조하세요.
여기에 지정된 역할을 사용하여 다음 프로시저를 실행할 수 있습니다.
consumer.view_added_templates
consumer.view_added_template_chains
consumer.get_arguments_from_template
consumer.view_column_policy
consumer.view_consumer_datasets
consumer.view_join_policy
consumer.view_provider_column_policy
consumer.view_provider_datasets
consumer.view_provider_join_policy
consumer.view_remaining_privacy_budget
consumer.run_analysis
consumer.view_provider_activation_policy
consumer.view_activation_policy
consumer.run_activation
인자:
cleanroom_names (문자열) - 지정된 역할에 제한된 액세스 권한을 부여할 모든 클린룸의 이름입니다.
run_role_name(문자열) - 지정된 Clean Rooms에 대한 권한이 제한된 역할의 이름입니다. 이 프로시저를 호출하기 전에 역할을 만들어야 합니다.
반환: (문자열) - 성공 메시지.
예:
CREATE ROLE MARKETING_ANALYST_ROLE;
CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'MARKETING_ANALYST_ROLE'
);
revoke_run_on_cleanrooms_from_role¶
- 스키마:
CONSUMER
설명: 지정된 클린룸에서 지정된 역할의 권한을 취소합니다. 사용자에게 취소되지 않은 역할에 대한 액세스 권한이 있거나 SAMOOHA_APP_ROLE이 있는 경우에도 지정된 클린룸에서 클린룸 프로시저를 실행할 수 있습니다.
인자:
cleanroom_names (문자열) - 이 계정에 있는 하나 이상의 클린룸 이름입니다.
run_role_name(문자열) - 이 계정에서 지정된 Clean Rooms에 대한 권한이 더 이상 제한되지 않아야 하는 역할의 이름입니다.
반환: (문자열) - 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.revoke_run_on_cleanrooms_from_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'TEMP_USERS_ROLE'
);
클린룸 설치¶
클린룸을 설치하거나 제거하는 절차입니다.
install_cleanroom¶
- 스키마:
CONSUMER
설명: 지정된 공급자가 만든 클린룸을 설치(조인)합니다. 이를 여러 번 호출하면 매번 기존 클린룸이 지워집니다. 두 번째 설치가 완료되기 전에 중단하면 클린룸이 손상되며, 이 절차를 완료해야 클린룸을 사용할 수 있습니다.
인자:
cleanroom_name (문자열) - 설치할 클린룸의 이름입니다.
provider_account_locator(문자열) - 이 Clean Room을 생성한 공급자의 계정 로케이터입니다.
반환: (문자열) 성공 메시지.
오류 처리:
“Cross-Cloud Auto-Fulfillment is not enabled for this account”라는 오류가 표시되면 공급자가 다른 클라우드 호스팅 리전에 있다는 의미입니다. Snowflake Data Clean Rooms 에서 클라우드 간 자동 복제 관리하기 섹션에 설명된 대로 클라우드 간 자동 복제를 활성화해야 합니다.
예:
CALL samooha_by_snowflake_local_db.consumer.install_cleanroom(
$cleanroom_name,
$provider_locator);
is_enabled¶
- 스키마:
CONSUMER
설명: 클린룸 설치 후 사용할 준비가 되기까지 약간의 지연이 있을 수 있습니다. 이 프로시저를 호출하여 설치 후 클린룸을 사용할 준비가 되었는지 확인할 수 있습니다.
인자:
cleanroom_name (문자열) - 상태를 확인할 클린룸의 이름입니다.
반환: (부울) 지정된 클린룸이 설치되어 사용할 준비가 되었는지 여부입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
uninstall_cleanroom¶
- 스키마:
CONSUMER
설명: 컨슈머 계정에서 클린룸을 제거합니다. 이는 공유 클린룸 데이터베이스를 포함하여 클린룸과 관련된 모든 데이터베이스를 제거합니다. 클린룸은 항상 consumer.install_cleanroom
을 호출하여 다시 설치할 수 있습니다.
인자:
cleanroom_name (문자열) - 제거할 클린룸의 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
클라우드 간 협업¶
다른 클라우드 리전에 생성된 클린룸을 설치합니다.
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();
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();
is_laf_enabled_for_cleanroom¶
- 스키마:
CONSUMER
설명: 이 Clean Room에 대해 클라우드 간 자동 복제가 활성화되었는지 여부를 설명합니다. 클라우드 간 자동 복제는 계정 관리자가 구성해야 합니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
반환: 이 Clean Room에 대해 클라우드 간 자동 복제가 활성화되었는지 여부.
예:
CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
request_laf_cleanroom¶
- 스키마:
CONSUMER
설명: 다른 클라우드 리전에 생성된 클린룸을 설치하기 위한 전제 조건을 설정합니다. 이 프로시저를 호출하기 전에 consumer.install_cleanroom
을 호출하면 실패합니다. 이 프로시저는 호출할 때마다 현재 상태를 반환합니다. 상태가 FULFILLED가 될 때까지 주기적으로 호출한 다음, consumer.install_cleanroom
을 호출합니다. 상태가 FULFILLED가 될 때까지 최대 10분이 걸릴 수 있습니다.
인자:
cleanroom_name (문자열) - 설치할 리전 간 클린룸의 이름입니다.
provider_locator(문자열) - 이 Clean Room을 만든 공급자의 계정 로케이터입니다.
반환: (문자열) 요청의 상태 메시지. 상태가 FULFILLED 가 될 때까지 계속 호출합니다.
예:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
$cleanroom_name,$provider_locator);
공급자 실행 분석¶
공급자 실행 분석에 대한 자세한 내용은 공급자 실행 분석 섹션을 참조하세요.
is_provider_run_enabled¶
- 스키마:
LIBRARY
설명: 이 클린룸이 공급자 실행 분석을 허용하는지 확인합니다. 공급자가 이 클린룸에서 분석을 실행할 수 있기 전에 컨슈머는 여전히 consumer.enable_templates_for_provider_run
를 호출하여 명시적 권한을 부여해야 합니다.
인자:
cleanroom_name (문자열) - 클린룸 이름입니다.
반환: (문자열) 클린룸이 공급자 실행 분석을 지원하는지 여부에 대한 설명입니다.
예:
CALL samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
approve_template¶
- 스키마:
CONSUMER
설명: 지정된 클린룸에서 공급자 실행 분석을 위한 단일 템플릿을 승인합니다. 클린룸 공급자는 일반적으로 클린룸에서 특정 템플릿을 실행할 수 있는 권한을 요청하기 위해 사전에 연락을 취합니다. 공급자 실행 분석을 위해 템플릿을 승인하기 전에 템플릿에 조인 및 열 정책을 설정해야 합니다.
컨슈머 조인 정책이 없는 클린룸은 공급자가 모든 컨슈머 열에 조인할 수 있음을 의미합니다.
컨슈머 열 정책이 없는 클린룸은 공급자가 모든 컨슈머 열을 프로젝션할 수 있음을 의미합니다.
이 승인된 템플릿을 포함하지 않는 컨슈머 열 정책이 포함된 클린룸은 공급자가 이 템플릿을 사용할 때 컨슈머 열을 프로젝션할 수 없음을 의미합니다.
인자:
cleanroom_name(문자열) - 실행할 템플릿이 있는 클린룸의 이름입니다.
template_name(문자열) - 공급자가 지정된 클린룸에서 실행할 수 있는 템플릿의 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.approve_template(
$cleanroom_name,
$template_name);
set_provider_run_configuration¶
- 스키마:
CONSUMER
설명: 공급자가 클린룸에서 지정된 템플릿을 실행하는 방법을 제어하는 설정을 템플릿에 적용합니다. 컨슈머가 템플릿에 대한 구성을 제공하지 않으면 기본값이 적용됩니다. 컨슈머가 consumer.approve_template
을 호출하여 공급자 실행 분석을 위한 템플릿을 승인할 때까지 공급자는 템플릿을 실행할 수 없습니다.
인자:
cleanroom_name(문자열) - 클린룸의 이름입니다. 이 클린룸에 템플릿이 없으면 프로시저에서 오류가 발생합니다. 공급자 실행 분석을 위해 템플릿을 아직 승인할 필요는 없지만, 컨슈머가 승인할 때까지 공급자는 템플릿을 실행할 수 없습니다.
template_configuration(오브젝트) - 공급자가 이 클린룸에서 특정 템플릿을 실행하는 방법에 대한 제한을 제공하는 오브젝트입니다. 공급자 실행 분석은 컨슈머의 계정에서 실행되고 컨슈머에게 청구되므로, 컨슈머는 주어진 템플릿에 사용할 수 있는 웨어하우스에 대한 제한을 설정할 수 있습니다. 구성 오브젝트의 형식은 다음과 같습니다.
{ <template_name>: { "warehouse_type": <warehouse_type>, "warehouse_size": <warehouse_size> } }
다음 값을 모두 제공해야 합니다.
template_name
- 오브젝트 키는 템플릿 이름입니다. 구성이 이 템플릿에 적용됩니다. 이 템플릿은 클린룸에 있어야 합니다.warehouse_type
(문자열) - 공급자가 이 템플릿을 실행하는 데 사용할 수 있는 웨어하우스 유형입니다. 허용되는 값:ALL - (기본값) 모든 웨어하우스 유형을 허용합니다.
STANDARD - 표준 웨어하우스만 허용합니다.
SNOWPARK-OPTIMIZED - Snowpark에 최적화된 웨어하우스만 허용합니다. XLARGE또는 X-LARGE)가 지원됩니다.
ALL - (기본값) 모든 웨어하우스 크기가 허용됩니다.
WAREHOUSE_SIZE에 정의된 모든 크기 또는 동의어(예: XLARGE 또는 X-LARGE)가 지원됩니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration(
$cleanroom_name,
{
"some_template": {
"warehouse_type": "STANDARD",
"warehouse_size": ["MEDIUM", "LARGE"]
}
}
);
enable_templates_for_provider_run¶
- 스키마:
CONSUMER
설명: 요청된 클린룸에서 분석을 실행할 수 있는 권한을 공급자에게 부여합니다. 이는 공급자가 provider.enable_provider_run_analysis
를 호출하여 클린룸에서 공급자 실행 분석을 활성화한 후에 호출됩니다. consumer.enable_templates_for_provider_run
은 공급자에게 지정된 클린룸에서 지정된 템플릿을 원하는 횟수만큼 실행할 수 있는 권한을 부여합니다.
공급자는 컨슈머의 계정에서 활성화된 템플릿을 실행하며, 요금은 컨슈머에게 청구됩니다. 주어진 템플릿을 실행할 때 공급자에게 허용되는 웨어하우스 유형 또는 크기를 제한하려면 set_provider_run_configuration
을 호출하세요.
인자:
cleanroom_name (문자열) - 공급자가 분석을 실행할 수 있는 클린룸의 이름입니다.
template_names(문자열 배열) - 공급자가 실행할 수 있는 Clean Room에 있는 하나 이상의 템플릿 이름 배열입니다.
enable_differential_privacy(부울) - TRUE 인 경우
template_names
에 나열된 모든 템플릿에 대해 차등 개인정보 보호를 활성화합니다. 클린룸 자체에 차등 개인정보 보호가 활성화된 경우에만 이러한 템플릿에 대해 차등 개인정보 보호를 활성화할 수 있습니다. 클린룸의 차등 개인정보 보호 상태는consumer.is_dp_enabled
에서 확인할 수 있습니다.consumer.set_privacy_settings
을 호출하여 개인정보 설정을 사용자 지정할 수 있습니다. 자세히 알아보십시오.template_configuration(오브젝트, 선택 사항) -
template_names
의 각 템플릿에 대한 추가 설정을 지정하는 선택적 오브젝트입니다. 이 오브젝트에는 키-값 페어가 포함되어 있으며, 여기서 키는 템플릿 이름(template_names
에서 가져옴)이며 값은 공급자가 이 템플릿을 사용하는 방법에 대한 제한을 설정하는 오브젝트입니다. 템플릿 구성을 제공하지 않는 경우, ‘ALL’은template_names
의 모든 템플릿에 대한 모든 속성의 기본값입니다. 템플릿 구성을 제공하는 경우,template_names
에 나열된 모든 템플릿에 대한 구성을 제공하고 해당 템플릿의 구성에 대한 모든 속성을 정의해야 합니다.consumer.set_provider_run_configuration
을 호출하여 템플릿에 허용되는 값을 설정할 수도 있습니다.다음 속성이 지원됩니다.
warehouse_type
(문자열) - 공급자가 이 템플릿과 함께 사용할 수 있는 허용된 웨어하우스 유형입니다. 허용되는 값:ALL - 모든 웨어하우스 유형을 허용합니다.
STANDARD - 표준 웨어하우스만 허용합니다.
SNOWPARK-OPTIMIZED - Snowpark에 최적화된 웨어하우스만 허용합니다.
warehouse_size
(문자열 배열) - 이 웨어하우스 유형 및 템플릿과 함께 사용할 수 있는 하나 이상의 허용된 웨어하우스 크기입니다. 허용되는 값은 WAREHOUSE_SIZE에 정의된 값 또는 그 동의어(예: XLARGE 또는 X-LARGE)입니다. ‘ALL’을 지정하여 모든 웨어하우스 크기를 허용합니다.
반환: (문자열) 성공 메시지.
예제:
-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run(
$cleanroom_name,
['prod_overlap_analysis'],
FALSE);
-- Specify what types of warehouse the provider can use to run these templates.
CALL samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
['template1', 'template2', 'template3'],
TRUE,
{
'template1': {'warehouse_type': 'ALL', 'warehouse_size': ['MEDIUM', 'LARGE']},
'template2': {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
'template3': {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
다중 공급자 분석¶
이러한 프로시저를 통해 다중 공급자 분석 을 활성화합니다.
prepare_multiprovider_flow¶
- 스키마:
CONSUMER
설명: 지정된 클린룸의 공급자에게 다중 공급자 쿼리를 실행하라는 요청을 보냅니다. 이 프로시저는 실제로 요청을 실행하지 않습니다. 단순히 consumer.execute_multiprovider_flow
를 호출하여 향후 이 요청을 실행할 수 있는 권한을 공급자에게 요청합니다.
공급자가 승인을 부여하면 컨슈머는 consumer.execute_multiprovider_flow
를 원하는 만큼 자주 호출하여 쿼리를 실행할 수 있습니다(구성된 차등 개인정보 보호 설정에 따라 다름). 새 값을 사용하여 prepare_multiprovider_flow
를 호출한 후 이전에 승인된 쿼리를 다시 실행하려면 컨슈머는 정확한 이전 쿼리를 사용하여 prepare_multiprovider_flow
를 호출해야 하지만, consumer.execute_multiprovider_flow
를 실행하기 전에 공급자 승인을 기다릴 필요는 없습니다.
요청은 4시간 동안 유효하며, 그 이후에는 요청이 큐에서 제거됩니다.
인자:
cleanroom_names (문자열) - 컨슈머 계정에 있는 클린룸 이름의 배열입니다. 이러한 클린룸은 반드시 설치해야 합니다.
template_name(문자열) -
cleanroom_names
에 나열된 각 클린룸에서 실행할 템플릿의 이름입니다. 이는 클린룸 공급자가 추가한 Snowflake 제공 템플릿이거나,consumer.create_template_request
를 호출하여 이전에 클린룸에 제출한 사용자 지정 템플릿일 수 있습니다. 두 경우 모두 클린룸 공급자에게 요청을 제출하려면 템플릿이 이미 클린룸에 이미 있어야 합니다.인자(오브젝트) - 템플릿을 채우는 데 사용되는 다음 필드가 있는 오브젝트입니다.
source_table
(문자열 배열) - 템플릿에서 사용할 수 있는source_table
배열을 채우는 데 사용되는 테이블 이름의 배열입니다. 각 테이블 이름의 구문은cleanroom_name.db.schema.table
입니다. 각 공급자는 요청에 나열된 자체 클린룸 테이블만 볼 수 있습니다.my_table
(문자열 배열) - 템플릿에서 사용할 수 있는my_table
배열을 채우는 데 사용되는 자체 데이터의 테이블 이름의 배열입니다.consumer.run_analysis
의consumer_tables
인자에 전달된 것과 동일한 구문을 사용합니다.기타 모든 템플릿 변수 - 템플릿에 필요한 모든 값을 키-값 페어로 전달합니다.
반환: (문자열) consumer.execute_multiprovider_flow
에 전달하기 위한 요청 ID.
예:
CALL samooha_by_snowflake_local_db.consumer.prepare_multiprovider_flow(
[$cleanroom_name_1, $cleanroom_name_2],
'prod_aggregate_data',
object_construct(
'source_table', [
CONCAT($cleanroom_name_1, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'),
CONCAT($cleanroom_name_2, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS')
],
'my_table', ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']),
'hem_col', ['p1.HASHED_EMAIL', 'p2.HASHED_EMAIL'],
'dimensions', ['p1.STATUS', 'p2.STATUS'],
'consumer_join_col', 'HASHED_EMAIL'
)
);
execute_multiprovider_flow¶
- 스키마:
CONSUMER
설명: 컨슈머가 consumer.prepare_multiprovider_flow
에 제출한 가장 최근 쿼리를 실행합니다. 프로시저는 공급자가 쿼리를 승인한 각 지정된 Clean Room에서 쿼리를 실행하고 모든 쿼리 결과의 합집합을 반환합니다. 이 프로시저를 실행해야만 공급자가 쿼리를 승인했는지 여부를 알 수 있습니다.
인자:
cleanroom_names (문자열) - 준비된 쿼리를 실행해야 하는 클린룸 이름의 배열입니다. 이 배열은 쿼리 요청의 전체 클린룸 목록과 일치해야 합니다.
request_id(문자열, 선택 사항) -
prepare_multiprovider_flow
에서 반환한 ID 를 요청합니다.
반환: (테이블) 승인된 모든 Clean Rooms의 결과 합집합. 공급자가 이 컨슈머의 쿼리를 승인한 적이 없는 경우 쿼리는 실패합니다. 그러나 공급자가 이 컨슈머로부터 가장 최근 쿼리가 아닌 다른 쿼리를 승인한 경우 프로시저는 빈 결과 세트를 반환합니다.
예:
CALL samooha_by_snowflake_local_db.consumer.execute_multiprovider_flow(
[$cleanroom1, $cleanroom2],
$request_id);
데이터 등록 및 등록 취소¶
다음 절차에 따라 데이터베이스, 스키마, 오브젝트를 등록 및 등록 해제합니다. 클린룸에 연결하려면 먼저 테이블과 뷰를 등록해야 합니다. 데이터베이스 또는 스키마를 등록하면 해당 데이터베이스 또는 스키마의 모든 오브젝트가 등록됩니다. 데이터 등록에 대한 자세한 내용은 데이터 등록하기 섹션을 참조하세요.
register_db¶
- 스키마:
CONSUMER
설명: 계정에 데이터베이스를 등록하면 해당 데이터베이스의 모든 오브젝트를 해당 계정의 클린룸에 연결할 수 있습니다. 보다 세분화된 제어를 위해 register_schema
, register_managed_access_schema
또는 register_object
를 대신 호출할 수 있습니다. 등록된 후 데이터베이스에 추가된 오브젝트는 연결하지 못할 수 있으며, 이 경우 데이터베이스를 다시 등록하거나 오브젝트 자체를 등록해야 합니다.
이 프로시저를 실행하려면 데이터베이스에 대한 MANAGE GRANTS 권한이 있어야 합니다.
인자:
db_name(문자열) - 이 계정에 등록할 데이터베이스의 이름입니다.
반환: (문자열) 성공 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
register_schema¶
- 스키마:
LIBRARY
설명: 계정에 스키마를 등록하면 해당 스키마의 모든 오브젝트를 해당 계정의 클린룸에 연결할 수 있습니다. 보다 세분화된 제어를 위해 register_object
를 대신 호출할 수 있습니다. 등록된 후 스키마에 추가된 오브젝트는 연결하지 못할 수 있으며, 이 경우 스키마를 다시 등록하거나 오브젝트 자체를 등록해야 합니다.
관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)를 등록하려면 library.register_managed_access_schema
를 대신 사용합니다.
인자:
schema_names(문자열 배열) - 등록할 정규화된 스키마의 배열입니다.
반환: (문자열) 성공 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
register_managed_access_schema¶
- 스키마:
LIBRARY
설명: 계정에 관리형 액세스 스키마를 등록하면 해당 스키마의 모든 오브젝트를 해당 계정의 클린룸에 연결할 수 있습니다. 보다 세분화된 제어를 위해 register_object
를 대신 호출할 수 있습니다. 등록된 후 스키마에 추가된 오브젝트는 연결하지 못할 수 있으며, 이 경우 스키마를 다시 등록하거나 오브젝트 자체를 등록해야 합니다.
인자:
schema_names(문자열 배열) - 등록할 정규화된 관리형 스키마의 배열입니다.
반환: (문자열) 성공 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
register_objects¶
- 스키마:
LIBRARY
설명: 클린룸에 모든 유형의 테이블과 뷰에 대한 액세스 권한을 부여해 consumer.link_datasets
를 호출하여 클린룸에 연결할 수 있도록 합니다. library.register_schema
, library.register_managed_access_schema
또는 consumer.register_db
를 호출하여 더 광범위한 오브젝트 그룹을 등록할 수 있습니다. 이 프로시저를 실행하려면 데이터베이스에 대한 MANAGE GRANTS 권한이 있어야 합니다.
인자:
object_names(배열) - 정규화된 오브젝트 이름의 배열입니다. 그런 다음 이러한 오브젝트를 클린룸에 연결할 수 있습니다.
반환: (문자열) 성공 메시지.
예
테이블과 뷰를 등록하려면 다음을 수행합니다.
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']);
enable_external_tables_on_account¶
- 스키마:
LIBRARY
설명: 이 계정의 모든 Clean Rooms에서 Iceberg 또는 외부 테이블을 사용하도록 설정합니다. Iceberg 또는 외부 테이블을 어느 한 계정으로 연결할 수 있도록 하려면 공급자 및 컨슈머 계정에서 모두 ACCOUNTADMIN 으로 호출해야 합니다. 이 기능을 이 계정의 특정 Clean Rooms로 제한하려면 enable_external_tables_for_cleanroom
을 대신 호출하십시오.
인자: 없음
반환: (문자열) 성공 메시지.
예:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
enable_external_tables_for_cleanroom¶
- 스키마:
CONSUMER
설명: 컨슈머가 이 계정의 지정된 Clean Room에서 Iceberg 또는 외부 테이블을 연결할 수 있도록 설정합니다. 이 계정의 모든 Clean Rooms에 대해 Iceberg 및 외부 테이블을 허용하려면 enable_external_tables_on_account
를 대신 호출하십시오.
인자:
cleanroom_name (문자열) - 공급자가 Iceberg 테이블 또는 외부 테이블을 연결할 수 있는 클린룸의 이름입니다.
반환: (문자열) 성공 메시지. 성공하면 보안 검사를 트리거하고 보안 검사에 성공하면 생성되는 패치 번호도 제공합니다.
예:
CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
$cleanroom_name);
unregister_db¶
- 스키마:
LIBRARY
설명: SAMOOHA_APP_ROLE 역할 및 Snowflake Data Clean Room 네이티브 애플리케이션에 부여된 데이터베이스 수준 권한을 제거합니다. 클린룸에 연결된 이 데이터베이스의 모든 데이터는 이 계정에서 더 이상 액세스할 수 없습니다. 이 프로시저를 실행하려면 데이터베이스에 대한 MANAGE GRANTS 권한이 있어야 합니다.
인자:
db_name(문자열) - 등록 해제할 데이터베이스의 이름입니다.
반환: (문자열) 성공 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
unregister_schema¶
- 스키마:
LIBRARY
설명: 하나 이상의 스키마를 등록 해제하여 사용자가 테이블과 뷰를 클린룸에 연결하지 못하게 합니다.
관리형 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)를 등록 해제하려면 library.unregister_managed_access_schema
를 대신 사용합니다. 이 프로시저를 실행하려면 데이터베이스에 대한 MANAGE GRANTS 권한이 있어야 합니다.
인자:
schema_names(문자열 배열) - 등록 해제할 스키마의 정규화된 이름입니다.
반환: (문자열) 성공 메시지.
예:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.PUBLIC', 'MY_DB.MY_SCH']);
unregister_managed_access_schema¶
- 스키마:
LIBRARY
설명: 하나 이상의 관리형 액세스 스키마를 등록 해제하여 사용자가 테이블과 뷰를 클린룸에 연결하지 못하게 합니다.
인자:
schema_names(문자열 배열) - 등록 해제할 스키마의 정규화된 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
unregister_objects¶
- 스키마:
LIBRARY
설명: 모든 유형의 테이블과 뷰에 대한 클린룸 액세스를 취소합니다. 이 계정으로 관리되는 클린룸의 사용자는 더 이상 오브젝트를 사용할 수 없습니다.
인자:
object_names(배열) - 액세스 권한을 취소할 정규화된 오브젝트 이름의 배열입니다.
반환: (문자열) 성공 메시지.
예
테이블 및 뷰 등록을 취소하려면 다음을 수행합니다.
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','MY_DB.MY_SCH.MY_VIEW']);
데이터 세트 연결 및 연결 해제¶
데이터 세트가 등록되면 해당 데이터 세트의 테이블이나 뷰를 특정 클린룸에 연결할 수 있습니다. 특정 클린룸에서 테이블이나 뷰의 연결을 해제하여 클린룸에서 해당 데이터에 대한 액세스를 제거할 수도 있습니다.
link_datasets¶
- 스키마:
CONSUMER
설명: 테이블 또는 뷰를 클린룸에 연결하여 지정한 조인 및 열 정책에 따라 해당 클린룸 내의 템플릿에 테이블에 대한 액세스 권한을 부여합니다.
인자:
cleanroom_name (문자열) - 데이터를 연결할 클린룸의 이름입니다.
full_tables(문자열 배열) - 클린룸에 노출할 정규화된 테이블 또는 뷰 이름의 목록입니다. 이러한 오브젝트는 먼저 적절한 등록 방법을 사용하여 등록되어야 합니다(클린룸 환경에서 사용할 수 있도록 설정).
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.link_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MY_DB.MY_SCH.EXPOSURES']);
unlink_datasets¶
- 스키마:
CONSUMER
설명: 모든 사용자에 대해 지정된 클린룸의 지정된 테이블 또는 뷰에 대한 액세스를 제거합니다. 이는 클린룸에 연결한 데이터에만 작동합니다.
인자:
cleanroom_name (문자열) - 액세스 권한을 제거해야 하는 클린룸의 이름입니다.
tables_list(문자열 배열) - 액세스를 차단해야 하는 정규화된 테이블 또는 뷰 이름의 목록입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.unlink_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
view_consumer_datasets¶
- 스키마:
CONSUMER
설명: 모든 컨슈머가 지정된 클린룸에 링크한 모든 테이블과 뷰를 볼 수 있습니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
반환: 지정된 클린룸에 연결된 오브젝트 테이블과 각 오브젝트에 대한 클린룸의 내부 뷰 이름입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_consumer_datasets($cleanroom_name);
정책 관리 및 보기¶
설치한 클린룸의 데이터에 대한 정책을 관리합니다.
set_join_policy¶
- 스키마:
CONSUMER
설명: 클린룸 내에서 템플릿을 실행할 때와 공급자 실행 분석을 사용할 때 공급자가 조인할 수 있는 열을 지정합니다. 열 정책은 바꾸기 전용이므로 함수가 다시 호출되면 이전에 설정된 열 정책이 현재 정책으로 완전히 바뀝니다. 데이터에 대한 조인 정책을 지정하지 않으면 모든 열을 조인할 수 있습니다.
와일드카드가 포함된 쿼리는 조인 정책을 우회할 수 있으므로, 분석 템플릿을 디자인할 때는 신중을 기해야 합니다.
인자:
cleanroom_name (문자열) - 조인 정책을 적용해야 하는 클린룸의 이름입니다.
table_col_names(문자열 배열) - 형식
database name.schema name:column name
으로 조인할 수 있는 열의 정규화된 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.set_join_policy(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
view_join_policy¶
- 스키마:
CONSUMER
설명: 컨슈머가 컨슈머 데이터 세트에 설정한, 클린룸 내부에서 사용자가 안전하게 조인할 수 있는 열을 간략하게 설명합니다.
인자:
cleanroom_name (문자열)
반환: 조인 정책 (table)
예:
CALL samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
view_provider_join_policy¶
- 스키마:
CONSUMER
설명: 공급자가 공급자 데이터 세트에 설정한, 클린룸 내부에서 사용자가 안전하게 조인할 수 있는 열을 간략하게 설명합니다.
인자:
cleanroom_name (문자열)
반환: 조인 정책 (table)
예:
CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
set_column_policy¶
- 스키마:
CONSUMER
설명: 컨슈머 데이터를 프로젝션할 수 있는 열을 정의합니다. 열 정책은 클린룸의 템플릿에 적용됩니다. 열 정책은 바꾸기 전용이므로 함수가 다시 호출되면 이전에 설정된 열 정책이 현재 정책으로 완전히 바뀝니다. 열 정책을 지정하지 않으면 모든 열을 프로젝션할 수 있습니다.
일반적으로 이러한 종류의 데이터가 프로젝션되는 것을 원하지 않으므로 ID 열이나 이메일과 같은 민감한 열에는 열 정책을 설정하지 마세요.
와일드카드가 포함된 쿼리는 이러한 검사를 사용하여 포착되지 않을 수 있으므로 분석 템플릿을 설계할 때는 신중을 기해야 합니다.
인자:
cleanroom_name (문자열) - 열 정책을 적용해야 하는 클린룸의 이름입니다.
analysis_table_cols(문자열 배열) - 형식
database name.schema name:column name
으로 프로젝션할 수 있는 열의 정규화된 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.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'
]
);
view_column_policy¶
- 스키마:
CONSUMER
설명: 지정된 클린룸의 모든 컨슈머 열 정책을 표시합니다. 공급자가 설정한 열 정책을 보려면 consumer.view_provider_column_policy
를 호출하세요.
인자:
cleanroom_name (문자열) - 설명할 클린룸의 이름입니다.
반환: (테이블) 클린룸의 모든 컨슈머 열 정책에 대한 정보입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_column_policy($cleanroom_name);
view_provider_column_policy¶
- 스키마:
CONSUMER
설명: 공급자가 클린룸에 적용한 모든 열 정책을 봅니다.
인자:
cleanroom_name (문자열)
반환: 열 정책 (table)
예:
CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
템플릿¶
다음 프로시저를 통해 사용자는 클린룸에서 템플릿으로 작업할 수 있습니다.
view_template_definition¶
- 스키마:
CONSUMER
설명: 지정된 템플릿의 원시 JinjaSQL을 봅니다. is_obfuscated
인자를 적용하여 템플릿이 난독 처리된 경우, 템플릿 소스 코드를 볼 수 없습니다.
인자:
cleanroom_name (문자열) - 템플릿을 보관하는 클린룸의 이름입니다.
template_name(문자열) - 볼 템플릿의 이름입니다.
반환: (문자열) 템플릿 정의입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_template_definition(
$cleanroom_name,
'prod_overlap_analysis');
get_arguments_from_template¶
- 스키마:
CONSUMER
설명: 템플릿에서 사용하는 인자 목록을 가져옵니다. consumer.run_analysis
를 호출할 때 이러한 인자의 값을 템플릿에 전달할 수 있습니다.
인자:
cleanroom_name (문자열) - 템플릿이 있는 클린룸의 이름입니다.
template_name(문자열) - 인자를 반환할 템플릿의 이름입니다.
반환: (테이블) 인자 목록 및 사양입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.get_arguments_from_template(
$cleanroom_name,
'prod_overlap_analysis');
템플릿 체인¶
다음 프로시저를 통해 사용자는 클린룸에서 템플릿 체인으로 작업할 수 있습니다.
view_added_template_chains¶
- 스키마:
CONSUMER
설명: 주어진 클린룸에 정의된 모든 템플릿 체인을 나열합니다.
인자:
cleanroom_name (문자열) - 템플릿 체인을 나열할 클린룸의 이름입니다.
반환: (테이블) 지정된 클린룸의 템플릿 체인에 대한 정보입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_added_template_chains(
$cleanroom_name);
view_template_chain_definition¶
- 스키마:
CONSUMER
설명: 지정된 템플릿 체인의 특성을 반환합니다.
인자:
cleanroom_name (문자열) - 설명할 템플릿 체인이 있는 클린룸의 이름입니다.
template_chain_name(문자열) - 설명할 템플릿 체인의 이름입니다.
반환: (문자열) 지정된 템플릿 체인의 정의입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_template_chain_definition(
$cleanroom_name,
'insights_chain');
분석 실행¶
다음 프로시저는 지정된 템플릿을 기반으로 분석 또는 활성화를 실행합니다.
run_analysis¶
- 스키마:
CONSUMER
설명: 템플릿 또는 템플릿 체인을 사용하여 분석을 실행하고 결과 테이블을 반환합니다.
중요
차등 개인정보 보호를 사용하도록 설정한 경우 이 템플릿의 예산 한도에 도달하면 쿼리가 실패할 수 있습니다.
is_obfuscated
인자를 적용하여 템플릿이 난독 처리된 경우 해당 템플릿을 실행하려면 Snowflake Enterprise Edition 이상을 사용해야 합니다.
인자:
cleanroom_name (문자열) - 분석을 실행할 클린룸의 이름입니다.
template_name(문자열) - 클린룸에서 실행할 템플릿 또는 템플릿 체인의 이름입니다. 이 템플릿은 공급자 또는 컨슈머가 클린룸에 추가한 것이어야 합니다.
consumer_tables(문자열 배열) - 정규화된 컨슈머 테이블 이름의 배열입니다. 이는
my_table
템플릿 변수에 할당됩니다. 이러한 테이블은 이미 클린룸에 연결되어 있어야 합니다. 사용 가능한 테이블을 보려면consumer.view_consumer_datasets
를 호출하세요.provider_tables(문자열 배열) - 정규화된 공급자 테이블 이름의 배열입니다. 이는
source_table
템플릿 변수에 할당됩니다. 이러한 테이블은 클린룸에 연결되어야 합니다. 사용 가능한 테이블을 보려면consumer.view_provider_datasets
를 호출하세요.analysis_arguments(오브젝트) - 템플릿에 전달된 키-값 페어가 있는 오브젝트입니다. 템플릿은 키 이름으로 변수에 액세스할 수 있습니다.
{'age': 20}
을 전달하면 템플릿은{{age}}
로 값에 액세스합니다. 값이 필요하지 않은 경우 빈 오브젝트를 전달합니다. 어떤 값이 필요한지 확인하려면consumer.view_template_definition
을 호출하여 해당 템플릿을 검사하세요. 템플릿을 검사하여 사용된 열 이름을 정규화해야 하는지 여부를 확인합니다. 템플릿에서 테이블의 별칭이p
또는c
인 경우 열 이름에 소문자p
및c
테이블 별칭을 사용합니다.이 오브젝트에는 1개의 선택적 예약 값이 있습니다.
엡실론
(부동 소수점, 선택 사항) - 이 클린룸에 차등 개인정보 보호가 활성화된 경우 차등 개인정보 보호를 위한 엡실론 값을 지정합니다. 기본값은 0.1입니다.
use_cache(부울, 선택 사항) - 동일한 쿼리에 캐시된 결과를 사용할지 여부입니다. 기본값은 FALSE 입니다.
반환: (Table) 쿼리 결과.
예:
CALL samooha_by_snowflake_local_db.consumer.run_analysis(
$cleanroom_name,
'prod_overlap_analysis',
['DB1.MYDATA.CONVERSIONS'], -- Consumer tables
['MYDB.MYSCH.EXPOSURES'], -- Provider tables
object_construct(
'max_age', 30
)
);
활성화¶
다음 프로시저는 활성화 또는 컨슈머나 공급자의 Snowflake 계정에 결과를 저장하는 것을 관리합니다. API를 사용하여 서드 파티 계정에 대한 데이터를 활성화할 수 없습니다.
view_external_activation_history¶
- 스키마:
LIBRARY
설명: 현재 계정의 활성화 요청 기록을 봅니다.
인자: 없음
반환: 활성화 요청의 세부 정보 및 상태가 포함된 테이블.
예:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
set_activation_policy¶
- 스키마:
CONSUMER
설명: 활성화 템플릿에서 사용할 수 있는 열을 정의합니다. 이렇게 하면 컨슈머가 승인한 열만 활성화 템플릿과 함께 사용할 수 있습니다. 활성화 정책을 정의하지 않으면 데이터의 어떤 열도 활성화할 수 없습니다. 활성화 정책을 설정하면 계정에 대한 기존 활성화 정책을 덮어씁니다.
인자:
cleanroom_name (문자열) - 활성화 정책을 설정할 클린룸의 이름입니다.
columns(배열) - 형식
template name:database name.schema name.table name:column_name
으로 활성화할 수 있는 자체 데이터의 열 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.set_activation_policy(
$cleanroom_name,
[
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
consumer.approve_provider_activation_consent¶
- 스키마:
CONSUMER
설명: 공급자 활성화를 허용하라는 공급자의 요청을 승인하며, 이는 공급자의 Snowflake 계정으로 결과를 푸시하는 기능입니다.
인자:
cleanroom_name (문자열) - 공급자가 템플릿 실행을 요청하는 클린룸의 이름입니다.
activation_template_name(문자열) - 공급자가 실행하려는 활성화 템플릿의 이름입니다.
반환: (문자열) 성공 메시지. 공급자가 지정된 템플릿을 사용하여 이 클린룸에서 provider.request_provider_activation_consent
를 호출하지 않은 경우 이 프로시저는 실패합니다.
예:
CALL samooha_by_snowflake_local_db.consumer.approve_provider_activation_consent(
$cleanroom_name,
'activation_my_template');
run_activation¶
- 스키마:
CONSUMER
설명: 컨슈머 또는 공급자의 Snowflake 계정으로 결과를 다시 푸시하는 템플릿을 실행합니다. consumer_direct_activation
인자는 이것이 컨슈머 활성화인지 또는 공급자 활성화인지 여부를 결정합니다.
인자:
cleanroom_name (문자열) - 활성화를 실행할 클린룸의 이름입니다.
segment_name(문자열) - 이 활성화 실행에 의해 생성된 행에 레이블을 지정하는 데 사용되는 임의의 문자열입니다. 각 활성화 실행은 기존 결과 테이블에 새 행을 추가합니다. 특정 실행으로 결과를 필터링할 수 있도록 이 프로시저를 호출할 때마다 이 필드에 고유한 문자열을 제공합니다.
template_name(문자열) - 호출할 활성화 템플릿의 이름입니다.
consumer_tables(문자열 배열) - 템플릿에 전달할 정규화된 컨슈머 테이블 이름의 배열입니다.
provider_tables(문자열 배열) - 템플릿에 전달할 정규화된 공급자 테이블 이름의 배열입니다.
activation_arguments(오브젝트) - 템플릿에 전달할 인자의 키-값 세트입니다.
consumer_direct_activation(부울, 선택 사항) - TRUE는 결과를 컨슈머 계정으로 다시 푸시하고, FALSE는 공급자에게 결과를 전송합니다. 기본값은 FALSE입니다.
반환: (문자열) 성공 메시지.
예:
-- Run a consumer activation, as specified by the final TRUE argument.
SET segment_name = 'my_activation_segment';
CALL samooha_by_snowflake_local_db.consumer.run_activation(
$cleanroom_name,
$segment_name,
$template_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'c_join_col', 'c.hashed_email',
'p_join_col', 'p.hashed_email'
),
TRUE);
dcr_health.provider_run_provider_activation_history¶
설명: 지정된 클린룸에 대한 공급자 활성화 요청 기록을 반환합니다. 공급자와 컨슈머가 모두 시작한 공급자 활성화 요청이 표시됩니다. 이 프로시저는 공급자 활성화 관련 문제를 디버그하는 데 도움이 되는 추가 정보를 제공합니다.
인자:
cleanroom_name(문자열) - 활성화가 요청된 클린룸의 이름입니다. 사용자는 이 클린룸의 공급자 또는 컨슈머여야 합니다.
반환: (테이블) - 템플릿 및 세그먼트 이름, 상태, 컨슈머 계정 로케이터, 요청에서 반환된 모든 오류 메시지 등 각각에 대한 정보가 포함된 활성화 요청 목록입니다.
예:
CALL samooha_by_snowflake_local_db.dcr_health.provider_run_provider_activation_history(
$cleanroom_name);
컨슈머 정의 템플릿¶
다음 APIs를 사용하면 클린룸에 컨슈머 정의 템플릿을 추가할 수 있습니다. 자세한 내용은 컨슈머 작성 템플릿 섹션을 참조하세요.
create_template_request¶
- 스키마:
CONSUMER
설명: 클린룸 공급자에게 사용자 지정 템플릿을 클린룸에 추가할 수 있도록 승인해 달라는 요청을 보냅니다. 컨슈머가 작성한 사용자 지정 템플릿 섹션을 참조하세요.
인자:
cleanroom_name (문자열) - 템플릿이 추가될 클린룸의 이름입니다.
template_name(문자열) - 추가할 템플릿의 이름입니다. 모두 소문자, 숫자, 공백 또는 밑줄이어야 합니다. 활성화 템플릿 이름은 “activation”으로 시작해야 합니다.
template_definition(문자열) - JinjaSQL 템플릿입니다. 템플릿 구문을 알아봅니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.create_template_request(
$cleanroom_name,
$template_name,
$$
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 %};
$$);
get_sql_jinja¶
- 스키마:
CONSUMER
설명: JinjaSQL 템플릿을 SQL 문으로 평가합니다. 이 프로시저는 사용자 지정 템플릿을 개발할 때 지정된 매개 변수 세트로 처리한 후 템플릿이 렌더링되는 방식을 확인하는 데 사용됩니다.
이 프로시저는 표준 JinjaSQL 문만 처리할 수 있으며 join_policy
또는 column_policy
와 같은 JinjaSQL에 대한 클린룸 확장은 처리할 수 없습니다.
인자:
template_string(문자열) - 처리할 JinjaSQL 코드입니다. 표준 JinjaSQL만 지원됩니다.
arguments(오브젝트) - 필드 이름이 템플릿에서 사용되는 변수에 해당하는 오브젝트입니다.
반환: (문자열) 제공된 변수 값으로 제출된 템플릿에 의해 생성된 SQL 문.
예:
CALL samooha_by_snowflake_local_db.consumer.get_sql_jinja(
$$
SELECT COUNT(*), IDENTIFIER({{ group_by_col }})
FROM IDENTIFIER({{ my_table | sqlsafe }})
INNER JOIN IDENTIFIER({{ source_table | sqlsafe }})
ON IDENTIFIER({{ consumer_join_col }}) = IDENTIFIER({{ provider_join_col }})
GROUP BY IDENTIFIER({{ group_by_col }});
$$,
object_construct(
'group_by_col', 'city',
'consumer_join_col', 'hashed_email',
'provider_join_col', 'hashed_email',
'my_table', 'mydb.mysch.t1',
'source_table', 'mydb.mysch.t2'));
응답:
SELECT COUNT(*), IDENTIFIER('city')
FROM IDENTIFIER(mydb.mysch.t1)
INNER JOIN IDENTIFIER(mydb.mysch.t2)
ON IDENTIFIER('hashed_email') = IDENTIFIER('hashed_email')
GROUP BY IDENTIFIER('city');
consumer.generate_python_request_template¶
- 스키마:
CONSUMER
설명: 사용자 지정 Python 코드가 포함된 컨슈머 클린룸 템플릿을 생성합니다. 생성된 템플릿에는 Python 코드와 JinjaSQL 템플릿에 대한 자리 표시자가 포함됩니다. 최종 템플릿을 consumer.create_template_request
에 전달합니다.
컨슈머 정의 템플릿에 대한 자세한 내용은 컨슈머가 작성한 사용자 지정 템플릿 섹션을 참조하세요.
인자:
function_name(문자열) - 템플릿에서 함수를 호출하는 데 사용하는 함수 이름입니다.
arguments(문자열 쌍의 배열) - 함수
function_name
에 필요한 인자의 배열입니다. 각 요소는 공백으로 구분된 쌍으로, 인자 이름과 Snowflake SQL 데이터 타입을 나타냅니다(예:['size INT', 'start_date DATE']
).packages(문자열 배열) - Python 코드에 필요한 패키지 이름의 배열입니다. 없는 경우 빈 배열을 지정합니다. 지원되는 패키지의 전체 목록을 참조하세요.(예:
['pandas','numpy']
).가져오기 - [지원되지 않음: 사용하지 마세요.]
rettype(문자열) - 함수의 Snowflake SQL 반환 유형입니다(예: INTEGER, VARCHAR).
처리기(문자열) - Python 코드에서 기본 처리기 함수의 이름입니다. 일반적으로 이는
'main'
입니다.code(문자열) - Python 코드 구현입니다. 가져오기를 포함하고 지정된 처리기가 가져오기에 정의된 경우 이는 빈 문자열일 수 있습니다.
반환: (문자열) JinjaSQL 템플릿에 대한 자리 표시자가 있는 Python UDF를 반환합니다. 템플릿 문자열을 consumer.create_template_request
에 전달하기 전에 중첩된 $$ 또는 작은따옴표(‘)를 올바르게 이스케이프해야 합니다. 컨슈머가 제출한 코드 섹션을 읽어보세요.
예:
간단한 Python 예제를 통해 헬퍼 함수를 호출해 보세요.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GENERATE_PYTHON_REQUEST_TEMPLATE(
'my_func', -- SQL should use this name to call your function.
['data VARIANT', 'index INTEGER'], -- Arguments and types for the function.
['pandas', 'numpy'], -- Standard libraries used.
[], -- Reserved.
'INTEGER', -- SQL return type.
'main', -- Standard 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)
$$
);
다음 예제는 생성된 코드를 보여줍니다. <INSERT SQL TEMPLATE HERE>
를 템플릿 JinjaSQL 코드로 바꿉니다.
BEGIN
-- First define the Python UDF
CREATE OR REPLACE FUNCTION CLEANROOM.my_func(data VARIANT, index INTEGER)
RETURNS INTEGER
LANGUAGE PYTHON
RUNTIME_VERSION = 3.10
PACKAGES = ('pandas', 'numpy')
HANDLER = 'main'
AS $$
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)
$$;
-- Then define and run the SQL query
LET SQL_TEXT varchar := $$<INSERT SQL TEMPLATE HERE>$$;
-- Run the query and return the result
LET RES resultset := (EXECUTE IMMEDIATE :SQL_TEXT);
RETURN TABLE(RES);
END;
list_template_requests¶
- 스키마:
CONSUMER
설명: 컨슈머가 클린룸에 템플릿을 추가하기 위해 요청한 내용을 나열합니다.
인자:
cleanroom_name (문자열) - 템플릿 요청을 나열할 클린룸입니다.
반환: 다음 열이 포함된 테이블입니다.
request_id
- 클린룸 시스템에서 생성된 요청의 ID입니다.provider_identifier
- 공급자의 계정 로케이터입니다.template_name
- 컨슈머가 요청에 제공한 템플릿 이름입니다.template_definition
- 컨슈머가 클린룸에 추가하도록 요청한 템플릿의 소스 코드입니다.request_status
- 요청 상태: PENDING, APPROVED또는 REJECTED.reason
- 요청 상태가 REJECTED인 경우 공급자는 여기에 거부 사유를 제공해야 합니다.
예:
CALL samooha_by_snowflake_local_db.consumer.list_template_requests($cleanroom_name);
클린룸 메타데이터 getter 메서드¶
다음 메서드는 클린룸의 관련 속성을 보여줍니다.
describe_cleanroom¶
- 스키마:
CONSUMER
설명: 템플릿, 데이터 세트, 정책을 포함하여 지정된 클린룸에 대한 주요 정보의 요약을 제공합니다. is_obfuscated
인자를 적용하여 템플릿이 난독 처리된 경우, 템플릿 이름을 보려면 Snowflake Enterprise Edition 이상을 사용해야 합니다.
인자:
cleanroom_name (문자열) - 설명할 클린룸의 이름입니다.
반환: (문자열) 클린룸에 대한 설명입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.describe_cleanroom($cleanroom_name);
view_provider_datasets¶
- 스키마:
CONSUMER
설명: 공급자가 클린룸에 추가한 모든 데이터 세트를 나열합니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
반환: (테이블) 공급자가 추가한 데이터 세트의 테이블입니다. 여기에 반환된 테이블 이름을 쿼리에 사용합니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
view_added_templates¶
- 스키마:
CONSUMER
설명: 클린룸의 모든 템플릿을 나열합니다. is_obfuscated<dcr_provider_add_custom_sql_template> 인자를 적용하여 템플릿이 {ref}
난독 처리된 `` 경우 해당 템플릿을 보려면 Snowflake Enterprise Edition 이상을 사용해야 합니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
반환: 이 클린룸의 템플릿 목록과 각 템플릿의 소스 코드입니다(공급자가 템플릿을 난독 처리하지 않는 한).
예:
CALL samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
is_consumer_run_enabled¶
- 스키마:
LIBRARY
설명: 지정된 클린룸에 대해 컨슈머 실행 분석이 활성화되어 있는지 확인합니다. 이는 기본적으로 활성화되어 있지만, 클린룸 공급자가 비활성화할 수 있습니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
반환: (문자열) 클린룸이 컨슈머 실행 분석을 허용하는지 여부입니다.
예:
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
view_cleanrooms¶
- 스키마:
CONSUMER
설명: 이 계정으로 조인(설치)되었거나 조인 가능한 모든 클린룸을 나열합니다. 설치된 클린룸만 보려면 consumer.view_installed_cleanrooms
를 실행하세요. 이 계정으로 생성된 클린룸을 보려면 provider.view_cleanrooms
를 호출하세요.
인자: 없음
반환: (테이블) 이 계정에 대해 설치되거나 초대된 모든 Clean Rooms.
예:
CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
view_installed_cleanrooms¶
- 스키마:
CONSUMER
설명: 이 계정에 설치(조인)된 모든 클린룸을 나열합니다. 조인된 클린룸과 조인되지 않은 클린룸을 모두 보려면 consumer.view_cleanrooms
를 호출하세요. 이 계정으로 생성된 모든 클린룸을 보려면 provider.view_cleanrooms
를 호출하세요.
인자: 없음
반환: (테이블) 이 계정에 설치된 Clean Rooms.
예:
CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
차등 개인정보 보호¶
이러한 프로시저는 클린룸에서 차등 개인정보 보호를 제어합니다. consumer.enable_templates_for_provider_run
을 호출할 때 템플릿 수준에서 차등 개인정보 보호를 지정할 수도 있습니다.
is_dp_enabled¶
- 스키마:
CONSUMER
설명: 클린룸에서 차등 개인정보 보호가 활성화되어 있는지 확인합니다. 이 값을 확인하려면 클린룸을 설치해야 합니다.
인자:
cleanroom_name (문자열)
반환: (부울) 클린룸에 차등 개인정보 보호가 활성화되었는지 여부입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
view_remaining_privacy_budget¶
- 스키마:
CONSUMER
설명: 클린룸에서 쿼리하는 데 사용할 수 있는 남은 개인정보 보호 예산을 봅니다. 예산이 소진된 후 예산이 재설정될 때까지 run_analysis
에 대한 추가 호출은 허용되지 않습니다. 예산은 매일 재설정됩니다.
인자:
cleanroom_name (문자열) 클린룸의 이름입니다. 이 프로시저가 성공하려면 클린룸을 설치해야 합니다.
반환: (부동 소수점) 남은 개인정보 보호 예산입니다.
예:
CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
set_privacy_settings¶
- 스키마:
CONSUMER
설명: 사용자 지정 템플릿을 사용하는 공급자 실행 분석(활성화 포함)에 대한 개인정보 보호 설정을 지정합니다. 이전에 설정된 모든 값을 덮어씁니다. 이 메서드를 호출할 때마다 이전의 모든 구성 설정이 지워집니다.
인자:
cleanroom_name (문자열) - 이러한 설정을 적용해야 하는 클린룸의 이름입니다.
privacy_settings(문자열) - 공급자가 사용자 지정 템플릿을 실행할 때 개인정보 설정을 지정하는 문자열 JSON 오브젝트입니다. 오브젝트의 구문은 다음과 같습니다.
'{ "null" : <template_config> }'
template_config
는 차등 개인정보 보호 및 집계 설정이 있는 오브젝트입니다. 이 오브젝트에서 제공할 수 있는 필드를 확인하려면 사용 가능한 개인정보 보호 설정 섹션을 참조하십시오.
예:
-- Apply differential privacy for provider-run analysis using all custom templates.
CALL samooha_by_snowflake_local_db.consumer.set_privacy_settings(
$cleanroom_name,
PARSE_JSON('{
"null":{ "differential": 1, "epsilon": 0.1, "privacy_budget": 3 }
}')
);
반환: (문자열) 성공 메시지.
Snowpark Container Services 프로시저¶
클린룸에서 Snowpark Container Services를 사용하는 방법에 대해 자세히 읽어보세요.
start_or_update_service¶
- 스키마:
CONSUMER
설명: 이 클린룸에서 공급자가 정의한 최신 버전의 Snowpark Container Services를 만들고 시작합니다. 공급자가 컨테이너를 생성하거나 업데이트하기 위해 provider.load_service_into_cleanroom
을 호출할 때마다 컨슈머는 consumer.start_or_update_service
를 호출하여 서비스를 업데이트해야 합니다.
컨슈머는 이 프로시저를 호출하기 전에 풀을 정의하고 시작해야 합니다.
인자:
cleanroom_name (문자열) - 컨테이너를 로딩할 클린룸의 이름입니다.
compute_pool_name(문자열) - 이 클린룸에서 컨슈머가 정의한 컴퓨팅 풀의 이름입니다. 풀이 이미 생성되어 있어야 하며 클린룸에 풀에 액세스할 수 있는 권한이 있어야 합니다.
service_options(오브젝트, 선택 사항) - 이 서비스에 대한 매개 변수를 지정하는 오브젝트입니다. 지원되는 속성은 다음과 같습니다.
query_warehouse
- (문자열, 선택 사항) 이 서비스에 사용할 웨어하우스의 이름입니다. 클린룸을 실행하는 웨어하우스와 동일한 웨어하우스일 필요는 없습니다.min_instances
- (정수, 선택 사항) 이 서비스에 사용할 최소 인스턴스 수입니다.max_instances
- (정수, 선택 사항) 이 서비스에 사용할 최소 인스턴스 수입니다.
반환: (테이블) 성공한 경우 로딩의 결과. 성공하지 못할 경우 오류를 발생시킵니다.
예:
CALL samooha_by_snowflake_local_db.consumer.start_or_update_service(
$cleanroom_name,
'dcr_lal_pool',
object_construct(
'query_warehouse', 'app_wh',
'min_instances', '1',
'max_instances', '1'
));
환경 관리¶
일반적인 클린룸 기능을 지원하려면 다음 방법을 사용하십시오.
set_cleanroom_ui_accessibility¶
- 스키마:
CONSUMER
설명: 현재 계정의 컨슈머를 위한 클린룸 UI에서 클린룸을 표시하거나 숨깁니다.
인자:
cleanroom_name (문자열) - 클린룸의 이름입니다.
visibility_status(문자열) - 대소문자를 구분하는 다음 값 중 하나입니다.
HIDDEN - 현재 컨슈머 계정의 모든 사용자로부터 클린룸 UI에 지정된 클린룸을 숨깁니다. API 호출을 사용하여 클린룸에 계속 액세스할 수 있습니다.
EDITABLE - 클린룸 UI에서 클린룸을 표시합니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.set_cleanroom_ui_accessibility(
$cleanroom_name,
'HIDDEN');
manage_datastats_task_on_account¶
- 스키마:
CONSUMER
설명: 클린룸 통계를 계산하는 백그라운드 작업을 활성화하거나 비활성화합니다. 작업은 기본적으로 실행 중이지만 비용을 절감하기 위해 비활성화할 수 있습니다.
중요
이 작업을 관리하려면 모든 공동 작업자가 동일한 값을 사용하여 이 프로시저의 적절한 공급자
또는 컨슈머
버전을 호출해야 합니다.
인자:
활성화(부울) - TRUE이면 작업을 활성화하고, FALSE이면 작업을 비활성화합니다.
반환: (문자열) 성공 메시지.
예:
-- Disable the task in this account.
CALL samooha_by_snowflake_local_db.consumer.manage_datastats_task_on_account(FALSE);
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();
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();
apply_patch¶
- 스키마:
LIBRARY
설명: 클린룸 환경을 업데이트하여 환경의 새로운 기능과 수정 사항을 활성화합니다. 클린룸 환경의 새 버전이 출시되면 이를 호출합니다. (이는 일반적으로 매주 발생합니다. 최신 기능 업데이트의 클린룸 항목을 참조하세요.) 이 프로시저는 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB를 업데이트합니다.
library.enable_local_db_auto_upgrades
를 호출하여 패치 업데이트를 자동화할 수 있습니다. 자동 업데이트를 활성화하는 것이 좋습니다.
인자: 없음
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.apply_patch();
patch_cleanroom¶
- 스키마:
CONSUMER
설명: 지정된 클린룸을 최신 버전으로 업데이트하여 해당 클린룸의 새로운 기능과 수정 사항을 활성화합니다. 일반적으로 Snowflake 지원에서 호출하도록 지시한 경우에만 호출합니다.
공급자는 컨슈머가 library.patch_cleanroom
을 호출하기 전에 library.patch_cleanroom
을 호출해야 합니다. 그렇지 않으면 적용할 패치가 없습니다.
인자:
cleanroom_name(문자열) : 패치할 클린룸의 이름입니다.
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.consumer.patch_cleanroom($cleanroom_name);
dcr_health.dcr_tasks_health_check¶
설명: 실행 중이거나 최근에 중지된 클린룸 작업에 대한 정보를 표시합니다.
인자: 없음
반환: (테이블) 일정, 웨어하우스 이름, 웨어하우스 크기 등 클린룸 작업에 대한 정보입니다.
예:
CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
사용되지 않는 프로시저¶
다음 프로시저는 더 이상 사용되지 않으며 완전성을 위해 여기에만 나열되어 있습니다. 교체 프로시저가 표시되면 최신 프로시저를 사용합니다.
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)
반환: (문자열) 성공 메시지.
예
테이블을 등록하려면:
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);
register_table – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.register_objects를 사용하세요.
설명: register_db
와 유사하지만 테이블 수준에서 작동합니다. 정규화된 테이블 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여가 이루어지면 사용자가 테이블을 클린룸에 연결할 수 있습니다.
관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)에 테이블을 등록하려면 대신 library.register_managed_access_table
을 사용합니다.
인자: table_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_managed_access_table – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.register_objects를 사용하세요.
설명: register_table
과 유사하지만, WITH MANAGED ACCESS 매개 변수로 생성된 스키마에 테이블을 등록합니다. 정규화된 테이블 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여가 이루어지면 사용자가 테이블을 클린룸에 연결할 수 있습니다.
인자: table_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_view – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.register_objects를 사용하세요.
설명: register_db
와 유사하지만 뷰 수준에서 작동합니다. 정규화된 뷰 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여가 이루어지면 사용자가 뷰를 클린룸에 연결할 수 있습니다.
관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 만든 스키마)에 보기를 등록하려면 대신 library.register_managed_access_view
를 사용합니다.
인자: view_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_managed_access_view – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.register_objects를 사용하세요.
설명: register_view
와 유사하지만, WITH MANAGED ACCESS 매개 변수로 생성된 스키마에 뷰를 등록합니다. 정규화된 뷰 이름을 나타내는 배열 또는 문자열을 전달하고 SAMOOHA_APP_ROLE 역할에 대한 권한 부여가 이루어지면 사용자가 뷰를 클린룸에 연결할 수 있습니다.
인자: view_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
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)
출력 (문자열) 성공 메시지.
예
테이블 등록을 취소하려면:
CALL samooha_by_snowflake_local_db.library.unregister_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
unregister_table – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.unregister_objects를 사용하세요.
설명: unregister_db
와 유사하지만 테이블 수준에서 작동합니다. 정규화된 테이블 이름을 나타내는 배열 또는 문자열을 전달하여 테이블 등록을 해제할 수 있습니다. 사용자는 등록 해제된 테이블을 클린룸에 연결할 수 없습니다.
관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)에 테이블을 등록 취소하려면 대신 library.unregister_managed_access_table
을 사용합니다.
인자: table_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_managed_access_table – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.unregister_objects를 사용하세요.
설명: unregister_table
과 유사하지만 관리형 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)의 테이블 등록을 해제합니다.
인자: table_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_view – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.unregister_objects를 사용하세요.
설명: unregister_db
와 유사하지만 뷰 수준에서 작동합니다. 정규화된 뷰 이름을 나타내는 배열 또는 문자열을 전달하여 뷰 등록을 해제할 수 있습니다. 사용자는 등록 해제된 뷰를 클린룸에 연결할 수 없습니다.
관리되는 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 만든 스키마)에 보기를 등록 취소하려면 대신 library.unregister_managed_access_view
를 사용합니다.
인자: view_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_managed_access_view – 사용 중단됨¶
- 스키마:
LIBRARY
주의
이 프로시저는 이제 더 이상 사용되지 않습니다. library.unregister_objects를 사용하세요.
설명: unregister_view
와 유사하지만 관리형 액세스 스키마(즉, WITH MANAGED ACCESS 매개 변수로 생성된 스키마)의 뷰 등록을 해제합니다.
인자: view_name (array)
반환: (문자열) 성공 메시지.
예:
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);