Internal Marketplace의 사용자 정의 속성

Internal Marketplace의 사용자 정의 속성

사용자 정의 속성(custom attributes)을 사용하면 조직이 모든 제공자가 Internal Marketplace에서 내부 데이터 제품을 게시할 때 사용할 수 있는 표준화된 메타데이터 필드를 중앙에서 정의할 수 있어요. 이러한 속성은 리스팅 생성 중 나타나는 구성 가능한 필드로 동작해요. 조직 전반에 걸쳐 일관된 분류를 가능하게 하고 검색 가능성과 거버넌스를 개선해요.

출처: Custom attributes in the Internal Marketplace

본문

사용자 정의 속성은 조직 계정의 GLOBALORGADMIN이 Internal Marketplace 구성 SQL 명령을 사용해 만들고 관리해요. 속성이 구성된 후 제공자는 이러한 속성을 데이터 제품에 적용할 수 있고, 소비자는 공유된 데이터 제품에 대한 추가 정보로 이 속성을 볼 수 있어요.

사용자 정의 속성은 세 가지 선택 유형을 지원해요: 단일 선택(single-select), 다중 선택(multi-select), 자유 텍스트(free-text).

주요 이점

데이터 발견 개선

사용자 정의 속성은 소비자가 가장 관련성 높은 데이터 제품을 빠르게 찾도록 돕는 추가적인 세분화되고 표준화된 필터와 검색 가능한 필드를 제공해요.

리스팅 전반의 일관된 메타데이터

속성이 GLOBALORGADMIN에 의해 중앙에서 정의되므로 모든 제공자가 동일한 필드 이름과 값 집합을 사용해, 조직 전반에 걸쳐 균일하고 예측 가능한 메타데이터가 생겨요.

더 강력한 데이터 조직화 및 거버넌스

사용자 정의 속성은 PII(개인 식별 정보) 식별, 환경 분류(Prod/Dev), 업무 도메인별 태깅 같은 주요 거버넌스 시나리오를 지원해요. 사용자 정의 속성으로 소비자는 각 데이터 제품의 민감도, 사용, 규정 준수 특성을 명확히 이해할 수 있어요.

메타데이터의 중앙 제어

CREATE INTERNAL MARKETPLACE CONFIG 권한이 있는 사용자만 사용자 정의 속성을 만들고 관리할 수 있어요. 이 권한은 기본적으로 GLOBALORGADMIN 역할에만 제공돼요. 이는 사용자가 검증되지 않은 필드를 추가하는 것을 방지하고, 모든 리스팅이 조직의 내부 표준에 맞는 메타데이터를 사용하도록 보장해요.

사전 요구 사항

  • 속성 가시성은 현재 조직 수준에서만 설정돼요.

기능 요약

  • 새로운 CREATE INTERNAL MARKETPLACE CONFIG 권한.
  • 새로운 Internal Marketplace 구성 매니페스트.
  • SQL 명령:
    • CREATE INTERNAL MARKETPLACE CONFIG
    • ALTER INTERNAL MARKETPLACE CONFIG
    • DROP INTERNAL MARKETPLACE CONFIG
    • SHOW INTERNAL MARKETPLACE CONFIGS
    • SHOW AVAILABLE INTERNAL MARKETPLACE CONFIGS
    • DESCRIBE INTERNAL MARKETPLACE CONFIG
    • DESCRIBE AVAILABLE INTERNAL MARKETPLACE CONFIG
  • 조직 리스팅 매니페스트 참조에서 사용 가능한 새로운 custom_attributes 필드.
  • DESCRIBE AVAILABLE LISTING 및 SHOW AVAILABLE LISTINGS 명령의 새로운 custom_attributes 열.
  • DESCRIBE LISTING 및 SHOW LISTINGS 명령의 새로운 custom_attributes 열.
  • INFORMATION_SCHEMA.LISTINGS 뷰의 새로운 custom_attributes 열.

워크플로

  • GLOBALORGADMIN은 선택적으로 CREATE INTERNAL MARKETPLACE CONFIG 권한을 조직 내 다른 역할에 부여해요.
  • CREATE INTERNAL MARKETPLACE CONFIG 권한이 있는 사용자가 Internal Marketplace 사용자 정의 구성 매니페스트를 만들어요.
  • 그런 다음 사용자가 CREATE INTERNAL MARKETPLACE CONFIG 명령을 실행하고 새로 만든 사용자 정의 구성 매니페스트를 참조해요. 이제 사용자 정의 속성을 리스팅에서 참조할 수 있게 돼요.
  • CREATE LISTING 또는 ALTER LISTING 역할을 가진 제공자가 리스팅을 만들거나 변경할 때 조직 리스팅 매니페스트 참조에 사용자 정의 속성을 추가해요.

CREATE INTERNAL MARKETPLACE CONFIG 권한

CREATE INTERNAL MARKETPLACE CONFIG 권한은 GLOBALORGADMIN 역할에 제공돼요.

GLOBALORGADMIN은 이 권한을 다른 역할에 부여할 수 있어요.

Internal Marketplace 구성 매니페스트 참조

Internal Marketplace 구성 매니페스트는 사용자 정의 속성의 구조를 정의해요. 이 섹션에서는 구성 매니페스트에서 사용할 수 있는 필드를 설명해요.

Internal Marketplace 구성 매니페스트 필드

매니페스트에는 일련의 최상위 필드와 props 필드가 포함돼요.

최상위 필드

각 구성 매니페스트는 다음 필드로 시작해요.

  • title(문자열, 필수, 최대 길이 80): 제공자가 Snowsight에서 볼 구성 제목.
  • description(문자열, 선택, 최대 길이 150): 제공자가 Snowsight의 사용자 정의 속성 드롭다운 메뉴 아래에서 볼 구성 설명. Markdown 구문이 지원돼요.
  • config_type(문자열, 필수): Internal Marketplace 구성의 유형. 현재는 custom_attribute만 가능해요.
  • is_required(BOOLEAN, 선택, 기본값: false): 리스팅이 이 사용자 정의 속성을 포함해야 하는지 여부.
props

사용자 정의 속성별 속성을 저장하는 YAML 객체. 다음 필드를 지정해요.

  • custom_attribute_type(문자열, 필수): single_select, multi_select 또는 free_text 중 하나.
  • is_filterable(BOOLEAN, single_select와 multi_select에 필수, free_text에는 해당 없음): 사용자 정의 속성을 필터로 사용할 수 있는지 여부.
  • allowed_value_definitions(목록, single_select와 multi_select에 필수, free_text에는 해당 없음): 값 정의 목록. 각 값 정의는 다음 필드를 포함해요.
    • name(문자열, 필수): 값의 내부 식별자. 문자나 밑줄로 시작하고, 문자, 숫자, 밑줄이 이어져야 해요. 문자, 숫자, 밑줄만 포함할 수 있어요(소문자 가능). 속성 내에서 고유해야 해요. 최대 길이 100자. 이 필드는 생성 후 변경할 수 없어요.
    • display_name(문자열, 필수): 제공자와 소비자에게 표시되는 사람이 읽을 수 있는 레이블. 이 필드는 변경할 수 있어요.
    • status(문자열, 필수): 값의 상태. active 또는 deprecated일 수 있어요. deprecated로 설정하면 제공자는 새 리스팅에서 이 값을 더 이상 선택할 수 없지만, 이 값을 사용하는 기존 리스팅은 영향받지 않아요. 이 필드는 active에서 deprecated로 변경할 수 있지만 그 반대는 불가능해요.

주의 free_text 속성의 경우 allowed_value_definitions 필드는 사용되지 않아요. 제공자는 최대 길이 300자의 자유 형식 텍스트를 입력해요.

props 예시

단일 선택 속성:

props:
  custom_attribute_type: "single_select"
  is_filterable: true
  allowed_value_definitions:
    - name: "FINANCE"
      display_name: "Finance"
      status: "active"
    - name: "MARKETING"
      display_name: "Marketing"
      status: "active"

자유 텍스트 속성:

props:
  custom_attribute_type: "free_text"

Internal Marketplace 사용자 정의 구성 매니페스트 예시

사용자 정의 속성용 매니페스트를 만들 때 아래 예시는 포함할 필드를 보여줘요.

title: "Data Category"
description: "Categorizes data products by business domain"
config_type: "custom_attribute"
is_required: true
props:
  custom_attribute_type: "single_select"
  is_filterable: true
  allowed_value_definitions:
    - name: "FINANCE"
      display_name: "Finance"
      status: "active"
    - name: "MARKETING"
      display_name: "Marketing"
      status: "active"

SQL 명령

다음 SQL 명령은 Internal Marketplace 구성을 만들고, 관리하고, 검토하는 데 사용할 수 있어요.

CREATE INTERNAL MARKETPLACE CONFIG

사용자 정의 속성에 대한 Internal Marketplace 구성을 만들어요.

구문
CREATE INTERNAL MARKETPLACE CONFIG <name> AS '<yaml_im_config_manifest_string>'
파라미터
  • name — 사용자 정의 구성 식별자(이름)를 지정해요. 요구 사항: 계정이 위치한 Snowflake 리전과 관계없이 조직 내에서 고유해야 해요. 대문자(A-Z), 숫자(0-9), 밑줄(_)로 구성되어야 해요. 영문자로 시작해야 해요.
  • AS 'yaml_im_config_manifest_string' — Internal Marketplace 사용자 정의 구성의 YAML 매니페스트를 지정해요. 매니페스트는 일반적으로 달러 인용(dollar-quoted) 문자열로 제공돼요. 자세한 내용은 달러 인용 문자열 상수 문서를 참고하세요.
접근 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할은 다음 권한을 가져야 해요.

권한 객체 설명
CREATE INTERNAL MARKETPLACE CONFIG 계정 기본적으로 GLOBALORGADMIN 역할만 이 권한을 가져요. 필요에 따라 추가 역할에 이 권한을 부여할 수 있어요.
예시
CREATE INTERNAL MARKETPLACE CONFIG DATA_CATEGORY_CONFIG AS $$
title: "Data Category"
description: "Categorizes data products by business domain"
config_type: "custom_attribute"
is_required: true
props:
  custom_attribute_type: "single_select"
  is_filterable: true
  allowed_value_definitions:
    - name: "FINANCE"
      display_name: "Finance"
      status: "active"
    - name: "MARKETING"
      display_name: "Marketing"
      status: "active"
$$;

ALTER INTERNAL MARKETPLACE CONFIG

기존 Internal Marketplace 구성 객체를 변경해요.

주의 다음 필드는 변경할 수 있어요.

  • title
  • description
  • is_filterable
  • is_required(true에서 false로만 변경 가능)
  • allowed_value_definitions: 새 값 정의를 추가하고, display_name을 변경하고, status를 active에서 deprecated로 변경할 수 있어요.

다음 필드는 생성 후 변경할 수 없어요.

  • config_type
  • custom_attribute_type
  • is_required(false에서 true로 변경 불가)
  • allowed_value_definitions.name(기존 값 정의의 이름은 변경할 수 없어요)
구문
ALTER INTERNAL MARKETPLACE CONFIG <name> AS '<yaml_manifest_string>'
파라미터
  • name — 사용자 정의 구성 식별자(이름)를 지정해요. 요구 사항: 계정이 위치한 Snowflake 리전과 관계없이 조직 내에서 고유해야 해요. 대문자(A-Z), 숫자(0-9), 밑줄(_)로 구성되어야 해요. 영문자로 시작해야 해요.
  • AS 'yaml_manifest_string' — 사용자 정의 구성의 YAML 매니페스트를 지정해요. 매니페스트는 일반적으로 달러 인용 문자열로 제공돼요. 자세한 내용은 달러 인용 문자열 상수 문서를 참고하세요.
예시
ALTER INTERNAL MARKETPLACE CONFIG DATA_CATEGORY_CONFIG AS $$
title: "Updated Data Category"
description: "Updated description"
config_type: "custom_attribute"
is_required: false
props:
  custom_attribute_type: "single_select"
  is_filterable: true
  allowed_value_definitions:
    - name: "FINANCE"
      display_name: "Finance & Accounting"
      status: "active"
    - name: "MARKETING"
      display_name: "Marketing"
      status: "deprecated"
    - name: "OPERATIONS"
      display_name: "Operations"
      status: "active"
    - name: "SALES"
      display_name: "Sales"
      status: "active"
$$;

DROP INTERNAL MARKETPLACE CONFIG

기존 Internal Marketplace 구성 객체를 삭제해요.

주의 구성에 is_required가 true로 설정되어 있으면 DROP 명령이 오류를 반환해요. 필수 구성을 삭제하려면 먼저 ALTER로 is_required를 false로 설정한 뒤 DROP 명령을 다시 시도해요. 이 구성을 참조하는 리스팅이 영향받을 수 있어요.

구문
DROP INTERNAL MARKETPLACE CONFIG <name>
파라미터
  • name — 삭제할 사용자 정의 구성 식별자(이름)를 지정해요.
예시
DROP INTERNAL MARKETPLACE CONFIG DATA_CATEGORY_CONFIG;

SHOW INTERNAL MARKETPLACE CONFIGS

이 명령을 실행하는 사용자가 조직 계정에서 만든 Internal Marketplace 구성 객체의 목록을 표시해요.

사용자가 객체를 만들지 않았거나, 이 명령이 조직 계정이 아닌 곳에서 실행되면 출력은 비어 있어요.

구문
SHOW INTERNAL MARKETPLACE CONFIGS
파라미터

없음.

접근 제어 요구 사항

없음. 모든 제공자나 소비자가 이 명령을 실행할 수 있지만, 이 명령이 객체를 만든 사용자에 의해 조직 계정에서 실행될 때만 출력을 사용할 수 있어요.

출력

주의 이 명령이 조직 계정이 아닌 곳에서 실행되거나, 이 객체를 만들지 않은 사용자가 실행하면 출력이 비어 있어요.

열 설명
createdOn 구성이 생성된 날짜.
name 구성의 이름.
title 구성의 제목.
description 구성 설명.
configType 구성 유형. 현재는 custom_attribute만 가능.
state 구성 상태.
isRequired 구성이 필수인지 여부.
props 구성 속성. 사용자 정의 속성 유형, 속성의 필터 가능 여부, 허용된 값 정의를 포함해요.
예시
SHOW INTERNAL MARKETPLACE CONFIGS;

SHOW AVAILABLE INTERNAL MARKETPLACE CONFIGS

이 명령을 실행하는 사용자가 사용할 수 있는 Internal Marketplace 사용자 정의 구성을 나열해요.

구문
SHOW AVAILABLE INTERNAL MARKETPLACE CONFIGS
파라미터

없음.

접근 제어 요구 사항

없음. 조직 내 모든 제공자나 소비자가 이 명령을 실행할 수 있어요.

출력
열 설명
createdOn 구성이 생성된 날짜.
name 구성의 이름.
title 구성의 제목.
description 구성 설명.
configType 구성 유형. 현재는 custom_attribute만 가능.
state 구성 상태.
isRequired 구성이 필수인지 여부.
props 구성 속성. 사용자 정의 속성 유형, 속성의 필터 가능 여부, 허용된 값 정의를 포함해요.
예시
SHOW AVAILABLE INTERNAL MARKETPLACE CONFIGS;

DESCRIBE INTERNAL MARKETPLACE CONFIG

현재 사용자가 만든 특정 Internal Marketplace 구성 객체를 설명해요.

구문
DESCRIBE INTERNAL MARKETPLACE CONFIG <name>
파라미터
  • name — 설명할 사용자 정의 구성 식별자(이름)를 지정해요.
출력

출력에는 SHOW INTERNAL MARKETPLACE CONFIGS의 모든 열과 다음 추가 열이 포함돼요.

열 설명
manifest_yaml 구성의 최신 YAML 매니페스트.
예시
DESCRIBE INTERNAL MARKETPLACE CONFIG DATA_CATEGORY_CONFIG;

DESCRIBE AVAILABLE INTERNAL MARKETPLACE CONFIG

이 명령을 실행하는 사용자가 사용할 수 있는 특정 Internal Marketplace 구성 객체를 설명해요.

구문
DESCRIBE AVAILABLE INTERNAL MARKETPLACE CONFIG <name>
파라미터
  • name — 설명할 사용자 정의 구성 식별자(이름)를 지정해요.
출력

출력에는 SHOW AVAILABLE INTERNAL MARKETPLACE CONFIGS와 같은 열이 포함돼요.

예시
DESCRIBE AVAILABLE INTERNAL MARKETPLACE CONFIG DATA_CATEGORY_CONFIG;

리스팅 매니페스트 업데이트

조직 리스팅의 매니페스트 참조에 custom_attributes 필드를 사용할 수 있어요.

custom_attributes

리스팅의 Custom Attributes 섹션에 추가되는 추가 속성.

custom_attributes 필드는 제공자가 리스팅에 사용자 정의 속성을 지정할 수 있게 해줘요. 이 필드는 다음 필드를 포함해요.

  • name(문자열, 필수): Internal Marketplace 사용자 정의 구성 매니페스트에서 정의된 사용자 정의 속성 객체의 이름.
  • values(값 목록, 필수): single_select와 multi_select의 경우 속성의 allowed_value_definitions에서 값 표시 이름의 전체 또는 일부를 포함하는 목록. free_text의 경우 목록은 1개의 값만 포함할 수 있어요(최대 길이 300자).
custom_attributes 예시

리스팅의 단일 선택 속성:

custom_attributes:
  - name: DATA_CATEGORY_CONFIG
    values:
      - Finance

리스팅의 자유 텍스트 속성:

custom_attributes:
  - name: DOCUMENTATION_URL
    values:
      - "https://wiki.example.com/data-products/sales"

리스팅 명령 및 뷰의 새 열

제공자와 소비자는 DESCRIBE AVAILABLE LISTING 및 SHOW AVAILABLE LISTINGS 명령을 실행해 사용자 정의 속성을 볼 수 있어요. 각 출력에는 새로운 custom_attributes 열이 포함돼요.

제공자의 경우 custom_attributes 열은 SHOW LISTINGS 및 DESCRIBE LISTING의 출력에서도 사용할 수 있어요.

또한 INFORMATION_SCHEMA.LISTINGS 뷰에 새로운 custom_attributes 열이 있어, 제공자가 자신의 리스팅에 적용된 사용자 정의 속성을 프로그래밍 방식으로 쿼리할 수 있어요.

사용자 정의 속성 제한 사항

관리자 측 제한 사항

  • CREATE INTERNAL MARKETPLACE CONFIG 권한이 있는 사용자만 사용자 정의 속성을 만들거나 변경할 수 있어요. 이 권한은 기본적으로 GLOBALORGADMIN 역할에 부여돼요.
  • 현재 custom_attribute 구성 유형만 지원돼요.
  • custom_attribute_type(single_select, multi_select 또는 free_text)은 생성 후 변경할 수 없어요.
  • is_required 필드는 true에서 false로만 변경할 수 있어요. false에서 true로는 변경할 수 없어요.
  • allowed_value_definitions 내에서 기존 값의 name은 변경할 수 없어요.
  • 값은 deprecated(폐기)될 수 있지만 제거할 수는 없어요.
  • 필수 구성(is_required = true)은 직접 삭제할 수 없어요. 먼저 ALTER로 is_required를 false로 설정한 뒤 DROP을 다시 시도해야 해요.

속성 및 값 제한

  • 조직당 사용자 정의 속성 최대 수: 10
  • 제목 최대 길이: 80자
  • 설명 최대 길이: 150자
  • 속성당 허용된 값 정의 최대 수: 15
  • 각 값 이름의 최대 길이: 100자
  • 각 값 표시 이름의 최대 길이: 100자
  • 제공자의 자유 텍스트 입력 최대 길이: 300자

명명 제약

  • 구성 이름은 대문자(A-Z), 숫자(0-9), 밑줄(_)로 구성되어야 해요.
  • 구성 이름은 영문자로 시작해야 해요.
  • 구성 이름은 조직 내에서 고유해야 해요.
  • allowed_value_definitions의 값 이름은 문자나 밑줄로 시작하고, 문자, 숫자, 밑줄이 이어져야 해요(소문자 가능).

제공자 제한 사항

  • 제공자는 관리자가 정의한 속성 이름과 값만 사용할 수 있어요.
  • 제공자는 새 리스팅에서 deprecated 값을 선택할 수 없어요.
  • 자유 텍스트 속성의 경우 제공자는 300자로 제한돼요.

워크플로 제한 사항

  • Snowsight를 통한 사용자 정의 속성 생성 및 관리는 지원되지 않아요.

더 알아보기