ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bigquery] 라벨이란
    DB/Bigquery 2024. 2. 21. 00:14

    빅쿼리의 라벨을 사용하면 데이터셋, 테이블, 뷰에 라벨을 추가하여 리소스를 체계화 할 수 있습니다. 라벨은 key-value 쌍으로 구성합니다. 라벨을 지정하면 검색에 용이하며 용도, 환경, 부서 등을 기준으로 그룹화할 수 있습니다.

    라벨 요구 사항

    다음은 라벨을 구성하는데 필요한 사항입니다.

    • 각 리소스에 라벨을 최대 64개까지 사용 가능
    • 라벨은 키-값 쌍으로 이뤄짐
    • 키는 필수값이며 1~63자까지 입력 가능
    • 값은 선택 값이며 0~63자까지 입력 가능
    • 키와 값은 한글, 소문자, 숫자, 밑줄, 대시만 사용 가능
    • 키는 단일 리소스에서 고유해야함
      • 여러 리소스에 같은 키를 사용할 수 있음

    값이 없는 라벨

    키의 값이 비어 있는 라벨을 태그라고도 부릅니다. 정책 태그와 형태가 유사해 보이지만 태그와는 기능이 완전히 다릅니다. 값이 없는 새 라벨을 만들거나 기존 라벨 키에서 값을 삭제할 수 있습니다. 값이 없는 라벨은 키-값 형식이 필요하지 않은 경우에 유용할 수 있습니다.

    라벨 사용 예시

    • 팀 또는 비용 센터 라벨: team:marketing, team:analytics, team:de
    • 구성요소 라벨: component:redis, component:ingest, component:dashboard
    • 환경 또는 단계 라벨: environment:production, environment:test
    • 삭제 예정 라벨: deprecated:

    라벨을 생성할 때는 최대한 그룹화하여 사용하는 것이 좋습니다. 너무 세부적으로 나누거나 값이 자주 변경되는 경우, 효과적으로 필터링 할 수 없습니다.

    라벨 추가

    라벨은 빅쿼리 콘솔, sql, 터미널 bq 명령어로 생성할 수 있습니다.

    빅쿼리 콘솔

    테이블 세부정보 수정을 눌러 다음과 같이 추가할 수 있습니다.

    빅쿼리 콘솔 - 테이블 세부정보 수정
    테이블 세부정보

    sql

    create or replace table `프로젝트.데이터셋.테이블명`
    OPTIONS (
        labels = [('키_테스트', '값_테스트')]
    )
    as
    SELECT * FROM `복사하고자 하는 테이블`

    라벨 보기

    라벨은 다음과 같은 옵션에서 확인할 수 있습니다.

    이 중, sql만 확인해본다면 데이터셋의 경우, INFORMATION_SCHEMA.SCHEMATA_OPTIONS 에서 확인할 수 있고 INFORMATION_SCHEMA.TABLE_OPTIONS 에서 테이블의 라벨을 확인할 수 있습니다.

    아래는 INFORMATION_SCHEMA.TABLE_OPTIONS 를 사용해 위에서 등록한 테이블의 라벨을 조회하는 쿼리 예시입니다.

    SELECT
      table_schema, table_name, option_name, option_type, option_value
    FROM
      `프로젝트.데이터셋.INFORMATION_SCHEMA.TABLE_OPTIONS`
    WHERE option_name = 'labels'

    라벨로 필터링하여 조회

    조회 또한 빅쿼리 콘솔 및 아래 옵션으로 필터링하여 조회할 수 있습니다.

    콘솔에서 필터링을 하고자 한다면 빅쿼리 콘솔 검색창에서 key 또는 key:value 으로 검색을 진행하면 됩니다.

    다음 예시는 빅쿼리 콘솔에서 라벨로 필터링 하는 예시입니다.

    라벨과 태그의 차이

    라벨은 리소스를 체계화하고 필터링하는 부분에 초점이 맞춰져 있어서 정책을 세밀하게 제어를 할 수 없습니다. 이러한 기능은 태그(정책 태그)로 가능한데 태그를 사용하면 리소스에 정책을 제어하여 태그 여부에 따라 정책을 조건부로 허용 또는 거부할 수 있습니다.

    요약

    • 라벨을 사용하면 리소스를 체계화할 수 있고 필터링에 용이함
    • 값이 없는 라벨을 태그라고도 부르는데 이는 정책태그가 아니므로 값이 없는 라벨 이라고 부르는 것이 혼동을 방지
    • 현재(2024.02.21) key:value 쌍으로 라벨을 검색하려 할 때, 키나 값에 한글이 들어간다면 검색이 정상 동작하지 않음

    레퍼런스

    https://cloud.google.com/bigquery/docs/labels-intro?hl=ko

    https://cloud.google.com/bigquery/docs/adding-labels?hl=ko

    https://cloud.google.com/bigquery/docs/viewing-labels?hl=ko#console

    https://cloud.google.com/bigquery/docs/filtering-labels?hl=ko

    댓글