Data Catalog를 사용하여 리소스 관리

이 페이지에서는 Data Catalog를 사용하여 Spanner 리소스를 검색하고 관리하는 방법을 설명합니다.

Data Catalog는 Dataplex 내의 확장 가능한 완전 관리형 메타데이터 관리 서비스입니다. 이 서비스는 Spanner 인스턴스, 데이터베이스, 테이블, 열, 뷰에 대한 다음 메타데이터를 자동으로 분류합니다.

  • 이름 및 정규화된 이름
  • 위치(리전)
  • 만든 날짜 및 마지막으로 수정한 날짜
  • 스키마(테이블 및 뷰용)
  • 설명

Spanner 메타데이터는 정기적으로(일반적으로 몇 시간 주기) Data Catalog에 자동으로 동기화됩니다. Data Catalog를 사용하여 Spanner 메타데이터를 탐색하고 파악할 수 있습니다. Data Catalog를 사용하여 다음 활동을 지원합니다.

  • 사용 사례의 종속 항목과 적합성 등의 분석
  • 변경 관리
  • 데이터 이동(파이프라인)
  • 스키마 개선

Data Catalog를 사용하면 Spanner 메타데이터 항목에 태그를 연결하여 메타데이터를 선별할 수 있습니다. 각 태그는 여러 메타데이터 필드를 가질 수 있으며 사전 정의된 또는 커스텀 태그 템플릿을 기반으로 할 수 있습니다.

예를 들어 개인 식별 정보(PII)인 주민등록번호가 포함된 열에 다음 태그를 연결할 수 있습니다.

pii:true
pii_type:SSN

태그를 사용하는 인스턴스를 이동해도 태그가 대상 인스턴스로 자동 이동되지 않습니다. 대신 인스턴스를 이동하기 전에 소스 인스턴스에서 태그를 내보내고 대상 인스턴스로 태그를 가져와야 합니다. 자세한 내용은 태그 내보내기 및 가져오기를 참조하세요.

Data Catalog에 대한 자세한 내용은 Data Catalog란 무엇인가요?를 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. 프로젝트에 Data Catalog API를 사용 설정합니다.

    Data Catalog API 사용 설정

  7. 권한 확인.

    태그를 검색하고 Spanner 애셋에 연결하려면 특정 Identity and Access Management(IAM) 역할 및 권한이 필요합니다. 자세한 내용은 Data Catalog 필수 IAM 역할 및 권한을 참조하세요.

태그 템플릿 만들기

태그 템플릿은 새 태그를 빠르게 만드는 데 사용할 수 있는 재사용 가능한 구조입니다. 템플릿을 사용하면 중복 작업 및 불완전한 태그를 피할 수 있습니다. 필요한 만큼 태그 템플릿을 만듭니다.

자세한 내용은 태그 및 태그 템플릿을 참조하세요.

Spanner 애셋에 태그 연결

Spanner 애셋에 태그를 연결하면 다음을 수행할 수 있습니다.

  • 애셋에 비즈니스 메타데이터를 추가합니다.
  • 비즈니스 메타데이터 및 기타 커스텀 메타데이터로 애셋을 검색합니다.

자세한 내용은 태그 및 태그 템플릿을 참조하세요.

Spanner 애셋 검색

Google Cloud 콘솔의 Dataplex 검색 페이지를 사용하여 Spanner 애셋을 검색합니다.

  1. Dataplex 검색 페이지로 이동합니다.

    Dataplex로 이동

  2. 필터 패널시스템에서 Spanner를 선택합니다.

    Dataplex는 알려진 모든 Spanner 애셋을 표시합니다.

  3. 선택사항: 다음 중 하나를 수행하여 검색 범위를 좁힙니다.

    • 검색 페이지에서 상품 속성별 검색을 사용합니다. 데이터 유형, 프로젝트, 태그에서 체크박스를 선택합니다.

    • 검색 필드에서 system=cloud_spanner 다음에 검색 매개변수를 추가합니다. 매개변수는 공백으로 구분합니다.

    예를 들어 데이터베이스만 보려면 검색창에 다음 텍스트를 입력한 후 Enter를 누릅니다.

     system=cloud_spanner type=database
    

    또한 복잡한 표현식에 괄호 및 논리 연산자 andor를 사용할 수도 있습니다. 검색 필드에서 사용할 수 있는 표현식에 대한 자세한 내용은 Data Catalog 검색 구문을 참조하세요.

  4. 결과 테이블에서 애셋 이름을 클릭하여 해당 애셋의 메타데이터를 확인합니다.

  5. 선택사항: 다음 중 하나를 수행합니다.

    • 개요 추가를 클릭하여 애셋에 대한 서식 있는 텍스트 설명을 추가합니다.
    • 태그 연결을 클릭하여 애셋에 태그를 추가합니다.
    • 테이블의 경우 스키마 탭을 클릭하여 테이블 열을 확인합니다.
    • 인스턴스(서비스)의 경우 구성원 데이터베이스를 보려면 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다. (항목 목록 탭이 표시되지 않으면 인스턴스에 데이터베이스가 없는 것입니다.)

워크플로 예시 - 인스턴스에서 열까지 상세히 살펴보기

이 워크플로 예시에서는 먼저 Spanner 인스턴스를 검색하고 구성원 데이터베이스를 확인한 다음 해당 데이터베이스의 테이블을 보고 테이블의 열을 봅니다.

  1. Dataplex 검색 페이지로 이동합니다.

    Dataplex로 이동

  2. 필터 패널시스템에서 Spanner를 선택합니다.

  3. Data Catalog의 모든 Spanner 인스턴스를 보려면 데이터 유형 아래의 서비스 체크박스를 선택하거나 검색창에 다음 텍스트를 입력하고 Enter를 누릅니다.

    system=cloud_spanner type=service
    
  4. 인스턴스 이름을 선택합니다.

  5. Spanner 서비스 세부정보 페이지에서 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다.

    Dataplex가 인스턴스의 데이터베이스를 표시합니다.

  6. Spanner 데이터베이스 세부정보 페이지에서 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다.

    Dataplex는 데이터베이스에 이 테이블을 표시합니다.

  7. 테이블 이름을 선택한 후 Spanner 테이블 세부정보 페이지에서 스키마를 클릭하여 테이블 열을 확인합니다.

  8. 선택사항: 열에 태그를 추가하려면 열 태그 아래의 더하기 기호를 클릭합니다.

태그 내보내기 및 가져오기

Spanner 인스턴스를 이동하면 이동 프로세스가 Data Catalog에서 만든 인스턴스 태그를 삭제합니다. 태그를 보존하려면 다음을 수행해야 합니다.

  • 인스턴스와 연결된 태그를 쿼리합니다.
  • 태그의 세부정보를 복사합니다.
  • 이동한 인스턴스에 태그를 만듭니다.

Spanner는 6시간마다 데이터를 동기화합니다. 인스턴스, 데이터베이스, 테이블, 뷰 또는 열과 같은 Spanner 애셋에서 메타데이터 변경사항이 Data Catalog에 적용되는 데 약 6시간 정도 걸릴 수 있습니다.

소스 인스턴스 구성에서 태그 내보내기

인스턴스(항목 또는 항목 그룹)의 태그를 나열하려면 다음과 같이 Google Cloud CLI gcloud data-catalog tags list 명령어를 사용합니다.

curl \
'https://datacatalog.googleapis.com/v1/projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/tags?key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

다음을 바꿉니다.

  • PROJECT: 태그가 포함된 프로젝트입니다.
  • LOCATION: 태그 위치입니다.
  • API_KEY: API에 액세스할 수 있는 고유 문자열입니다.
  • ACCESS_TOKEN: 애플리케이션이 서비스에 인증하는 데 사용하는 액세스 토큰입니다.

대상 구성으로 태그 가져오기

이 절차를 완료하기 전에 다음을 수행합니다.

태그를 복사하려면 다음과 같이 gcloud data-catalog tags create 명령어를 사용하여 이동한 인스턴스에 태그를 만듭니다.

curl --request POST \
'https://datacatalog.googleapis.com/v1/entries:lookup?fullyQualifiedName=FQN&location=LOCATION&project=PROJECT&key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"column":"myColumnName","name":"myTagName","template":"myTemplateName","fields":{"myDoubleField":{"doubleValue":0}}}' \
  --compressed

다음을 바꿉니다.

  • FQN: 리소스의 정규화된 이름(FQN)입니다. FQN은 다음 두 가지 형식으로 이루어집니다.

    리전화되지 않은 리소스의 경우: {SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    리전화된 리소스의 경우: {SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    DPMS 테이블의 예시:

    dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}

  • LOCATION: 조회가 수행되는 위치입니다.

  • PROJECT: 조회가 수행되는 프로젝트입니다.

  • API_KEY: API에 액세스할 수 있는 고유 문자열입니다.

  • ACCESS_TOKEN: 애플리케이션이 서비스에 인증하는 데 사용하는 액세스 토큰입니다.

Data Catalog 필수 IAM 역할 및 권한

다음 표는 다양한 Data Catalog 작업에 필요한 IAM 역할 및 권한을 보여줍니다.

Data Catalog 작업 Spanner 리소스 필요한 역할 또는 권한
태그 템플릿 만들기 해당 사항 없음 roles/datacatalog.tagTemplateCreator
Spanner 리소스 검색 인스턴스 spanner.instances.get
데이터베이스 spanner.databases.get
테이블 spanner.databases.get
spanner.databases.get
공개 태그 보기 인스턴스 spanner.instances.get
데이터베이스 spanner.databases.get
테이블 spanner.databases.get
spanner.databases.get
비공개 태그 보기 인스턴스 datacatalog.tagTemplates.getTag + spanner.instances.get
데이터베이스 datacatalog.tagTemplates.getTag + spanner.databases.get
테이블 datacatalog.tagTemplates.getTag + spanner.databases.get
datacatalog.tagTemplates.getTag + spanner.databases.get
태그 템플릿을 사용하여 Spanner 리소스에 태그 연결 인스턴스 datacatalog.tagTemplates.use + spanner.instances.updateTag
데이터베이스 datacatalog.tagTemplates.use + spanner.databases.updateTag
테이블 datacatalog.tagTemplates.use + spanner.databases.updateTag
datacatalog.tagTemplates.use + spanner.databases.updateTag

spanner.instances.UpdateTag 권한은 다음 역할에 포함되어 있습니다.

  • roles/spanner.admin

spanner.databases.UpdateTag 권한은 다음 역할에 포함되어 있습니다.

  • roles/spanner.admin
  • roles/spanner.databaseAdmin
  • roles/spanner.databaseUser

자세한 내용은 사전 정의된 역할을 참조하세요.

다음 단계