在 Dataplex Universal Catalog 中轉換至商務詞彙表

本文提供操作說明,協助您從支援 Data Catalog 中繼資料的商務詞彙表搶先版,遷移至支援 Dataplex Universal Catalog 中繼資料的商務詞彙表正式版。轉移程序需要您從 Data Catalog 匯出詞彙表、類別、字詞和連結,然後匯入 Dataplex Universal Catalog。

如要轉移至 Dataplex Universal Catalog 的商務詞彙表,請按照下列步驟操作:

  1. 從資料目錄匯出術語表、類別和字詞。
  2. 將詞彙表、類別和字詞匯入 Dataplex Universal Catalog。
  3. 從 Data Catalog 匯出字詞之間的連結。
  4. 將字詞之間的連結匯入 Dataplex Universal Catalog。
  5. 從 Data Catalog 匯出字詞和資料欄之間的連結。
  6. 將字詞和資料欄之間的連結匯入 Dataplex Universal Catalog。

必要的角色

如要從 Data Catalog 匯出術語表,您必須在術語表所在的專案中具備 roles/datacatalog.glossaryOwner 角色。請參閱這個角色需要的權限

如要取得將商務詞彙表匯入 Dataplex Universal Catalog 所需的權限,請要求管理員授予您專案的 Dataplex 管理員 (roles/dataplex.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備將商務詞彙表匯入 Dataplex Universal Catalog 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要將商務詞彙表匯入 Dataplex Universal Catalog,必須具備下列權限:

  • dataplex.glossaries.import 詞彙表資源
  • dataplex.entryGroups.importentry_groups 欄位中提供的 Dataplex Universal Catalog 項目群組,以及存在與詞彙表字詞連結的 Data Catalog 項目之項目群組上
  • dataplex.entryGroups.useSynonymEntryLinkentry_groups 欄位中提供的 Dataplex Universal Catalog 項目群組,以及存在與詞彙表字詞連結的 Data Catalog 項目之項目群組上
  • dataplex.entryGroups.useRelatedEntryLinkentry_groups欄位中提供的 Dataplex Universal Catalog 項目群組,以及存在與詞彙表字詞連結的 Data Catalog 項目之項目群組上
  • dataplex.entryLinks.reference referenced_entry_scopes 欄位中提供的所有專案

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

從資料目錄匯出術語表、類別和字詞

一次只能匯出一個字彙表。

  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:主控台中的資料目錄業務字彙表網址。

    這個指令碼會建立 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_IDCATEGORY_IDTERM_IDPROJECT_NUMBERLOCATION_ID資料目錄術語表中的值相同。

匯入字彙表、類別和字詞

您需要匯入上一個步驟匯出的 Dataplex Universal Catalog 詞彙表、類別和字詞。本節說明如何使用中繼資料工作 API 匯入資料。

  1. 建立 Cloud Storage bucket,然後將檔案上傳至 bucket

  2. 授予 Dataplex Universal Catalog 服務帳戶 Cloud Storage bucket 的讀取權限

  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,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-import 中的 Exported_Files 資料夾。檔案名稱為 entrylinks_relatedsynonymGLOSSARY_ID.json

將字詞之間的連結匯入 Dataplex Universal Catalog

您需要匯入上一個步驟中匯出的字詞連結。本節說明如何使用中繼資料工作 API 匯入資料。

  1. 建立新的 Cloud Storage bucket,然後將上一個步驟匯出的項目連結檔案上傳到該 bucket。

  2. 授予 Dataplex Universal Catalog 服務帳戶 Cloud Storage bucket 的讀取權限

  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 bucket 中上傳的每個檔案,分別執行匯入指令。每個檔案都會對應到一個不重複的項目群組,其中包含該項目群組的字詞和資料欄之間的連結。

# 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
)"

後續步驟