Snowflake Data Clean Rooms: 개발자 APIs 개요

Snowflake Data Clean Room은 클린룸을 사용하여 애플리케이션을 개발할 수 있는 업계 최초의 개발자 APIs를 제공합니다. 이러한 강력한 APIs를 활용하여 클린룸의 수명 주기를 관리하고, 다양한 보안 분석을 생성 및 실행한 다음 공유할 수 있습니다.

클린룸은 내부의 데이터를 보호하는 암호화된 보안 환경입니다. 클린룸은 클린룸 생성자가 활성화한 특정 분석 및 알고리즘만 실행합니다. 또한, 집계된 결과만 외부에 노출하는 차등 개인정보 보호 기술을 통해 보호 계층이 추가되었습니다. 클린룸은 클린룸 생성자가 제공한 알고리즘을 제외하고는 어떤 사용자나 프로세스도 데이터를 읽거나 쓸 수 없도록 보장합니다.

공동 작업자

일반적으로 클린룸의 수명 주기에는 공동 작업을 수행하는 두 당사자가 관련됩니다.

  • 공급자 는 클린룸을 만들고, 필요한 데이터를 추가하고, 정책을 설정하고, 관련 분석을 추가한 다음 이를 컨슈머와 공유합니다.

  • 컨슈머 는 공급자로부터 클린룸을 공유받습니다. 컨슈머는 클린룸을 설치하고, 데이터를 추가하고, 클린룸 내부에 있는 분석 템플릿에 적절한 인자를 전달하여 분석을 실행할 수 있습니다.

분석

분석은 클린룸 내부에서 실행되는 알고리즘입니다. 공급자는 몇 가지 분석을 선택하여 특정 클린룸에 대한 분석을 활성화하고, 컨슈머는 해당 분석 중 하나 이상을 실행하도록 선택할 수 있습니다.

전제 조건

Snowflake Data Clean Room의 개발자 APIs를 사용하려면 먼저 관리자가 클린룸 환경을 구성하고 사용자를 사용자로 추가해야 합니다. 자세한 내용은 Snowflake 데이터 클린룸 시작하기를 참조하십시오.

개발자 APIs를 실행하려면 SAMOOHA_APP_ROLE 역할을 사용해야 합니다. API를 실행하기 전에 Snowflake 워크시트에 다음을 추가합니다.

USE ROLE samooha_app_role;
Copy

데이터 연결하기

공급자와 컨슈머는 클린룸 환경에 데이터를 연결할 수 있으므로 클린룸 환경에 물리적 복사본이 필요하지 않습니다. Snowflake Data Clean Rooms는 Snowflake Native App Framework을 활용하므로, Snowflake Native App Framework에서 지원되는 모든 오브젝트를 연결할 수 있습니다.

클린룸 사용자가 데이터를 클린룸에 연결하려면 먼저 계정 관리자가 데이터베이스, 스키마 또는 오브젝트 수준에서 데이터를 등록해야 합니다. 관리자가 데이터베이스나 스키마를 등록하면, 해당 데이터베이스나 스키마에 있는 모든 오브젝트도 등록됩니다. 관리자가 데이터를 등록하는 방법에 대한 자세한 내용은 Snowflake Data Clean Rooms에 데이터 등록을 참조하십시오.

계정 관리자가 데이터를 등록한 후, 클린룸 사용자는 link_datasets 명령을 실행하여 오브젝트를 클린룸에 연결할 수 있습니다. 예를 들어, 공급자는 다음 명령을 실행하여 MY_TABLE 테이블을 dcr_cleanroom 클린룸에 연결할 수 있습니다.

CALL samooha_by_snowflake_local_db.provider.link_datasets('dcr_cleanroom', 
   ['MY_DB.MY_SCHEMA.MY_TABLE']);
Copy

참고

외부 테이블과 Iceberg 테이블은 클린룸에서 연결하기 전에 추가 단계가 필요합니다. 자세한 내용은 Snowflake Data Clean Rooms: 외부 및 Iceberg 테이블을 참조하십시오.

분석에서 이전 결과 검색하기

개발자 APIs를 사용하여 분석을 실행하면 Snowflake Data Cleans Rooms가 계정에서 쿼리를 실행합니다. 분석과 연결된 쿼리의 쿼리 ID를 사용하여 이전 분석의 결과를 검색할 수 있습니다.

참고

API 분석을 실행하고 이 쿼리를 사용하여 결과를 검색하는 도중에 웨어하우스가 일시 중단되면 결과를 얻지 못할 수 있습니다.

이전 분석에서 결과를 검색하려면:

  1. Snowsight에 로그인합니다.

  2. 모니터링 >> 쿼리 기록 을 선택합니다.

  3. 필터를 사용하여 분석과 관련된 쿼리를 찾은 다음 쿼리 ID를 복사합니다.

  4. 워크시트를 열고 쿼리의 쿼리 ID에 따라 결과를 검색하는 쿼리를 실행합니다. 예를 들어, 쿼리 ID가 ABC123 인 경우 다음을 실행합니다.

       SELECT * FROM TABLE(result_scan(ABC123));
    
    Copy

API 참조 설명서

개발자 APIs의 설명과 서명은 다음을 참조하십시오.

확장된 예

Developer APIs의 다양한 기능을 사용하는 방법에 대한 이해를 돕기 위해 다음 예제를 참조하십시오.

엔드투엔드: 공급자 데이터 분석

  • 공급자는 클린룸에 연결한 데이터 세트에 대한 조인 및 기타 열 정책을 정의한 다음, 사전 정의된 보안 데이터 분석 템플릿을 클린룸에 추가할 수 있습니다.

  • 컨슈머는 공급자가 공유하는 클린룸을 사용하고, 그 안에서 탐색 분석을 실행할 수 있습니다. 컨슈머는 공급자가 설정한 조인 및 컬럼 정책을 준수해야 합니다.

자세한 내용은 종단 간: 공급자 데이터 분석을 참조하십시오.

엔드투엔드: 중첩 분석

  • 공급자는 여러 데이터 세트를 연결하고, 클린룸에 대한 데이터 세트에 대한 중첩 분석을 수행하는 사전 정의된 분석 템플릿을 추가할 수 있습니다.

  • 컨슈머는 더 많은 데이터 세트를 연결하고 클린룸에서 사용 가능한 모든 공급자 및 컨슈머 데이터 세트에 대해 공동으로 중첩 분석을 수행할 수 있습니다.

자세한 내용은 엔드투엔드: 중첩 분석 섹션을 참조하십시오.

사용자 지정 분석 템플릿

  • 공급자는 클린룸에 사용자 지정 분석 템플릿을 정의하고 추가할 수 있으며, 이를 통해 컨슈머는 사용자 지정 분석을 실행할 수 있습니다.

  • 이러한 사용자 지정 분석 템플릿은 강력한 SQL Jinja 템플릿을 활용하여 일반화할 수 있으며, 차등 개인정보 보호와 같은 개인정보 보호 강화 기술도 지원할 수 있습니다.

자세한 내용은 사용자 지정 분석 템플릿 섹션을 참조하십시오.

보안 Python 기반 템플릿

  • 공급자는 사용자 지정 분석 템플릿 내에서 실행될 사용자 지정 Python 코드를 로드할 수 있습니다.

  • 클린룸에 로드된 모든 Python 코드는 완전히 기밀로 유지되며, 이를 사용하는 컨슈머가 볼 수 없습니다.

자세한 내용은 보안 Python 기반 템플릿을 참조하십시오.

머신 러닝

  • 공급자는 사용자가 클린룸 내에서 안전하게 실행할 수 있는 고급 머신 러닝 모델을 정의할 수 있습니다.

  • 컨슈머가 볼 수 없는 보안 Python 코드를 사용하여 클린룸 내부에서 완전한 보안 환경에서 실행할 수 있는 복잡한 ML 모델을 정의할 수 있습니다.

자세한 내용은 머신 러닝 섹션을 참조하십시오.

보안 Python UDTF 기반 템플릿

  • 공급자는 단순 API를 사용하여 보안 Python UDTFs를 생성하고 이를 컨슈머와 공유할 수 있습니다.

  • 컨슈머는 공급자가 제공하는 간단한 템플릿을 사용하여 Python UDTF를 사용할 수 있습니다.

자세한 내용은 보안 Python UDTF 기반 템플릿을 참조하십시오.

개발자 API 클린룸을 웹 앱에 등록하기

  • 공급자는 사용자 지정 분석 및 템플릿이 로드된 클린룸을 Snowflake Data Clean Room의 웹 앱에 등록하여, 공동 작업자가 사용자 인터페이스에서 클린룸으로 작업할 수 있도록 할 수 있습니다.

  • 공동 작업자는 웹 앱을 통해 이러한 복잡한 사용자 지정 클린룸과 완전히 상호 작용할 수 있습니다.

자세한 내용은 개발자 API 클린룸을 웹 앱에 등록하기를 참조하십시오.

보안 Snowpark 프로시저

  • 공급자는 자체 Snowpark 프로시저를 정의하고 이를 컨슈머와 안전하게 공유할 수 있습니다.

  • 컨슈머는 일반적인 run_analysis 워크플로를 사용하여 이러한 Snowpark 프로시저를 호출할 수 있습니다.

자세한 내용은 보안 Snowpark 프로시저 섹션을 참조하십시오.