개발자 APIs 를 사용하여 활성화를 위해 결과를 Snowflake 계정으로 보내기

공급자는 클린룸에 활성화 템플릿(SQL Jinja 템플릿)을 추가하여 분석 결과를 Snowflake 계정으로 푸시하여 활성화할 수 있습니다.

공급자가 실행하는 분석의 경우, 공급자는 결과를 자신의 Snowflake 계정으로 푸시할 수 있습니다(공급자 활성화). 컨슈머가 실행하는 분석의 경우, 공급자가 활성화 템플릿을 구성한 방식에 따라 컨슈머는 공급자의 Snowflake 계정(공급자 활성화) 또는 자신의 계정(컨슈머 활성화)으로 결과를 푸시할 수 있습니다.

공급자는 활성화 템플릿에 사용자 인터페이스를 추가하여 사용자가 웹 앱을 사용하여 결과를 Snowflake 계정으로 푸시할 수 있도록 할 수 있습니다. 이 경우 푸시 결과 선택 사항은 다른 활성화 선택 사항과 마찬가지로 활성화 허브에 표시됩니다. 또는 공급자와 컨슈머는 개발자 APIs 를 사용하여 활성화 템플릿을 사용하여 결과를 푸시할 수 있습니다.

공급자

공급자는 다음을 수행하려고 합니다.

  • 활성화 템플릿을 설정하여 공급자 및/또는 컨슈머가 Snowflake 계정으로 결과 세트를 푸시하는 데 사용할 수 있도록 합니다.

  • 공급자의 Snowflake 계정으로 결과를 다시 활성화합니다.

  • Snowflake 계정에서 결과 보기

공급자 설정

이 섹션에서는 공급자가 클린룸에서 활성화 템플릿을 만들고, 추가하고, 구성하기 위해 수행할 수 있는 단계에 대해 설명합니다. 여기에는 다음 섹션이 포함되어 있습니다.

공급자 활성화를 위한 템플릿 만들기

결과를 활성화하는 데 사용되는 템플릿은 분석을 실행하는 데 사용되는 템플릿과 유사합니다. 예를 들어, 활성화 템플릿은 분석 템플릿처럼 provider.add_custom_sql_template 명령으로 클린룸에 추가됩니다. 그러나 활성화 템플릿에는 다음과 같은 중요한 차이점이 있습니다.

  • 활성화 템플릿의 이름은 activation 문자열로 시작해야 합니다. 예를 들어, 이름이 activation_my_template 인 활성화 템플릿은 요구 사항을 충족합니다.

  • 활성화 템플릿은 특정 규칙을 따르는 이름으로 테이블을 생성 하고 테이블 이름을 명시적으로 반환해야 합니다.

활성화 템플릿에서 테이블 정의하기

활성화 결과를 클린룸에 보관하려면 모든 활성화 템플릿에서 테이블을 생성해야 합니다. 이 테이블에는 다음의 두 가지 요구 사항이 있습니다.

  • 테이블 이름은 cleanroom.activation_data_ 문자열로 시작해야 합니다. 예를 들어, 이름이 cleanroom.activation_data_analysis_results 테이블은 요구 사항은 충족합니다.

  • 템플릿 정의에서 테이블을 생성하는 부분은 테이블의 이름을 형성하기 위해 cleanroom.activation_data_ 에 추가된 문자열을 반환해야 합니다. 예를 들어, 테이블 이름이 cleanroom.activation_data_analysis_results 인 경우 analysis_results 문자열이 반환되어야 합니다.

다음은 테이블을 정의하고 내보내기 위해 템플릿 정의에 포함되어야 하는 내용의 예입니다.

BEGIN
  CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
    SELECT * FROM identifier({{ my_table[0] }})
  RETURN 'analysis_results';
END;
Copy

provider.add_custom_sql_template 명령을 호출하여 클린룸에 활성화 템플릿을 추가하는 방법에 대한 자세한 내용은 Snowflake Data Clean Rooms: 공급자 API 참조 가이드 섹션을 참조하십시오.

활성화 정책 설정하기

활성화 정책은 활성화 템플릿에서 사용할 수 있는 열을 정의합니다. 이는 공급자가 승인한 열만 활성화 템플릿과 함께 사용할 수 있도록 하기 위해 활성화 템플릿과 함께 사용할 수 있습니다.

공급자는 provider.set_activation_policy API 를 사용하여 활성화 정책을 설정합니다. 예:

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:STATUS',
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE',
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Copy

컨슈머 활동 활성화(컨슈머가 운영하는 분석에만 해당)

컨슈머가 자신의 계정으로 결과를 푸시하려면 공급자가 provider.enable_template_for_consumer_activation API 를 실행해야 합니다. 예:

CALL samooha_by_snowflake_local_db.provider.enable_template_for_consumer_activation(
    'my_cleanroom', 'activation_my_template');
Copy

컨슈머에게 권한 요청(공급자 활성화 전용)

공급자가 자신 또는 컨슈머가 공급자의 Snowflake 계정으로 결과를 푸시할 수 있도록 활성화 템플릿을 구성한 경우, 공급자는 provider.request_provider_activation_consent API 를 실행해야 합니다. 이 API 는 이 목적을 위해 컨슈머에게 템플릿을 승인하도록 요청합니다. 예를 들어,

CALL samooha_by_snowflake_local_db.provider.request_provider_activation_consent('my_cleanroom', 'activation_my_template');
Copy

공급자가 실행한 분석 결과를 활성화하기 전에 컨슈머는 요청을 승인 해야 합니다.

웹 앱에서 활동 설정(선택 사항)

공급자가 사용자가 웹 앱에서 분석을 실행할 수 있도록 클린룸에 대한 사용자 인터페이스를 생성하는 경우, 사용자가 웹 앱의 활성화 허브를 사용하여 결과를 활성화할 수 있도록 클린룸을 구성할 수도 있습니다. 공급자가 provider.add_ui_form_customizations API 를 실행하여 사용자 인터페이스를 만들 때 활성화 템플릿의 이름과 템플릿이 공급자 활성화에 사용되는지, 컨슈머 활성화에 사용되는지 또는 둘 다에 사용되는지 여부를 지정합니다.

예를 들어, 다음 예제에서는 사용자가 공급자 활성화와 컨슈머 활성화 모두에 활성화 허브를 사용할 수 있습니다.

CALL samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
    $cleanroom_name,
    'prod_test_references_1',
    {
      'display_name': 'PROD TEST REFERENCE FIRST',
      'description': 'Use our customized ML techniques to find lookalike audiences.',
      'methodology': 'Specify your own seed audience, while matching against our users. Then customize the lookalike model across number of boosting rounds and removing outliers.',
      'render_table_dropdowns': {
          'render_consumer_table_dropdown': TRUE,
          'render_provider_table_dropdown': TRUE
        },
     'activation_template_name': 'activation_my_template',
     'enabled_activations': ['consumer', 'provider']
    },
    {
    'reference_provider_join': {
        'display_name': 'Provider join column',
        'order': 4,
        'description': 'Which provider col do you want to join on',
        'size': 'S',
        'group': 'Seed Audience Selection',
        'references': ['PROVIDER_JOIN_POLICY'],
        'provider_parent_table_field': 'source_table',
        'type': 'dropdown'
    },
    'reference_consumer_join': {
        'display_name': 'Consumer join column',
        'order': 4,
        'description': 'Which consumer col do you want to join on',
        'size': 'S',
        'group': 'Seed Audience Selection',
        'references': ['CONSUMER_COLUMNS'],
        'consumer_parent_table_field': 'my_table',
        'type': 'dropdown'
    }
  },
  {
    'measure_columns': ['count'],
    'default_output_type': 'BAR'
  });
Copy

공급자가 실행한 분석 후 활동하기

공급자가 사용자가 웹 앱을 사용하여 분석을 실행하고 결과를 활성화할 수 있도록 클린룸을 구성한 경우, 사용자는 분석을 실행한 후 Activate 버튼을 선택하여 활성화 허브를 열 수 있습니다. 여기서 결과를 푸시할 공급자 계정을 선택할 수 있습니다.

공급자가 웹 앱이 아닌 개발자 APIs 를 사용하여 분석을 실행하는 경우 submit_analysis_request API 를 실행하여 결과를 활성화할 수 있습니다. 예:

CALL samooha_by_snowflake_local_db.submit_analysis_request(
  'my_clean_room',
  'CONSUMER_1_LOCATOR',
  'activation_custom_template',
  ['provider_source_table'],
  ['consumer_source_table'],
  object_construct(
    'dimensions', ['p.CAMPAIGN'],
    'where_clause', 'p.EMAIL=c.EMAIL'
));
Copy

공급자로서 활성화된 결과 보기

컨슈머 또는 공급자가 결과를 공급자에게 활성화하면 공급자는 클린룸 환경이 아닌 자신의 Snowflake 계정에서 이 결과를 볼 수 있습니다.

참고

컨슈머가 결과를 활성화한 경우, 공급자는 결과를 보기 위해 Snowflake 계정에 로그인하기 전에 클린룸 환경에 로그인해야 합니다.

자세한 내용은 공급자의 Snowflake 계정에서 분석 결과 보기 섹션을 참조하십시오.

컨슈머

컨슈머는 다음과 같은 작업을 하고 싶을 수 있습니다.

  • 클린룸을 설정하여 공급자 및/또는 컨슈머가 활성화 템플릿을 사용하여 결과 세트를 Snowflake 계정으로 다시 푸시할 수 있도록 합니다.

  • 결과를 Snowflake 계정으로 다시 활성화합니다.

  • Snowflake 계정에서 결과 보기

컨슈머 설정

컨슈머는 결과 세트를 활성화하기 전에 활성화 정책 을 설정해야 합니다. 공급자 활성화를 위해서는 공급자의 요청을 승인 해야 합니다.

활성화 정책 설정하기

활성화 정책은 활성화 템플릿 내에서 사용할 수 있는 열을 정의합니다. 이 정책을 활성화 템플릿과 함께 사용하여 컨슈머가 승인한 열만 활성화 템플릿과 함께 사용할 수 있도록 할 수 있습니다.

컨슈머는 consumer.set_activation_policy API 를 사용하여 활성화 정책을 설정합니다. 예:

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

공급자의 요청을 승인합니다(공급자 활동만 해당)

공급자가 공급자의 Snowflake 계정으로 결과를 전송하는 데 사용할 활성화 템플릿에 대해 provider.request_provider_activation_consent API 를 실행한 경우, 컨슈머는 해당 요청을 승인해야 합니다. 이 승인은 결과를 공급자의 계정으로 전송하는 주체가 공급자 또는 컨슈머인지 여부에 관계없이 필요합니다.

컨슈머가 웹 앱을 사용하는 경우 클린룸을 설치하면 공급자에게 필요한 동의를 얻게 됩니다.

컨슈머가 개발자 APIs 를 사용하는 경우 컨슈머는 consumer.approve_provider_activation_consent API 를 실행합니다. 예:

CALL samooha_by_snowflake_local.consumer.approve_provider_activation_consent('my_cleanroom', 'activation_my_template');
Copy

컨슈머 분석 후 활동하기

공급자가 클린룸을 구성 하여 사용자가 웹 앱을 사용하여 분석을 실행하고 결과를 활성화할 수 있도록 한 경우, 사용자는 분석을 실행한 후 Activate 버튼을 선택하여 활성화 허브를 열고, 여기에서 공급자 계정(공급자 활성화가 구성된 경우) 또는 컨슈머 계정(컨슈머 활성화가 구성된 경우)을 선택하여 결과를 푸시할 수 있습니다.

컨슈머가 웹 앱 대신 개발자 APIs 를 사용하는 경우, 컨슈머는 consumer.run_activation 명령을 호출하여 활성화 템플릿을 실행하는 방식으로 consumer.run_analysis 명령을 실행하는 것과 유사하게 결과를 Snowflake 계정으로 전송합니다. 차이점은 활성화 내용을 식별하는 데 도움이 되는 문자열을 지정하는 두 번째 인자입니다.

예를 들어, 컨슈머는 다음을 호출할 수 있습니다.

CALL samooha_by_snowflake_local_db.consumer.run_activation(
  'activation_clean_room',
  'my_activation_segment',
  'activation_custom_template',
  ['consumer_source_table'],
  ['provider_source_table'],
  object_construct(
    'dimensions', ['p.CAMPAIGN'],
    'where_clause', 'p.EMAIL=c.EMAIL'
));
Copy

consumer.run_activation 명령의 구문에 대한 자세한 내용은 Snowflake Data Clean Rooms: 컨슈머 API 참조 가이드 섹션을 참조하십시오.

컨슈머로 활성화된 결과 보기

컨슈머가 자신의 Snowflake 계정으로 결과를 푸시한 경우, Snowsight 에서 결과를 볼 수 있습니다.