このドキュメントでは、Data Catalog メタデータをサポートするビジネス用語集のプレビュー版から、Knowledge Catalog(以前の Dataplex Universal Catalog)のビジネス用語集の一般提供版に 1 つの手順で移行する手順を説明します。一般提供版に移行すると、機能が強化され、Knowledge Catalog メタデータとの統合が深まるため、安定性の向上、新機能の追加、完全な本番環境サポートが提供されます。このプロセスでは、Knowledge Catalog メタデータをサポートするように用語集が自動的に更新されます。
始める前に
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
必要なロール
Data Catalog から Knowledge Catalog に用語集を移行するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- プロジェクトに対する Data Catalog 用語集オーナー (
roles/datacatalog.glossaryOwner) - プロジェクトに対する Dataplex 管理者 (
roles/dataplex.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、Data Catalog から Knowledge Catalog に用語集を移行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Data Catalog から Knowledge Catalog に用語集を移行するには、次の権限が必要です。
-
用語集の移行元となるプロジェクトに対する
datacatalog.glossaries.get -
用語集の移行元となるプロジェクトに対する
datacatalog.glossaries.list -
Knowledge Catalog で用語集が作成されるプロジェクトに対する
dataplex.glossaries.create -
Knowledge Catalog で用語集が更新されるプロジェクトに対する
dataplex.glossaries.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Knowledge Catalog Identity and Access Management(IAM)の詳細については、IAM でアクセスを管理するをご覧ください。
移行スクリプトを実行する
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2
次のように置き換えます。
PROJECT_ID: 移行するプロジェクトのプロジェクト ID。このプロジェクトは、スクリプトによって生成された API 呼び出しの課金と割り当てにも使用されます。BUCKET1とBUCKET2: インポートに使用する Cloud Storage バケット ID。1 つ以上のバケットを指定できます。バケット引数には、スペースなしでバケット名をカンマ区切りで指定します(例:
--buckets=bucket-one,bucket-two)。バケットと用語集の 1 対 1 のマッピングは必要ありません。スクリプトはインポート ジョブを並行して実行し、移行を高速化します。
権限の問題により、スクリプトが組織 ID を自動的に検出できない場合は、--orgIds フラグを使用して、スクリプトが用語集の用語にリンクされたデータアセットの検索に使用できる組織を指定します。
移行の範囲の用語集
特定の用語集のみを移行するには、それぞれの URL を指定してスコープを定義します。
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
GLOSSARY_URL1(および GLOSSARY_URL2)を、Google Cloud コンソールに表示される移行する用語集の完全な URL に置き換えます。このフラグを使用して用語集を指定すると、ソース プロジェクトは URL から決定され、--project フラグは課金にのみ使用されます。
例: https://console.cloud.google.com/datacatalog/glossaries/projects/my-project/locations/us-central1/entryGroups/my-entry-group/glossaries/my-glossary
移行を実行する際、インポート ジョブの数がエクスポートされた用語集の数より少なくなることがあります。これは、バックグラウンド インポート ジョブを必要としない空の用語集が直接作成された場合に発生します。
インポート ジョブの失敗時に移行を再開する
移行後にファイルが存在する場合は、一部のインポート ジョブが失敗したことを示しています。移行を再開するには、次のコマンドを実行します。
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2 --resume-import
失敗した場合は、resume コマンドを再度実行します。スクリプトは、正常にインポートされなかったファイルと削除されたファイルのみを処理します。
このスクリプトは、エントリリンクと用語集間のリンクの依存関係チェックを行います。エントリリンク ファイルは、親用語集が正常にインポートされた場合にのみインポートされます。同様に、用語間のリンクは、参照されているすべての用語が正常にインポートされた場合にのみインポートされます。
トラブルシューティング
このセクションでは、一般的なエラーの解決策について説明します。
権限拒否 / 403 エラー: ユーザーまたはサービス アカウントに、宛先プロジェクトに対する Dataplex 編集者のロールと、ソース プロジェクトに対する Dataplex 閲覧者のロールがあることを確認します。
ModuleNotFoundError: Python 仮想環境が有効になっており、
pip3 install -r requirements.txtを使用して必要なパッケージがインストールされていることを確認します。TimeoutError / ssl.SSLError: これらのネットワーク レベルのエラーは、ファイアウォール、プロキシ、接続の遅延が原因で発生することがあります。スクリプトのタイムアウトは 5 分です。問題が解決しない場合は、ローカル ネットワーク構成の確認が必要になることがあります。
メソッドが見つかりません(エントリを取得できません): このエラーは、ユーザー プロジェクトに API を呼び出す権限がないため、必要なエントリを取得できないことを示していることがよくあります。