エントリリンク インポート ユーティリティを使用すると、Google スプレッドシートから Knowledge Catalog(旧称 Dataplex Universal Catalog)にエントリリンクを一括インポートできます。スプレッドシートを使用すると、用語集の用語とデータアセットの関係を大規模に定義して更新できます。
始める前に
エントリリンクを Knowledge Catalog にインポートする前に、次の前提条件を満たしてください。
サービス アカウントを設定する
Google スプレッドシートを使用してインポート ユーティリティを実行するには、Google Sheets API にアクセスしてユーザー認証情報を借用するために必要な権限を持つサービス アカウントを設定する必要があります。
サービス アカウントを特定または作成します。
インポート ユーティリティを実行するプロジェクトで、既存のサービス アカウントを選択するか、新しいサービス アカウントを作成します。詳細については、サービス アカウントの作成をご覧ください。サービス アカウントのメールアドレス(例:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)をメモします。サービス アカウントの権限借用を構成する。
インポート ユーティリティ スクリプトをローカルで実行するには、ユーザー アカウントにサービス アカウントの権限を借用する権限が必要です。ユーザー アカウントに、サービス アカウントのサービス アカウント トークン作成者ロール(
roles/iam.serviceAccountTokenCreator)を付与します。詳細については、サービス アカウントに対するアクセス権の管理をご覧ください。
サービス アカウント
Editorに Google スプレッドシートへのアクセス権を付与します。インポート プロセスに使用する Google スプレッドシートを開き、[共有] をクリックして、サービス アカウントのメールを
Editorとして追加します。この権限により、サービス アカウントはシートからデータを読み取ったり、シートにデータを書き込んだりできます。
Cloud Storage バケットを作成する
インポート ファイルのステージング領域として機能する Cloud Storage バケットを作成します。
必要なロール
Google スプレッドシートからエントリリンクをインポートするために必要な権限がサービス アカウントに付与されるように、次の IAM ロールをサービス アカウントに付与するよう管理者に依頼してください。
- プロジェクトに対する Dataplex 管理者 (
roles/dataplex.admin) - プロジェクトに対する Dataplex Catalog 管理者 (
roles/dataplex.catalogAdmin) - プロジェクトに対する Dataplex Catalog 編集者 (
roles/dataplex.catalogEditor) - Cloud Storage バケットに対する Storage オブジェクト管理者 (
roles/storage.objectAdmin) - Cloud Storage バケットに対する Storage オブジェクト作成者 (
roles/storage.objectCreator)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をサービス アカウントに付与することもできます。
API を有効にする
エントリリンクをインポートするには、プロジェクトで次の API を有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法を学習する。
Git リポジトリを設定する
dataplex-labs リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git cd dataplex-labs/dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import/dataplex-glossary/import
依存関係のインストール
必要な Python 依存関係をインストールします。
pip3 install -r requirements.txt cd dataplex-glossary
パッケージのインストールで問題が発生した場合は、新しい Python 開発環境を設定します。
サービス アカウントの権限借用を認証して構成する
Google Cloud CLI を初期化し、サービス アカウントの権限借用でアプリケーションのデフォルト認証情報(ADC)を使用して認証します。
# Set your service account email address SA_EMAIL="SERVICE_ACCOUNT_EMAIL" # Authenticate ADC using service account impersonation and required scopes gcloud init gcloud auth login gcloud auth application-default login \ --impersonate-service-account="${SA_EMAIL}" \ --scopes="https://www.googleapis.com/auth/spreadsheets"
SERVICE_ACCOUNT_EMAIL は、サービス アカウントのメール ID に置き換えます。次に例を示します。
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
プロジェクト間のインポートの要件
複数の Google Cloud プロジェクトにエントリリンクをインポートするには、インポート ユーティリティを実行する前に、構成が次の要件を満たしていることを確認してください。
クロス プロジェクト IAM 権限を構成する: インポート スクリプトを実行するサービス アカウントには、すべてのターゲット プロジェクトで十分な権限が必要です。
エントリの存在を確認する: インポートを実行する前に、ターゲット エントリがそれぞれの Knowledge Catalog プロジェクトにすでに存在している必要があります。
Knowledge Catalog サービス エージェントに Cloud Storage バケットへのアクセス権を付与する: 各ターゲット プロジェクトの Knowledge Catalog サービス アカウントには、Cloud Storage バケットへのアクセス権が必要です。
インポート用の Google スプレッドシートを作成して構造化する
一括インポートを正常に実行するには、正確な列スキーマを使用して新しい Google スプレッドシートを作成し、definition、related、synonym のエントリリンク タイプを含むエントリリンクを定義する必要があります。このスキーマを使用すると、インポート ユーティリティでメタデータ フィールドを解析して検証できます。サービス アカウント Editor に Google スプレッドシートへのアクセス権を付与していることを確認します。
シートの最初の行には、大文字と小文字を区別する次のスキーマ ヘッダーを正確に含める必要があります。
| 列見出し | 必須または省略可 | 説明 |
|---|---|---|
entry_link_type |
必須 | 値は definition、related、synonym のいずれかにする必要があります。 |
source_entry |
必須 | ソースエントリの完全なリソースパス( 形式)。 projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRYGROUP_NAME/entries/ENTRY_NAME |
target_entry |
必須 | ターゲット エントリの完全なリソースパス(形式: ) projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRYGROUP_NAME/entries/ENTRY_NAME |
source_path |
省略可 | 定義リンクの列またはフィールドパス(例: Schema.column_name)。 |
環境変数を設定する
次の環境変数を設定します。
# Set your Google Sheet URL export SPREADSHEET_URL="GOOGLE_SHEET_URL" # Set your bucket name export BUCKETS="COMMA_SEPARATED_LIST_OF_BUCKETS" # Set the project ID export USER_PROJECT="USER_PROJECT"
Google スプレッドシートからエントリリンクをインポートする
Google スプレッドシートから Knowledge Catalog にエントリリンクをインポートするには、entrylinks-import.py スクリプトを実行します。
cd import python3 entrylinks-import.py \ --spreadsheet-url="$SPREADSHEET_URL" \ --buckets="$BUCKETS" \ --user-project="$USER_PROJECT"
複数のインポート ジョブを並列で実行するには、--buckets パラメータに複数の Cloud Storage バケットを指定します。このスクリプトは、メタデータを小さなバッチに分割し、バケット間で同時に処理することで、取り込みの合計時間を短縮します。
実行ログは、ローカル実行パスの logs/ ディレクトリで確認できます。これらのログは、転送プロセスの監査や、スキップされたエントリやフォーマット警告の特定に役立ちます。
次のステップ
- ビジネス用語集を管理する方法を学習する。
- エントリリンクを Google スプレッドシートにエクスポートする方法を確認する。
- Google スプレッドシートから用語集をインポートする方法を学習する。
- メタデータ管理について詳細を確認する。