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

エントリリンク エクスポート ユーティリティを使用すると、エントリリンク(用語集の用語とデータアセットの関係)を Knowledge Catalog(旧称 Dataplex Universal Catalog)から Google スプレッドシートに抽出できます。その後、既存のリンクの監査、メタデータのバックアップ、一括更新用のテンプレートの準備を行うことができます。

始める前に

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

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

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

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

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

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

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

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

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

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

必要なロール

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

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

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

API を有効にする

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

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

API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(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 は、サービス アカウントのメール ID に置き換えます。次に例を示します。

SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

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

空の 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 エントリリンクのタイプ(definition、related、synonym)。
source_entry ソースエントリの完全なリソースパス。
target_entry ターゲット エントリの完全なリソースパス。
source_path 定義リンクの列またはフィールドパス。

次のステップ