이 페이지에서는 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란 무엇인가요?를 참조하세요.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
프로젝트에 Data Catalog API를 사용 설정합니다.
-
권한 확인.
태그를 검색하고 Spanner 애셋에 연결하려면 특정 Identity and Access Management(IAM) 역할 및 권한이 필요합니다. 자세한 내용은 Data Catalog 필수 IAM 역할 및 권한을 참조하세요.
태그 템플릿 만들기
태그 템플릿은 새 태그를 빠르게 만드는 데 사용할 수 있는 재사용 가능한 구조입니다. 템플릿을 사용하면 중복 작업 및 불완전한 태그를 피할 수 있습니다. 필요한 만큼 태그 템플릿을 만듭니다.
자세한 내용은 태그 및 태그 템플릿을 참조하세요.
Spanner 애셋에 태그 연결
Spanner 애셋에 태그를 연결하면 다음 작업을 할 수 있습니다.
- 애셋에 비즈니스 메타데이터 추가
- 비즈니스 메타데이터 및 기타 커스텀 메타데이터별로 애셋 검색
자세한 내용은 태그 및 태그 템플릿을 참조하세요.
Spanner 애셋 검색
Google Cloud 콘솔의 Dataplex 검색 페이지를 사용하여 Spanner 애셋을 검색합니다.
Dataplex 검색 페이지로 이동합니다.
필터 패널의 시스템에서 Spanner를 선택합니다.
Dataplex에는 알려진 모든 Spanner 애셋이 표시됩니다.
선택사항: 다음 중 하나를 수행하여 검색 범위를 좁힙니다.
검색 페이지에서 속성별 검색을 사용합니다. 데이터 유형, 프로젝트, 태그에서 체크박스를 선택합니다.
검색창에
system=cloud_spanner
뒤에 검색 파라미터를 추가합니다. 파라미터는 공백으로 구분합니다.
예를 들어 데이터베이스만 보려면 검색창에 다음 텍스트를 입력한 후
Enter
를 누릅니다.system=cloud_spanner type=database
또한 복잡한 표현식에 괄호 및 논리 연산자
and
와or
를 사용할 수도 있습니다. 검색 필드에서 사용할 수 있는 표현식에 대한 자세한 내용은 Data Catalog 검색 구문을 참조하세요.결과 테이블에서 애셋 이름을 클릭하여 해당 애셋의 메타데이터를 봅니다.
선택사항: 다음 중 하나를 수행합니다.
- 개요 추가를 클릭하여 애셋에 대한 서식 있는 텍스트 설명을 추가합니다.
- 태그 연결을 클릭하여 애셋에 태그를 추가합니다.
- 테이블의 경우 SCHEMA 탭을 클릭하여 테이블 열을 확인합니다.
- 인스턴스(서비스)의 경우 구성원 데이터베이스를 보려면 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다. (항목 목록 탭이 표시되지 않으면 인스턴스에 데이터베이스가 없는 것입니다.)
워크플로 예시 - 인스턴스에서 열로 드릴다운
이 워크플로 예시에서는 먼저 Spanner 인스턴스를 검색하고 구성원 데이터베이스를 확인한 다음 해당 데이터베이스의 테이블을 보고 테이블의 열을 봅니다.
Dataplex 검색 페이지로 이동합니다.
필터 패널의 시스템에서 Spanner를 선택합니다.
Data Catalog의 모든 Spanner 인스턴스를 보려면 데이터 유형 아래의 서비스 체크박스를 선택하거나 검색창에 다음 텍스트를 입력하고
Enter
를 누릅니다.system=cloud_spanner type=service
인스턴스 이름을 선택합니다.
Spanner 서비스 세부정보 페이지에서 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다.
Dataplex가 인스턴스의 데이터베이스를 표시합니다.
Spanner 데이터베이스 세부정보 페이지에서 항목 목록 탭을 클릭한 다음 검색에서 하위 항목 보기를 클릭합니다.
Dataplex는 데이터베이스에 이 테이블을 표시합니다.
테이블 이름을 선택한 후 Spanner 테이블 세부정보 페이지에서 스키마를 클릭하여 테이블 열을 봅니다.
선택사항: 열에 태그를 추가하려면 열 태그 아래의 더하기 기호를 클릭합니다.
태그 내보내기 및 가져오기
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
자세한 내용은 사전 정의된 역할을 참조하세요.