이 문서에서는 Workflows에서 관리형 연결 파이프라인을 실행하여 서드 파티 소스에서 Dataplex Universal Catalog로 메타데이터를 가져오는 방법을 설명합니다.
관리형 연결 파이프라인을 설정하려면 데이터 소스의 커넥터를 빌드합니다. 그런 다음 Workflows에서 파이프라인을 실행합니다. 파이프라인은 데이터 소스에서 메타데이터를 추출한 후 메타데이터를 Dataplex Universal Catalog로 가져옵니다. 필요한 경우 파이프라인은 Google Cloud 프로젝트에 Dataplex Universal Catalog 항목 그룹도 만듭니다.
관리형 연결에 대한 자세한 내용은 관리형 연결 개요를 참조하세요.
시작하기 전에
메타데이터를 가져오기 전에 이 섹션의 태스크를 완료합니다.
커넥터 빌드
커넥터는 데이터 소스에서 메타데이터를 추출하고 Dataplex Universal Catalog에서 가져올 수 있는 메타데이터 가져오기 파일을 생성합니다. 커넥터는Google Cloud Apache Spark용 서버리스에서 실행될 수 있는 Artifact Registry 이미지입니다.
서드 파티 소스에서 메타데이터를 추출하는 커스텀 커넥터를 빌드합니다.
자체 커넥터를 빌드하는 데 참조 템플릿으로 사용할 수 있는 커넥터 예시는 메타데이터 가져오기를 위한 커스텀 커넥터 개발을 참조하세요.
Google Cloud 리소스 구성
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex, Secret Manager, Artifact Registry, and Cloud Scheduler APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.일정에 따라 파이프라인을 실행할 계획이 없으면 Cloud Scheduler API를 사용 설정하지 않아도 됩니다.
Secret Manager에서 보안 비밀을 만들어 서드 파티 데이터 소스의 사용자 인증 정보를 저장합니다.
Apache Spark용 서버리스 워크로드가 실행되도록 가상 프라이빗 클라우드(VPC) 네트워크를 구성합니다.
메타데이터 가져오기 파일을 저장할 Cloud Storage 버킷을 만듭니다.
다음 Dataplex Universal Catalog 리소스를 만듭니다.
가져오려는 항목의 커스텀 관점 유형을 만듭니다.
가져오려는 항목의 커스텀 항목 유형을 만듭니다.
필수 역할
서비스 계정은 워크플로의 ID를 나타내며 워크플로에 포함된 권한과 액세스할 수 있는 Google Cloud 리소스를 확인합니다. Workflows 서비스 계정(파이프라인 실행)과 Apache Spark용 서버리스 서비스 계정(커넥터 실행)이 필요합니다.
Compute Engine 기본 서비스 계정(PROJECT_NUMBER-compute@developer.gserviceaccount.com)을 사용하거나 자체 서비스 계정(또는 계정)을 만들어 관리형 연결 파이프라인을 실행할 수 있습니다.
콘솔
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
메타데이터를 가져올 프로젝트를 선택합니다.
액세스 권한 부여를 클릭한 후 서비스 계정의 이메일 주소를 입력합니다.
서비스 계정에 다음 역할을 할당합니다.
- 로그 작성자
- Dataplex 항목 그룹 소유자
- Dataplex 메타데이터 작업 소유자
- Dataplex 카탈로그 편집자
- Dataproc 편집자
- Dataproc 작업자
- 데이터 소스의 사용자 인증 정보를 저장하는 보안 비밀에 대한 Secret Manager 보안 접근자
- Cloud Storage 버킷에 대한 스토리지 객체 사용자
- 커넥터 이미지가 포함된 Artifact Registry 저장소에 대한 Artifact Registry 리더
- 서비스 계정 사용자: 다른 서비스 계정을 사용하는 경우 Workflows를 실행하는 서비스 계정에 Apache Spark용 서버리스 일괄 작업을 실행하는 서비스 계정에 대한 이 역할을 부여합니다.
- Workflows 호출자: 파이프라인을 예약하려는 경우
변경사항을 저장합니다.
gcloud
서비스 계정에 역할을 부여합니다. 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.worker다음을 바꿉니다.
-
PROJECT_ID: 메타데이터를 가져올 대상 Google Cloud프로젝트의 이름 SERVICE_ACCOUNT_ID: 서비스 계정(예:my-service-account@my-project.iam.gserviceaccount.com)
-
리소스 수준에서 서비스 계정에 다음 역할을 부여합니다.
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.reader다음을 바꿉니다.
SECRET_ID: 데이터 소스의 사용자 인증 정보를 저장하는 보안 비밀의 ID.projects/PROJECT_ID/secrets/SECRET_ID형식을 사용합니다.BUCKET_ID: Cloud Storage 버킷 이름REPOSITORY: 커넥터 이미지가 포함된 Artifact Registry 저장소REPOSITORY_LOCATION: 저장소가 호스팅되는 Google Cloud위치
Workflows를 실행하는 서비스 계정에 Apache Spark용 서버리스 일괄 작업을 실행하는 서비스 계정에 대한
roles/iam.serviceAccountUser역할을 부여합니다. Workflows 및 Apache Spark용 서버리스 모두에 같은 서비스 계정을 사용하는 경우에도 이 역할을 부여해야 합니다.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'다른 서비스 계정을 사용하는 경우
--member플래그 값은 Apache Spark용 서버리스 일괄 작업을 실행하는 서비스 계정입니다.파이프라인을 예약하려면 서비스 계정에 다음 역할을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
메타데이터 가져오기
메타데이터를 가져오려면 관리형 연결 파이프라인을 실행하는 워크플로를 만든 후 실행합니다. 원하는 경우 파이프라인 실행 일정을 만들 수도 있습니다.
콘솔
워크플로를 만듭니다. 다음 정보를 입력합니다.
- 서비스 계정: 이 문서의 필수 역할 섹션에서 구성한 서비스 계정입니다.
암호화: Google-managed encryption key를 선택합니다.
워크플로 정의: 다음 정의 파일을 제공합니다.