本文提供操作說明,協助您將支援 Data Catalog 中繼資料的商務詞彙表搶先版,單一步驟遷移至支援 Dataplex Universal Catalog 中繼資料的商務詞彙表正式版。
事前準備
安裝 gcloud 或 Python 套件。驗證使用者帳戶和 Python 程式庫使用的應用程式預設憑證 (ADC)。執行下列指令,並按照瀏覽器中的提示操作:
gcloud init gcloud auth login gcloud auth application-default login啟用下列 API:
在任一專案中建立一或多個 Cloud Storage 值區。這些 bucket 會做為匯入檔案的暫存位置。提供的 buckets 越多,匯入速度就越快。將 Storage 管理員身分與存取權管理角色授予執行遷移作業的服務帳戶:
service-MIGRATION_PROJECT_ID@gcp-sa-dataplex.iam.gserviceaccount.com
將
MIGRATION_PROJECT_ID替換為要從中遷移字彙表的專案。設定存放區:
複製存放區:
git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git cd dataplex-labs/dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import安裝必要套件:
pip3 install -r requirements.txt cd migration
必要的角色
執行遷移指令碼
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2
更改下列內容:
USER_PROJECT_ID:要遷移的專案 ID。MIGRATION_PROJECT_ID是指包含要匯出 Data Catalog 字彙表的來源專案。USER_PROJECT_ID是用於帳單和配額歸因的專案,適用於指令碼產生的 API 呼叫。BUCKET1和BUCKET2:要用於匯入作業的 Cloud Storage 值區 ID。您可以提供一或多個值區。如要提供 bucket 引數,請以逗號分隔列出 bucket 名稱,且不得包含空格 (例如
--buckets=bucket-one,bucket-two)。bucket 和字彙表之間不一定要一對一對應,因為指令碼會平行執行匯入工作,加快遷移速度。
如果權限問題導致指令碼無法自動探索機構 ID,請使用 --orgIds 旗標指定指令碼可用來搜尋與字彙表詞彙連結資料資產的機構。
遷移範圍字彙表
如要只遷移特定字彙表,請提供相應網址來定義範圍。
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
將 GLOSSARY_URL1 (和 GLOSSARY_URL2) 替換為要遷移的字彙表網址。您可以提供一或多個詞彙表網址。
遷移作業執行時,匯入工作數量可能會少於匯出字彙表數量。如果直接建立不需要背景匯入工作的空白字彙表,就會發生這種情況。
繼續執行匯入工作失敗的遷移作業
如果遷移後仍有檔案,表示部分匯入工作失敗。如要繼續遷移作業,請執行下列指令:
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --resume-import
如果發生失敗情形,請再次執行 resume 指令。這個指令碼只會處理未成功匯入及刪除的檔案。
指令碼會強制執行項目連結和詞彙間連結的依附元件檢查。 只有在成功匯入父項字彙表的情況下,系統才會匯入項目連結檔案。同樣地,只有在所有參照字詞都已成功匯入的情況下,字詞之間的連結才會匯入。
疑難排解
本節提供常見錯誤的解決方法。
權限遭拒 / 403 錯誤:請確認使用者或服務帳戶在目的地專案中具備 Dataplex Universal Catalog 編輯者角色,且在來源專案中具備 Data Catalog 檢視者角色。
ModuleNotFoundError:請確認您已啟用 Python 虛擬環境,並使用
pip3 install -r requirements.txt安裝必要套件。TimeoutError / ssl.SSLError:這些網路層級的錯誤可能是防火牆、Proxy 或連線速度過慢所致。指令碼的逾時時間為 5 分鐘,如果問題持續發生,可能需要檢查本機網路設定。
找不到方法 (無法擷取項目):這項錯誤通常表示使用者專案未列入允許呼叫 API 的清單,因此無法擷取必要項目。