목록 데이터 준비하기

이 항목에는 다양한 유형의 목록에 대한 데이터 제품을 준비하는 방법을 포함하여 목록 생성을 준비하는 지침이 있습니다.

이 항목의 내용:

목록 생성 준비하기

목록을 만들기 전에 다음을 수행하십시오.

  1. 데이터 제품을 제공할 방법을 결정합니다. 가용성 옵션 나열하기액세스 옵션 나열하기 섹션을 참조하십시오.

  2. 목록 생성을 단순화하기 위한 역할과 권한을 설정합니다. 목록에 대한 역할 및 권한 설정하기 섹션을 참조하십시오.

  3. 공유하려는 오브젝트를 식별합니다. 목록에 넣을 내용 결정하기 섹션을 참조하십시오.

  4. 다른 사람과 공유할 오브젝트를 준비합니다. 목록을 위한 공유 준비하기 섹션을 참조하십시오.

  5. 데이터 제품에 대한 액세스를 관리할 방법을 결정합니다.

  6. 목록을 제공하려는 클라우드 리전을 선택합니다. 다른 리전에서 공유할 목록 준비하기 섹션을 참조하십시오.

목록 및 데이터 공유는 Snowflake 공급자 정책 을 준수해야 합니다.

목록에 대한 역할 및 권한 설정하기

목록을 만들 때 데이터 또는 애플리케이션 패키지가 있는 계정에서 목록을 만듭니다. 데이터 제품을 목록에 연결하고 목록을 게시하는 역할은 애플리케이션 패키지 또는 공유를 생성하여 소유하는 역할과 동일해야 합니다. 공유에 대한 OWNERSHIP 권한은 양도할 수 없습니다.

다른 역할을 사용하여 목록을 생성하고 관리하는 경우 애플리케이션 패키지 또는 공유를 소유한 역할에 목록에 대한 MODIFY 권한을 부여하십시오. 예:

공유 또는 애플리케이션 패키지 소유자 역할:

공유 또는 애플리케이션 패키지에 대한 OWNERSHIP 권한. 목록에 대한 MODIFY 권한.

목록 소유자 역할:

목록에 대한 OWNERSHIP 권한입니다. 전역 CREATE DATA EXCHANGE LISTING 권한.

공급자 계정 내에서 다음 중 하나를 사용하여 목록을 만들고 관리할 수 있습니다.

ACCOUNTADMIN

ACCOUNTADMIN 역할을 사용하여 목록을 생성하고 관리하는 경우 먼저 ORGADMIN 역할은 먼저 자동 복제를 설정하는 권한을 위임 해야 합니다.

사용자 지정 역할

사용자 지정 역할을 사용하는 경우 ORGADMIN 역할은 먼저 ACCOUNTADMIN 역할에 자동 복제를 설정하는 권한을 위임 해야 하며, 그러면 이 권한을 사용하여 사용자 지정 역할에 관련 권한을 부여할 수 있습니다.

일부 권한은 Snowsight 를 사용해야만 부여할 수 있는 반면, 다른 권한은 SQL 또는 Snowsight 를 사용하여 부여할 수 있습니다.

작업

필수 권한

권한 부여에 사용하는 대상

공급자 프로필 만들기

전역 CREATE DATA EXCHANGE LISTING 권한.

SQL 또는 Snowsight

공급자 프로필 관리 또는 업데이트하기

프로필에 대한 OWNERSHIP 또는 MODIFY 권한.

Snowsight

목록 기능 및 속성 수정하기

목록에 대한 OWNERSHIP 또는 MODIFY 권한.

Snowsight

목록 보기

목록에 대한 OWNERSHIP, MODIFY 또는 USAGE 권한.

Snowsight

목록에 공유 추가

공유의 OWNERSHIP 및 목록에 대한 OWNERSHIP 또는 MODIFY 권한.

Snowsight

목록에 대한 자동 복제 설정하기

위임된 권한이 있는 ACCOUNTADMIN 이 부여한 계정 수준 MANAGE LISTING AUTO FULFILLMENT 권한과 목록에 대한 OWNERSHIP 또는 MODIFY 권한.

SQL

목록 요청 이행하기

목록에 대한 OWNERSHIP 또는 MODIFY 권한.

Snowsight

공유 권한 부여에 대한 자세한 내용은 다른 역할에 권한 부여하기 를 참조하십시오.

목록에 넣을 내용 결정하기

계정의 데이터를 목록과 공유할 준비가 되면 목록에 넣을 내용을 결정하십시오.

먼저, 공유하려는 데이터가 Snowflake에 있고 데이터를 공유할 합법적 권리와 계약상의 권리가 있는지 확인하십시오. 필요한 경우 공유하려는 데이터를 Snowflake에 로딩합니다. 데이터 로딩의 개요 를 참조하십시오.

참고

사용자 목록 또는 데이터 세트의 데이터가 법적 또는 계약상 의무의 적용을 받는 범위 내에서 사용자는 해당 데이터를 공유할 법적 및 계약상의 권리가 있는지 확인해야 합니다. 예를 들어, 개인 설정 목록을 통해서만 보호되는 건강 정보(PHI)를 공유할 수 있으며, 이를 위해서는 (1) Snowflake 및 PHI를 수신하는 컨슈머와 비즈니스 제휴 계약(BAA)에 서명하고 (2) 컨슈머도 Snowflake와 BAA에 서명했는지 확인해야 합니다. 또한, 무료 또는 개인 설정 목록을 통해 개인 데이터를 공유할 수 있지만, 이를 위해서는 데이터가 공개적으로 사용 가능하지 않은 경우 적용 가능한 법적 및 계약상 권리가 있어야 합니다.

다음으로, 보유한 데이터를 목록으로 제공할 방법을 결정합니다. Snowflake Marketplace 에 목록을 제공하거나 특정 고객에게 직접 비공개 목록으로만 제공할 계획이라면 목록 내에 배치할 내용에 대해 다른 결정을 내릴 수 있습니다.

  • 데이터의 가용성을 고려합니다.

  • 목록에 액세스할 것으로 예상하는 컨슈머를 고려합니다.

  • 테이블, 뷰, 보안 뷰 또는 다른 데이터베이스 오브젝트 등, 공유에 대해 선택하는 데이터의 형식을 고려합니다.

예를 들어 애견 미용에 대한 목록을 제공하려는 경우 다음과 같은 의사 결정을 내릴 수 있습니다.

  • 애견 품종과 털 길이에 대한 정보와 함께 Snowflake Marketplace 에서 공개적으로 제공되는 무료 목록을 제공합니다.

  • 스탠다드 푸들을 손질하는 데 걸리는 시간에 대한 데이터가 포함된 샘플 데이터 제품과 함께 Snowflake Marketplace 에 제한적 평가판 목록을 제공하며, 여기에는 컨슈머가 더 많은 개 품종에 대한 털 손질 정보에 대한 전체 데이터 제품을 요청할 수 있는 옵션이 포함됩니다.

  • 품종에 관계없이 개를 손질하는 데 걸리는 시간에 대한 데이터가 포함된 데이터 제품과 함께 Snowflake Marketplace 에 제한적 평가판 목록을 제공하며, 여기에는 컨슈머가 데이터 제품에 대한 무제한 액세스를 요청할 수 있는 옵션이 포함됩니다.

  • 다양한 애견의 미용에 걸리는 시간과 다양한 개 품종에 대한 일반적인 미용 예약 빈도에 대한 인사이트와 함께 파트너 조직에 비공개 목록을 제공합니다.

이 예에서는 Snowflake Marketplace 를 통해 소중한 데이터를 제공하지만, 이미 신뢰할 수 있는 비즈니스 관계가 있는 조직에 보다 구체적인 인사이트를 제공합니다.

목록을 위한 공유 준비하기

목록을 만들기 전에 공유를 만들거나, 목록을 만들 때 데이터 제품을 구성하기 위한 데이터베이스, 테이블, 뷰를 선택할 수 있습니다. 공유 관련 작업하기 를 참조하십시오.

많은 목록을 제공할 계획이라면 데이터 제품을 더욱 쉽게 관리할 수 있도록 목록과 별도로 공유를 만드십시오. 동일한 공유에서 여러 목록을 제공할 수 없습니다.

공유를 업데이트된 상태로 유지하는 방법 고려하기

공유에 있는 데이터의 유지 관리를 고려하십시오. 시간이 지남에 따라, 목록에 제공하려는 정보가 변경됨에 따라 데이터 공유를 변경해야 할 수도 있습니다.

또한 공유의 데이터를 업데이트된 상태로 유지하는 방법을 고려하고 공유의 내용이 컨슈머에게 유용한지 확인해야 합니다.

공유의 오브젝트가 삭제되고 나중에 다시 생성되는 경우 컨슈머가 계속 사용할 수 있도록 다시 생성된 오브젝트를 공유에 추가해야 합니다. 예를 들어, 데이터베이스에서 테이블을 삭제하고 다시 생성하여 공유의 일부 데이터를 새로 고치는 경우 다시 생성된 테이블을 포함하도록 공유를 업데이트해야 합니다.

공유할 데이터 준비하기

다른 사람과 공유할 목록에서 공유하려는 데이터를 준비합니다.

  • 테이블, 열 및 공유 이름에 따옴표가 없는 오브젝트 식별자를 사용합니다. 목록 컨슈머가 식별자를 큰따옴표로 묶을 필요 없이 공유 데이터 오브젝트를 사용할 수 있도록 하려면 오브젝트 이름에 대문자와 영숫자 문자만 사용하십시오. 식별자 요구 사항 을 참조하십시오.

  • 공유 데이터베이스의 중요한 데이터를 보호합니다. 보안 뷰를 만들고 보안 오브젝트를 사용하여 데이터에 대한 액세스를 제어합니다. 보안 오브젝트를 사용하여 데이터 액세스 제어하기 를 참조하십시오.

  • 직접 공유를 사용하는 것처럼, 컨슈머 계정과 이미 공유된 공유를 목록에 추가할 수 있습니다.

  • 공유는 1개의 목록에만 첨부할 수 있습니다. 공유가 이미 목록에 연결된 경우 목록이 삭제되었더라도 다른 목록에 연결할 수 없습니다.

제한적 평가판 목록을 제공할 준비하기

제한적 평가판 목록을 사용하면 데이터 제품 샘플을 무료 평가판으로 제공하여 컨슈머에게 전체 데이터 제품에서 사용할 수 있는 기능에 대한 정보 또는 전체 데이터 제품에 대한 시한부 액세스에 대한 정보를 제공할 수 있습니다. 그러면 컨슈머가 전체 데이터 제품에 대한 무제한 액세스를 요청할 수 있습니다. 자세한 내용은 제한적 평가판 목록 섹션을 참조하십시오.

전체 데이터 제품의 샘플을 제공하기로 선택한 경우 샘플 데이터 제품이 전체 데이터 제품에 포함된 실제 데이터의 하위 세트를 제공하는 것이 이상적이며 이 샘플 데이터 제품이 다음과 같은 방식으로 전체 데이터 제품을 대표합니다.

  • 동일한 열을 포함합니다.

  • 데이터 값의 동일하거나 유사한 범위와 분포를 포함합니다.

제한적 평가판 목록에는 데이터 사전이 포함되어 있으므로, 전체 데이터 제품에 있는 데이터의 일반적인 형태는 제공하는 샘플 데이터 제품에서 명확해야 합니다.

예를 들어 개 훈련 및 미용 회사에서는 제한적 평가판 목록과 함께 다음 샘플 데이터 제품 중 하나를 제공할 수 있을 것입니다.

샘플 데이터 제품 추천

샘플 데이터 제품 예

전체 데이터 제품 예

데이터의 특정 전체 특성에 대해 완전한 데이터 세트를 포함합니다.

스탠다드 푸들에 대한 최신 털 손질 정보를 포함합니다.

모든 개 품종에 대한 최신 털 손질 정보를 포함합니다.

오래된 특정 기간에 대한 전체 데이터 세트를 포함합니다.

2021년 5월부터 모든 개 품종의 털 손질 정보와 가격을 포함합니다.

모든 개 품종에 대한 최신 털 손질 정보와 가격을 포함합니다.

전체 데이터 제품을 대표하는 가상 데이터를 포함합니다.

가상의 아카디아 하운드 개 품종 훈련에 대한 최신 정보와 가격을 포함합니다.

모든 개 품종 훈련에 대한 최신 정보와 가격을 포함합니다.

제한적 평가판 목록을 위한 샘플 데이터 제품으로 전체 데이터 제품의 관련성 있고 완전한 하위 세트를 제공하면 컨슈머가 전체 데이터 제품의 가치를 이해하는 데 도움이 되고 전체 데이터 제품을 요청할 가능성이 높아집니다.

유료 목록을 제공할 준비하기

목록에 대해 요금을 청구하려면 다음을 수행해야 합니다.

  1. 유료 목록을 제공할 수 있는지 확인합니다. 유료 목록을 제공할 수 있는 자 섹션을 참조하십시오.

  2. 데이터 평가판을 제공하기 위한 데이터를 준비합니다. 유료 목록을 위한 공유 준비하기 섹션을 참조하십시오.

  3. 목록에 가장 적합한 가격 계획을 결정합니다. 사용 가능한 가격 계획을 검토하려면 유료 목록 가격 책정 모델 섹션을 참조하십시오.

유료 목록을 게시할 수 있는 곳

특정 리전의 공급자만 유료 목록을 게시할 수 있습니다. 유료 목록을 제공할 수 있는 자 섹션을 참조하십시오.

또한 유료 목록은 특정 리전에만 게시할 수 있습니다. 유료 목록을 게시할 수 있는 리전을 확인하려면 컨슈머가 유료 목록을 구할 수 있는 곳 섹션을 참조하십시오.

유료 목록을 위한 공유 준비하기

Snowflake Marketplace 에서 유료 목록을 제공할 때 컨슈머가 목록을 구매하기 전에 평가판으로 사용해 본 후 결정할 수 있는 기능을 제공해야 합니다. 평가판은 유료 비공개 목록을 위한 선택 사항입니다. 평가판의 일부로, 컨슈머를 특정 데이터와 기능, 특정 기간 또는 이들의 조합으로 제한할 수 있습니다.

평가판 컨슈머를 특정 데이터와 기능으로 제한하기로 한 경우 유료 목록을 위한 단일 공유를 만들고 Snowflake에서 제공하는 보안 뷰와 시스템 함수 SYSTEM$IS_LISTING_PURCHASED 를 사용하여 평가판 컨슈머에게 표시되는 데이터와 요금을 결제한 컨슈머에게만 제공되는 데이터를 제어하십시오.

참고

목록에 보안 사용자 정의 함수(UDF)가 포함된 경우 UDF에 대한 액세스를 제한할 수 없습니다. 목록의 유료 고객과 평가판 고객 모두 보안 UDF에 액세스할 수 있습니다.

유료 컨슈머와 평가판 컨슈머에게 서로 다른 데이터를 표시하는 고유한 보안 뷰를 만들려면 다음 예를 참조하십시오.

평가판 컨슈머가 제한된 기간에 목록의 모든 데이터를 사용하도록 허용하려면 공유에 대한 뷰 정의에서 SYSTEM$IS_LISTING_PURCHASED 함수를 사용하지 마십시오.

예 1: 계정의 구매 상태에 따라 데이터 반환

테이블의 모든 열을 선택하는 보안 뷰를 만듭니다. 뷰는 유료 목록을 구매한 컨슈머 계정 내에서 쿼리할 때만 행을 반환합니다.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

예 2: 계정의 구매 상태에 따라 행의 하위 세트 반환

데이터에 있는 특정 열의 부울 값을 기반으로 행의 하위 세트를 반환하는 보안 뷰를 만듭니다. 이 예에서는 기본 테이블에 어떤 컨슈머에게 어떤 데이터를 표시할지 결정하는 데 사용되는 is_free 라는 열이 있습니다.

일부 행에는 is_freeTRUE 로 설정되어 있는데, 이는 해당 행의 데이터가 평가판 컨슈머에게 표시될 수 있음을 나타냅니다. 다른 행에는 is_freeFALSE 로 설정되어 있는데, 이는 해당 행의 데이터가 유료 컨슈머에게만 표시되어야 함을 나타냅니다.

이 예제 뷰는 유료 목록을 구매한 컨슈머 계정에서 쿼리할 때만 모든 행을 반환하도록 설정되어 있으며, 그렇지 않으면 is_freeTRUE 로 설정된 행만 반환합니다.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    is_free
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

예 3: 계정의 구매 상태에 따라 가장 최근 행만 반환

평가판을 사용 중이지만 아직 유료 목록을 구매하지 않은 컨슈머 계정으로 이전 7일간의 행만 반환하는 보안 뷰를 만듭니다.

이 예에서는 타임스탬프 데이터 타입이 있는 열을 사용하여 데이터를 필터링하지만, 보안 뷰 정의에서 다른 열 데이터 타입을 사용할 수 있습니다.

CREATE SECURE VIEW paid_v
  AS
  SELECT *
  FROM
    paid_t
  WHERE
    (timestamp > current_timestamp() - interval '7 days')
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

유료 및 평가판 데이터에 대해 보안 뷰 유효성 검사하기

보안 뷰를 준비한 후 유료 및 평가판 컨슈머 계정의 경험을 시뮬레이션하여 보안 뷰를 올바르게 설정했는지 검증합니다. 보안 뷰에 대해 쿼리를 실행하여 각 유형의 컨슈머가 예상 데이터에 대한 액세스 권한이 있는지 확인합니다.

중요

이 방법은 컨슈머가 데이터에 안전하게 액세스할 수 있는지 여부를 검증하지 않습니다. 이 방법은 공유가 컨슈머에게 예상대로 작동하는지 여부만 검증합니다.

공유의 유효성을 검사하려면 SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED) 를 사용하여 보안 뷰에 대해 쿼리를 실행합니다.

EXECUTE USING SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED=>{ 'TRUE' | 'FALSE' })
  AS <query>
Copy

여기서:

  • SYSTEM$IS_LISTING_PURCHASED 는 유효성 검사 작업을 유료 컨슈머로서 할지, 평가판 또는 무료 컨슈머로서 할지 여부를 지정합니다. 유효한 값은 다음과 같습니다.

    • TRUE. 유료 컨슈머로서 공유의 유효성을 검사합니다.

    • FALSE. 평가판 또는 무료 컨슈머로서 공유의 유효성을 검사합니다.

  • <쿼리> 는 보안 뷰에 대해 실행하려는 SQL 쿼리입니다.

명령을 사용하여 쿼리를 실행하는 경우, 사용자가 컨슈머인 것처럼 공유에 대해 쿼리가 실행됩니다.

예를 들어 유효성을 검사하려는 공유가 있다고 가정하겠습니다. 공유에는 SHARE_TABLE 이라는 테이블의 모든 데이터를 보호하는 보안 뷰 PURCHASED_VIEW 가 포함되어 있습니다. 목록을 구매한 컨슈머만 데이터에 액세스할 수 있는지 검증하려고 합니다.

평가판 컨슈머가 보안 뷰의 데이터에 액세스할 수 없는지 확인하려면 다음 쿼리를 실행하십시오.

EXECUTE USING share_context(system$is_listing_purchased=>'FALSE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

보안 뷰가 예상대로 작동하고 평가판 컨슈머가 액세스할 수 있는 데이터가 없을 경우 쿼리가 다음 응답을 반환합니다.

Query produced no results
Copy

유료 컨슈머가 데이터에 액세스할 수 있는지 확인하려면 다음 쿼리를 실행하십시오.

EXECUTE USING share_context(system$is_listing_purchased=>'TRUE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

보안 뷰가 예상대로 작동할 경우 쿼리는 유료 컨슈머가 원하는 결과인 SHARE_TABLE 의 모든 열과 행을 반환합니다.

SYSTEM$IS_LISTING_PURCHASED

데이터를 쿼리하는 컨슈머 계정이 목록을 구매한 경우 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다. 어떤 계정에서 목록을 평가판으로 사용하는 경우 이 함수는 FALSE를 반환합니다. 보안 뷰에서 이 시스템 함수를 사용하여 공유의 데이터에 대한 액세스를 관리하고 유료 고객에게만 특정 데이터를 표시합니다.

이 함수는 뷰가 있는 데이터베이스와 연결된 목록을 유추하고 쿼리를 실행하는 계정이 목록을 구매했는지 여부를 결정합니다.

구문
SYSTEM$IS_LISTING_PURCHASED()
Copy
인자

없습니다.

테이블의 모든 열을 선택하는 보안 뷰를 만듭니다. 다음과 같이 뷰는 유료 목록을 구매한 컨슈머 계정 내에서 쿼리할 때만 행을 반환합니다.

CREATE SECURE VIEW paid_view
  AS
  SELECT
    *
  FROM
    paid_table
  WHERE
    SYSTEM$IS_LISTING_PURCHASED();
Copy

유료 목록을 평가판으로 사용하는 컨슈머에게는 이 뷰에 행이 표시되지 않습니다.

추가적인 예는 유료 목록을 위한 공유 준비하기 를 참조하십시오.

다른 리전에서 공유할 목록 준비하기

목록을 구성할 때 다른 리전에서 제공하도록 선택할 수 있습니다. 다른 리전에서 목록을 제공하려면 데이터를 복제해야 합니다.

데이터를 복제하는 데 걸리는 시간과 복제 관련 비용을 고려합니다.

Snowflake의 모든 리전 간 데이터 공유에서는 Snowflake의 데이터 복제 기능을 사용합니다. 리전 및 클라우드 플랫폼 전체에서 안전하게 데이터 공유하기 를 참조하십시오.