이 문서에서는 Dataplex Universal Catalog 내에서 메타데이터가 생성, 업데이트 또는 삭제될 때 Pub/Sub을 통해 알림을 수신하도록 Dataplex Universal Catalog 메타데이터 변경 피드를 구성하는 방법을 설명합니다.
메타데이터 변경 피드에 대한 자세한 내용은 메타데이터 변경 피드 개요를 참조하세요.
시작하기 전에
Pub/Sub 및 Dataplex Universal Catalog API에 대해 숙지합니다.
-
Dataplex Universal Catalog 및 Pub/Sub API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기. 알림을 수신할 Pub/Sub 주제를 만듭니다. 자세한 내용은 주제 만들기를 참조하세요.
를 설치합니다
gcloud.gcloud의 짧은 별칭이 설정되어 있는지 확인합니다.gcurl의 별칭을 설정합니다. 이렇게 하면 인증 토큰이 포함된 바로가기가 생성되고 API 요청의 JSON 콘텐츠 유형이 설정됩니다.alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'DATAPLEX_API변수를 설정합니다.DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"다음을 바꿉니다.
PROJECT_ID: Dataplex API가 사용 설정된 프로젝트의 프로젝트 IDLOCATION: 작업이 실행되는 위치(예:us-central1,europe-west3,asia-south1)
필수 역할 및 권한
메타데이터 변경 피드를 구성하려면 사용자와 Dataplex Universal Catalog 서비스 계정에 필요한 IAM 역할 및 권한이 있는지 확인합니다.
사용자 역할 및 권한
메타데이터를 내보내고 메타데이터 변경 피드 메시지에 액세스하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 또는 조직에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
메타데이터 내보내기:
Dataplex 항목 그룹 내보내기 작업자 (
roles/dataplex.entryGroupExporter) -
메타데이터 변경 피드 메시지 액세스:
Pub/Sub 구독자 (
roles/pubsub.subscriber)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 메타데이터를 내보내고 메타데이터 변경 피드 메시지에 액세스하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
메타데이터를 내보내고 메타데이터 변경 피드 메시지에 액세스하려면 다음 권한이 필요합니다.
-
메타데이터 내보내기:
-
dataplex.metadataFeeds.create프로젝트의 -
dataplex.entryGroups.export피드의 범위를 정의하는 리소스 (조직, 프로젝트 또는 항목 그룹)의 -
resourcemanager.projects.get프로젝트의 -
resourcemanager.projects.list프로젝트의
-
-
메타데이터 변경 피드 메시지 액세스:
-
구독의
pubsub.subscriptions.consume -
pubsub.topics.attachSubscription주제의
-
구독의
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
Dataplex Universal Catalog 서비스 계정 역할 및 권한
Dataplex Universal Catalog 서비스 계정에 메타데이터 변경 피드 메시지를 게시하는 데 필요한 권한이 있는지 확인하려면 관리자에게 Pub/Sub 주제에 대한 Dataplex Universal Catalog 서비스 계정에 Pub/Sub 게시자 (roles/pubsub.publisher) IAM 역할을 부여해 달라고 요청하세요.
이 사전 정의된 역할에는
pubsub.topics.publish
메타데이터 변경 피드 메시지를 게시하는 데 필요한
권한이 포함되어 있습니다.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 사용하여 Dataplex Universal Catalog 서비스 계정에 이 권한을 부여할 수도 있습니다.
Dataplex Universal Catalog 서비스 계정에 권한 부여
Dataplex Universal Catalog 서비스 에이전트는 Dataplex API를 사용 설정할 때 생성됩니다. 서비스 에이전트는 다음 이메일로 식별할 수 있습니다.
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
여기서 PROJECT_NUMBER는 Dataplex API를 사용 설정한 프로젝트의 프로젝트 번호입니다.
Dataplex Universal Catalog 서비스 계정에는 Pub/Sub 주제에 메시지를 게시할 수 있는 기능이 필요합니다.
이 권한을 부여하려면 Pub/Sub 주제에 대한 서비스 계정에
Pub/Sub 게시자 역할
(roles/pubsub.publisher)을 부여합니다.
gcloud
gcloud pubsub topics add-iam-policy-binding 명령어를 실행합니다.
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
다음을 바꿉니다.
TOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제의 ID입니다.PROJECT_NUMBER: 서비스 계정이 있는 Dataplex Universal Catalog 프로젝트의 프로젝트 번호입니다.
콘솔
콘솔에서 Pub/Sub 주제 페이지로 이동합니다. Google Cloud
메타데이터 피드 알림에 사용하는 주제를 선택하고 필요한 경우 정보 패널 표시 를 클릭합니다.
권한 탭에서 주 구성원 추가 를 클릭합니다.
새 주 구성원 필드에 Dataplex Universal Catalog 서비스 계정:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com을 입력합니다.역할 할당 필드에서 Pub/Sub 게시자 를 선택합니다.
저장 을 클릭합니다.
메타데이터 변경 피드 만들기
알림을 생성하는 변경사항을 제어하려면 특정 리소스를 모니터링하도록 메타데이터 변경 피드를 구성하면 됩니다. 이렇게 하려면 전체 조직, 특정 프로젝트 또는 특정 항목 그룹과 같은 범위를 지정합니다. 범위를 사용하면 모니터링할 리소스를 정의할 수 있지만 필터를 사용하여 Dataplex Universal Catalog에서 알림을 전송하는 시점을 추가로 세부 조정할 수 있습니다.
자세한 내용은 메타데이터 변경 피드를 참조하세요.
REST
메타데이터 변경 피드를 만들려면
projects.locations.metadataFeeds.create
메서드를 사용합니다.
조직 범위
전체 조직을 모니터링하는 메타데이터 변경 피드를 만들려면 다음 명령어를 실행합니다.
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"organizationLevel": true
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
다음을 바꿉니다.
PROJECT_ID_PUBSUB: Pub/Sub 주제가 있는 프로젝트의 프로젝트 ID(예:example-project)TOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제 ID(예:example-topic)FEED_ID: 만들려는 메타데이터 변경 피드 ID(예:example-feed)
프로젝트 범위
특정 프로젝트를 모니터링하는 메타데이터 변경 피드를 만들려면 다음 명령어를 실행합니다.
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
다음을 바꿉니다.
PROJECT_ID_PUBSUB: Pub/Sub 주제가 있는 프로젝트의 프로젝트 ID(예:example-project)TOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제 ID(예:example-topic)FEED_ID: 만들려는 메타데이터 변경 피드 ID(예:example-feed)
항목 그룹 범위
특정 항목 그룹을 모니터링하는 메타데이터 변경 피드를 만들려면 다음 명령어를 실행합니다.
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"entryGroups": [
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_1",
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
다음을 바꿉니다.
PROJECT_ID_PUBSUB: Pub/Sub 주제가 있는 프로젝트의 프로젝트 ID(예:example-project)LOCATION: 피드를 만들려는 위치(예:us-central1)ENTRY_GROUP_ID: 모니터링할 항목 그룹 ID(예:example-entry-group)TOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제 ID(예:example-topic)FEED_ID: 만들려는 메타데이터 변경 피드 ID(예:example-feed)
필터 사용
다음 명령어를 실행하여 필터(항목 유형별 필터링)가 있는 메타데이터 변경 피드를 만듭니다.
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"filter": {
"entryTypes": [
"projects/PROJECT_ID/locations/global/entryTypes/bigquery-table"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
다음을 바꿉니다.
PROJECT_ID_PUBSUB: Pub/Sub 주제가 있는 프로젝트의 프로젝트 ID(예:example-project)TOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제 ID(예:example-topic)FEED_ID: 만들려는 메타데이터 변경 피드 ID(예:example-feed)
응답:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataplex.v1.OperationMetadata",
"createTime": "2023-10-02T15:01:23Z",
"target": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
메타데이터 변경 피드 보기
메타데이터 변경 피드의 세부정보를 볼 수 있습니다.
REST
메타데이터 변경 피드를 보려면
projects.locations.metadataFeeds.get
메서드를 사용합니다.
다음 명령어를 실행합니다.
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
다음을 바꿉니다.
FEED_ID: 보려는 메타데이터 변경 피드 ID(예:example-feed)
메타데이터 변경 피드 나열
프로젝트 및 위치에서 메타데이터 변경 피드를 나열할 수 있습니다.
REST
메타데이터 변경 피드를 나열하려면
projects.locations.metadataFeeds.list
메서드를 사용합니다.
다음 명령어를 실행합니다.
gcurl "https://${DATAPLEX_API}/metadataFeeds"
메타데이터 변경 피드 업데이트
기존 메타데이터 변경 피드의 범위 또는 필터를 업데이트할 수 있습니다.
REST
메타데이터 변경 피드를 업데이트하려면
projects.locations.metadataFeeds.patch
메서드를 사용합니다.
다음 명령어를 실행하여 항목 유형 필터를 삭제하도록 메타데이터 변경 피드를 업데이트합니다.
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
다음을 바꿉니다.
FEED_ID: 업데이트하려는 메타데이터 변경 피드 ID(예:example-feed)
메타데이터 변경 피드 삭제
더 이상 알림을 수신할 필요가 없는 경우 메타데이터 변경 피드를 삭제할 수 있습니다.
메타데이터 변경 피드를 삭제하면 피드에서 새 메타데이터 변경사항을 Pub/Sub 주제에 게시하지 않습니다. 하지만 피드와 연결된 주제 또는 구독은 삭제되지 않습니다. 더 이상 필요하지 않은 경우 수동으로 삭제해야 합니다.
피드 또는 구독을 삭제하기 전에 구독자 애플리케이션에서 Pub/Sub 구독의 모든 미해결 메시지를 처리했는지 확인합니다.
REST
메타데이터 변경 피드를 삭제하려면
projects.locations.metadataFeeds.delete
메서드를 사용합니다.
다음 명령어를 실행합니다.
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
다음을 바꿉니다.
FEED_ID: 삭제하려는 메타데이터 변경 피드 ID(예:example-feed)
알림 메시지 사용
메타데이터 변경 피드를 구성한 후 메타데이터가 변경되면 Dataplex Universal Catalog에서 지정된 Pub/Sub 주제에 메시지를 게시합니다. 이러한 메시지를 사용하려면 주제에 대한 Pub/Sub 구독을 만듭니다.
예를 들어 가져오기 구독을 만들고 Google Cloud CLI를 사용하여 메시지를 볼 수 있습니다.
구독을 만듭니다.
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID다음을 바꿉니다.
SUBSCRIPTION_ID: 만들려는 구독 IDTOPIC_ID: 메타데이터 변경 피드 메시지가 게시되는 Pub/Sub 주제 ID
구독에서 메시지를 가져옵니다.
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10다음을 바꿉니다.
SUBSCRIPTION_ID: 메시지를 가져오려는 구독 ID
Pub/Sub 메시지 처리에 대한 자세한 내용은 가져오기 구독에서 메시지 수신을 참조하세요. 메시지 형식에 대한 자세한 내용은 데이터 페이로드를 참조하세요.
다음 단계
- 메타데이터 변경 피드 개요를 읽어보세요.
- Dataplex Universal Catalog IAM 및 액세스 제어에 대해 알아보세요.
- 메타데이터 변경 피드 문제 해결.