このドキュメントでは、Data Catalog メタデータをサポートするビジネス用語集のプレビュー版から、Dataplex Universal Catalog メタデータをサポートするビジネス用語集の一般提供版に 1 つの手順で移行する手順を説明します。
始める前に
gcloud または Python パッケージをインストールします。ユーザー アカウントと、Python ライブラリが使用するアプリケーションのデフォルト認証情報(ADC)を認証します。次のコマンドを実行し、ブラウザベースのプロンプトに従います。
gcloud init gcloud auth login gcloud auth application-default login次の API を有効にします。
いずれかのプロジェクトに 1 つ以上の Cloud Storage バケットを作成します。バケットは、インポート ファイルの一時的な保存場所として使用されます。バケットの数を増やすほど、インポートは高速になります。移行を実行するサービス アカウントにストレージ管理者の IAM ロールを付与します。
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。1 つ以上のバケットを指定できます。バケット引数には、スペースなしでバケット名をカンマ区切りで指定します(例:
--buckets=bucket-one,bucket-two)。バケットと用語集の 1 対 1 のマッピングは必要ありません。スクリプトはインポート ジョブを並行して実行し、移行を高速化します。
権限の問題により、スクリプトが組織 ID を自動的に検出できない場合は、--orgIds フラグを使用して、スクリプトが用語集の用語にリンクされたデータアセットの検索に使用できる組織を指定します。
移行の範囲の用語集
特定の用語集のみを移行するには、それぞれの URL を指定してスコープを定義します。
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
GLOSSARY_URL1(および GLOSSARY_URL2)を、移行する用語集の URL に置き換えます。 1 つ以上の用語集 URL を指定できます。
移行を実行する際、インポート ジョブの数がエクスポートされた用語集の数より少なくなることがあります。これは、バックグラウンド インポート ジョブを必要としない空の用語集が直接作成された場合に発生します。
インポート ジョブの失敗時に移行を再開する
移行後にファイルが存在する場合は、一部のインポート ジョブが失敗したことを示しています。移行を再開するには、次のコマンドを実行します。
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: これらのネットワーク レベルのエラーは、ファイアウォール、プロキシ、接続の遅延が原因で発生することがあります。スクリプトのタイムアウトは 5 分です。問題が解決しない場合は、ローカル ネットワーク構成の確認が必要になることがあります。
メソッドが見つかりません(エントリを取得できません): このエラーは、ユーザー プロジェクトが API を呼び出すための許可リストに登録されていないため、必要なエントリを取得できないことを示していることがよくあります。