Dataplex 범용 카탈로그에서 비즈니스 용어집으로 전환

이 문서에서는 Data Catalog 메타데이터를 지원하는 비즈니스 용어집 프리뷰 버전에서 Dataplex 범용 카탈로그 메타데이터를 지원하는 비즈니스 용어집 정식 버전으로 이전하는 방법을 설명합니다. 전환 프로세스에서는 Data Catalog에서 용어집, 카테고리, 용어, 링크를 내보낸 다음 Dataplex 범용 카탈로그로 가져와야 합니다.

Dataplex 범용 카탈로그의 비즈니스 용어집으로 전환하려면 다음 단계를 따르세요.

  1. Data Catalog에서 용어집, 카테고리, 용어를 내보냅니다.
  2. 용어집, 카테고리, 용어를 Dataplex 범용 카탈로그로 가져옵니다.
  3. Data Catalog에서 용어 간 링크를 내보냅니다.
  4. 용어 간 링크를 Dataplex 범용 카탈로그로 가져옵니다.
  5. Data Catalog에서 용어와 열 간의 링크를 내보냅니다.
  6. 용어와 열 간의 링크를 Dataplex 범용 카탈로그로 가져옵니다.

필요한 역할

Data Catalog에서 용어를 내보내려면 용어가 있는 프로젝트에 roles/datacatalog.glossaryOwner 역할이 있어야 합니다. 이 역할에 필요한 권한을 참고하세요.

비즈니스 용어를 Dataplex 범용 카탈로그로 가져오는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Dataplex 관리자 (roles/dataplex.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 비즈니스 용어를 Dataplex 유니버설 카탈로그로 가져오는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

비즈니스 용어집을 Dataplex 범용 카탈로그로 가져오려면 다음 권한이 필요합니다.

  • 용어집 리소스에 대한 dataplex.glossaries.import 권한
  • dataplex.entryGroups.import entry_groups 필드에 제공된 Dataplex 범용 카탈로그 항목 그룹과 용어집 용어에 연결된 Data Catalog 항목이 있는 항목 그룹
  • dataplex.entryGroups.useSynonymEntryLink entry_groups 필드에 제공된 Dataplex 범용 카탈로그 항목 그룹과 용어집 용어에 연결된 Data Catalog 항목이 있는 항목 그룹
  • dataplex.entryGroups.useRelatedEntryLink entry_groups 필드에 제공된 Dataplex 범용 카탈로그 항목 그룹과 용어집 용어에 연결된 Data Catalog 항목이 있는 항목 그룹
  • referenced_entry_scopes 필드에 제공된 모든 프로젝트에 대한 dataplex.entryLinks.reference 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

Data Catalog에서 용어집, 카테고리, 용어 내보내기

한 번에 하나의 용어집을 내보낼 수 있습니다.

  1. dataplex-labs 저장소를 클론한 후 디렉터리를 business-glossary-import 하위 디렉터리로 변경합니다.

    git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
    cd dataplex-labs
    cd dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import
    
  2. 액세스 토큰을 가져옵니다.

    export GCLOUD_ACCESS_TOKEN=$(gcloud auth print-access-token)
    
  3. 내보내기 스크립트를 실행합니다.

    python3 bg_import/business_glossary_export_v2.py \
    --user-project="PROJECT_ID" \
    --url="DATA_CATALOG_GLOSSARY_URL" \
    --export-mode=glossary_only

    다음을 바꿉니다.

    • PROJECT_ID: 용어집이 포함된 프로젝트의 ID입니다.
    • DATA_CATALOG_GLOSSARY_URL: 콘솔에 있는 Data Catalog 비즈니스 용어집의 URL입니다.

    스크립트는 메타데이터 가져오기 작업에 사용되는 메타데이터 가져오기 파일과 동일한 형식을 따르는 JSON 파일을 만듭니다. 용어집, 카테고리, 용어의 이름은 다음 형식을 사용합니다.

    • 용어: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID
    • 기간: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/terms/TERM_ID
    • 카테고리: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/categories/CATEGORY_ID

    여기서 GLOSSARY_ID, CATEGORY_ID, TERM_ID, PROJECT_NUMBER, LOCATION_IDData Catalog 용어집의 값과 동일합니다.

용어집, 카테고리, 용어 가져오기

이전 단계에서 내보낸 Dataplex 범용 카탈로그 용어집, 카테고리, 용어를 가져와야 합니다. 이 섹션에서는 메타데이터 작업 API를 사용하여 가져오는 방법을 설명합니다.

  1. Cloud Storage 버킷을 만들고 파일을 버킷에 업로드합니다.

  2. Dataplex 범용 카탈로그 서비스 계정에 Cloud Storage 버킷에 대한 읽기 액세스 권한을 부여합니다.

  3. 메타데이터 가져오기 작업을 실행하여 용어를 가져옵니다.

    # Set GCURL alias
    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    
    # Import CURL Command
    gcurl https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/metadataJobs?metadata_job_id=JOB_ID -d "$(cat<<EOF
    {
    "type": "IMPORT",
    "import_spec": {
        "log_level": "DEBUG",
        "source_storage_uri": "gs://STORAGE_BUCKET/",
        "entry_sync_mode": "FULL",
        "aspect_sync_mode": "INCREMENTAL",
        "scope": {
            "glossaries": ["projects/PROJECT_NUMBER/locations/global/glossaries/GLOSSARY_ID"]
        }
    }
    }
    EOF
    )"

    다음을 바꿉니다.

    • JOB_ID: (선택사항) 메타데이터 가져오기 작업 ID입니다. 이 ID를 사용하여 작업의 상태를 추적할 수 있습니다. ID를 제공하지 않으면 gcurl 명령어가 고유 ID를 생성합니다.
    • STORAGE_BUCKET: 내보낸 용어집 파일이 포함된 Cloud Storage 버킷 또는 폴더의 URI입니다.
    • PROJECT_NUMBER: 용어가 포함된 프로젝트 번호입니다.
  4. 선택사항: 메타데이터 가져오기 작업의 상태를 추적하려면 metadataJobs.get 메서드를 사용합니다.

    gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataJobs/JOB_ID

    메타데이터 가져오기 작업에 오류가 발생하면 로그에 표시됩니다.

Data Catalog에서 용어 간 링크 내보내기

  1. dataplex-labs 저장소를 클론하고 (아직 클론하지 않은 경우) 디렉터리를 business-glossary-import 하위 디렉터리로 변경합니다.

    git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
    cd dataplex-labs
    cd dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import
    
  2. 액세스 토큰을 가져옵니다.

    export GCLOUD_ACCESS_TOKEN=$(gcloud auth print-access-token)
    
  3. 내보내기 코드를 실행합니다.

    python3 bg_import/business_glossary_export_v2.py \
    --user-project=PROJECT_ID \
    --url="DATA_CATALOG_GLOSSARY_URL" \
    --export-mode=entry_links_only \
    --entrylinktype="related,synonym"

    이 스크립트는 용어 간의 동의어와 관련 링크가 포함된 JSON 파일을 만듭니다. 내보낸 파일은 dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-importExported_Files 폴더에 있습니다. 파일 이름은 entrylinks_relatedsynonymGLOSSARY_ID.json입니다.

용어 간 링크를 Dataplex 범용 카탈로그로 가져오기

이전 단계에서 내보낸 용어 간 링크를 가져와야 합니다. 이 섹션에서는 메타데이터 작업 API를 사용하여 가져오는 방법을 설명합니다.

  1. 새 Cloud Storage 버킷을 만든 다음 이전 단계에서 내보낸 항목 링크 파일을 버킷에 업로드합니다.

  2. Dataplex 범용 카탈로그 서비스 계정에 Cloud Storage 버킷에 대한 읽기 액세스 권한을 부여합니다.

  3. 메타데이터 가져오기 작업을 실행하여 항목 링크를 가져옵니다.

    # Import CURL Command
    gcurl https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/metadataJobs?metadata_job_id=JOB_ID -d "$(cat<<EOF
    {
    "type": "IMPORT",
    "import_spec": {
        "log_level": "DEBUG",
        "source_storage_uri": "gs://STORAGE_BUCKET/",
        "entry_sync_mode": "FULL",
        "aspect_sync_mode": "INCREMENTAL",
        "scope": {
            "entry_groups": ["projects/GLOSSARY_PROJECT_ID/locations/global/entryGroups/@dataplex"],
            "entry_link_types": ["projects/dataplex-types/locations/global/entryLinkTypes/synonym", "projects/dataplex-types/locations/global/entryLinkTypes/related"],
            "referenced_entry_scopes": [PROJECT_IDS]
        }
    }
    }
    EOF
    )"

    다음을 바꿉니다.

    • GLOSSARY_PROJECT_ID: 용어집이 포함된 프로젝트의 ID입니다.
    • PROJECT_IDS: 용어가 서로 다른 프로젝트의 용어집에서 연결된 경우 "projects/PROJECT_ID1", "projects/PROJECT_ID2" 형식으로 프로젝트 ID를 제공합니다.

    다음에 유의하세요.

    • entry_groups 객체에는 항목 링크가 생성된 항목 그룹이 포함됩니다. 글로소리와 동일한 프로젝트 및 위치에 있는 @dataplex 시스템 항목 그룹입니다.
    • entry_link_types 객체를 사용하면 동의어, 관련 용어 또는 둘 다 가져올 수 있습니다.

      • 동의어: projects/dataplex-types/locations/global/entryLinkTypes/synonym
      • 관련 용어: projects/dataplex-types/locations/global/entryLinkTypes/related
    • referenced_entry_scopes 객체에는 서로 다른 용어집의 용어를 연결하는 항목 링크의 프로젝트 ID가 포함됩니다.

용어와 열 간의 링크 내보내기

용어집과 용어 간 링크를 내보내고 가져온 후 용어와 열 간 링크를 가져옵니다. 다음 명령어에서 링크 유형은 정의로 설정되어 용어와 열 간의 링크를 내보냅니다.

## Clone the repository and navigate to the directory
git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
cd dataplex-labs
cd dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import

export GCLOUD_ACCESS_TOKEN=$(gcloud auth print-access-token);

## Run the export code
python3 bg_import/business_glossary_export_v2.py \
 --user-project="PROJECT_ID" \
 --url="DATA_CATALOG_GLOSSARY_URL" \
 --export-mode=entry_links_only \
 --entrylinktype="definition"

용어와 열 간의 링크 가져오기

이전 단계에서 내보낸 용어와 열 간의 링크를 가져와야 합니다. 이 섹션에서는 메타데이터 작업 API를 사용하여 가져오는 방법을 설명합니다.

  1. 이전 단계에서 내보낸 각 파일을 2단계에 설명된 대로 Cloud Storage 버킷에 업로드합니다.

  2. Cloud Storage 버킷에 업로드된 각 파일에 대해 별도의 가져오기 명령어를 실행합니다. 각 파일은 용어와 해당 항목 그룹의 열 간 링크가 포함된 고유한 항목 그룹에 해당합니다.

# Set GCURL alias
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

# Import CURL Command
gcurl https://dataplex.googleapis.com/v1/projects/ENTRY_GROUP_PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID
{
   "type":"IMPORT",
   "import_spec":{
      "log_level":"DEBUG",
      "source_storage_uri":"gs://STORAGE_BUCKET/",
      "entry_sync_mode":"FULL",
      "aspect_sync_mode":"INCREMENTAL",
      "scope":{
         "entry_groups":[
            "projects/ENTRY_GROUP_PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID/entryGroups/ENTRY_GROUP_ID"
         ],
         "entry_link_types":[
            "projects/dataplex-types/locations/global/entryLinkTypes/definition",
         ],
         "referenced_entry_scopes":[
            PROJECT_IDS
         ]
      }
   }
}
EOF
)"

다음 단계