エントリのリンクを Google スプレッドシートにエクスポートする

このドキュメントでは、エントリリンク エクスポート ユーティリティを使用して、Knowledge Catalog(以前の Dataplex Universal Catalog)から Google スプレッドシートにエントリリンク(用語集の用語とデータアセット間の関係)を抽出する方法について説明します。

エントリリンクを Google スプレッドシートにエクスポートして、既存のリンクの監査、メタデータのバックアップ、一括更新用のテンプレートの準備を行うことができます。

始める前に

エントリリンクを Google スプレッドシートにエクスポートする前に、次の前提条件を満たしてください。

サービス アカウントを設定する

エクスポート ユーティリティを実行するには、Google Sheets API にアクセスしてユーザー認証情報を借用するために必要な権限を持つサービス アカウントを設定する必要があります。

  1. サービス アカウントを特定または作成します。

    インポート ユーティリティを実行するプロジェクトで、既存のサービス アカウントを選択するか、新しいサービス アカウントを作成します。詳細については、 サービス アカウントの作成をご覧ください。 サービス アカウントのメールアドレス (例: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)をメモします。

  2. サービス アカウントの権限借用を構成します。

    エクスポート ユーティリティ スクリプトをローカルで実行するには、ユーザー アカウントにサービス アカウントの権限を借用する権限が必要です。ユーザー アカウントにサービス アカウントのサービス アカウント トークン作成者 ロール(roles/iam.serviceAccountTokenCreator)を付与します。

    詳細については、 サービス アカウントに対するアクセス権の管理をご覧ください。

  3. サービス アカウントに Google スプレッドシートへの Editor アクセス権を付与します。

    インポート プロセスで使用する Google スプレッドシートを開き、[共有] をクリックして、サービス アカウントのメールアドレスを Editor として追加します。この権限により、サービス アカウントはシートからデータを読み取ったり、シートにデータを書き込んだりできます。

必要なロール

エントリリンクを Google スプレッドシートにエクスポートするために必要な 権限がサービス アカウントに付与されるように、 次の IAM ロールをサービス アカウントに付与するよう 管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をサービス アカウントに付与することもできます。

API を有効にする

エントリリンクをエクスポートするには、プロジェクトで次の API を有効にします。

API を有効にするために必要なロール

API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

API を有効にする

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/export

依存関係のインストール

必要な 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 は、サービス アカウントのメールアドレスに置き換えます。次に例を示します。

SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

エクスポート用のターゲット Google スプレッドシートを設定する

空の Google スプレッドシートを作成するか、既存のスプレッドシートを使用します。エクスポート スクリプトは最初のシートに書き込みます。サービス アカウントに Google スプレッドシートへの Editor アクセス権が付与されていることを確認してください。

環境変数を設定する

次の環境変数を設定します。

# Set your glossary URL
export GLOSSARY_URL="GLOSSARY_URL"

# Set your Google Sheet URL
export SPREADSHEET_URL="GOOGLE_SHEET_URL"

# Set the project ID
export USER_PROJECT="USER_PROJECT"

エントリリンクを Google スプレッドシートにエクスポートする

用語集のエントリリンクを Google スプレッドシートにエクスポートするには、次のスクリプトを実行します。

cd export
python3 entrylinks-export.py \
  --glossary-url="$GLOSSARY_URL" \
  --spreadsheet-url="$SPREADSHEET_URL" \
  --user-project="$USER_PROJECT"

実行ログは、ローカル実行パスの logs/ ディレクトリで確認できます。これらのログは、転送プロセスを監査し、スキップされたエントリや書式設定の警告を特定するのに役立ちます。

エクスポートされたエントリリンク データを確認する

エクスポート スクリプトは、Google スプレッドシートに次の列を入力します。

列見出し 説明
entry_link_type エントリリンクのタイプ(definitionrelated、または synonym)。
source_entry ソース エントリの完全なリソースパス。
target_entry ターゲット エントリの完全なリソースパス。
source_path 定義リンクの列またはフィールドのパス。

次のステップ