このドキュメントでは、メタデータ インポート API メソッドと独自のパイプラインを使用して、サードパーティ システムから Knowledge Catalog(以前の Dataplex Universal Catalog)にメタデータをインポートする方法について説明します。Knowledge Catalog メタデータは、エントリとそのアスペクトで構成されます。
Google Cloud管理のオーケストレーション パイプラインを使用してメタデータを抽出してインポートする場合は、マネージド接続パイプラインを使用することをおすすめします。マネージド接続パイプラインでは、メタデータを抽出し、メタデータ インポート API メソッド(メタデータ インポート ファイル)で入力として使用できる形式で出力を生成する独自のコネクタを用意します。次に、Workflows を使用してパイプライン タスクをオーケストレートします。
実行できるメタデータのインポート ジョブの種類は次のとおりです。
- エントリの完全同期と、そのアスペクトの増分インポート。カスタム エントリでサポートされています。
- アスペクトのみの増分インポート。カスタム エントリとシステム エントリに属するアスペクトでサポートされています。カスタム エントリの場合、オプションのアスペクトと必須のアスペクトの両方を変更できます。システム エントリの場合、オプションのアスペクトを変更できます。
手順の概要
メタデータ インポート API を使用してメタデータをインポートするには、以下のおおまかな手順を行います。
ジョブのスコープを決定します。
また、Knowledge Catalog がエントリとアスペクトに比較ロジックと同期モードを適用する方法についても説明します。
インポートするデータを定義するメタデータのインポート ファイルを 1 つ以上作成します。
メタデータのインポート ファイルを Cloud Storage バケットに保存します。
メタデータのインポート ジョブを実行します。
このページの手順は、エントリ グループ、エントリタイプ、アスペクト タイプなど、Knowledge Catalog のコンセプトを理解していることを前提としています。詳細については、Knowledge Catalog のメタデータについてをご覧ください。
始める前に
メタデータをインポートする前に、このセクションのタスクを完了します。
必要なロール
Knowledge Catalog サービス アカウントに Cloud Storage バケットへのアクセスに必要な権限が付与されるようにするには、Knowledge Catalog サービス アカウントにバケットに対するストレージ オブジェクト閲覧者(roles/storage.objectViewer)IAM ロールと storage.buckets.get 権限を付与するよう管理者に依頼してください。
メタデータ インポート ジョブの管理に必要な権限を取得するため、次の IAM ロールを付与するように管理者に依頼してください。
-
エントリとそのアスペクトを完全なエントリ同期メタデータ ジョブで変更する:
- エントリタイプまたはエントリタイプが定義されているプロジェクトに対する Dataplex エントリタイプ ユーザー (
roles/dataplex.entryTypeUser) - アスペクト タイプまたはアスペクト タイプが定義されているプロジェクトに対する Dataplex アスペクト タイプ ユーザー (
roles/dataplex.aspectTypeUser)
- エントリタイプまたはエントリタイプが定義されているプロジェクトに対する Dataplex エントリタイプ ユーザー (
-
アスペクトのみのメタデータ ジョブで必要なアスペクトを変更します。
- エントリタイプまたはエントリタイプが定義されているプロジェクトに対する Dataplex エントリタイプ ユーザー (
roles/dataplex.entryTypeUser) - アスペクト タイプまたはアスペクト タイプが定義されているプロジェクトに対する Dataplex アスペクト タイプ ユーザー (
roles/dataplex.aspectTypeUser)
- エントリタイプまたはエントリタイプが定義されているプロジェクトに対する Dataplex エントリタイプ ユーザー (
-
アスペクトのみのメタデータ ジョブでオプションのアスペクトを変更する: アスペクト タイプまたはアスペクト タイプが定義されているプロジェクトに対する Dataplex アスペクト タイプ ユーザー (
roles/dataplex.aspectTypeUser)。アスペクトのみのメタデータ ジョブでオプションのアスペクトを変更する場合、関連するエントリタイプの権限は必要ありません。 -
メタデータのインポート ジョブを作成する:
- プロジェクトまたはリソースに対する Dataplex エントリ グループ インポータ (
roles/dataplex.entryGroupImporter) - プロジェクトまたはリソースに対する Dataplex エントリ / エントリリンク オーナー (
roles/dataplex.entryOwner)
- プロジェクトまたはリソースに対する Dataplex エントリ グループ インポータ (
-
メタデータ ジョブを表示する: プロジェクトに対する Dataplex メタデータ ジョブ閲覧者 (
roles/dataplex.metadataJobViewer) -
メタデータ ジョブを作成、表示、キャンセルする: プロジェクトに対する Dataplex メタデータ ジョブオーナー (
roles/dataplex.metadataJobOwner)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Google Cloud リソースを作成する
次の Google Cloud リソースを準備します。
- インポートするエントリのエントリ グループを作成します。
- インポートするアスペクトのアスペクト タイプを作成します。
- インポートするエントリのエントリタイプを作成します。
- アスペクトのみのメタデータ ジョブを実行する場合は、インポートするアスペクトのエントリを作成します。
- メタデータのインポート ファイルを保存する Cloud Storage バケットを作成します。
メタデータ インポート ジョブのコンポーネント
メタデータをインポートする際は、メタデータ ジョブの次のコンポーネントを考慮してください。
- ジョブのスコープ: ジョブに含めるエントリ グループ、エントリタイプ、アスペクト タイプ。
- 同期モード: ジョブ内のエントリとアスペクトが更新される方法。
- メタデータ インポート ファイル: ジョブ内のエントリとアスペクトに設定する値を定義するファイル。1 つのメタデータ ジョブで複数のメタデータ インポート ファイルを指定できます。ファイルを Cloud Storage に保存します。
- 比較ロジック: Knowledge Catalog が変更するエントリとアスペクトを決定する方法。
ジョブのスコープ
ジョブのスコープでは、メタデータ インポート ジョブに含めるエントリ グループ、エントリタイプ、アスペクト タイプを定義します。メタデータをインポートした際に、ジョブのスコープ内のリソースに属するエントリとアスペクトを変更します。
ジョブのスコープを定義するには、次のガイドラインを実施してください。
エントリ グループ: ジョブに含める 1 つ以上のエントリ グループを指定します。ジョブは、これらのエントリ グループに属するエントリとアスペクトのみを変更します。エントリ グループとジョブは同じリージョンに存在する必要があります。
エントリタイプ: ジョブに含める 1 つ以上のエントリタイプを指定します。ジョブは、これらのエントリタイプに属するエントリとアスペクトのみを変更します。エントリタイプのロケーションは、ジョブのロケーションと一致しているか、エントリタイプがグローバルであることが必要です。
アスペクト タイプ: ジョブに含めるアスペクト タイプを 1 つ以上指定します。ジョブはそれらのアスペクト タイプに属するアスペクトのみを変更します。アスペクト タイプのロケーションは、ジョブのロケーションと一致しているか、アスペクト タイプがグローバルであることが必要です。
ジョブのスコープには、メタデータ インポート ファイルで指定したエントリタイプとアスペクト タイプをすべて含める必要があります。
ジョブのスコープは、メタデータ ジョブを作成するときに指定します。
同期モード
同期モードは、メタデータ インポート ジョブ内のエントリとアスペクトの更新方法を指定します。エントリとアスペクトの両方に同期モードを指定します。インポートするリソースに応じて、次の同期モードの組み合わせがサポートされています。
| 目標 | エントリの同期モード | アスペクトの同期モード | 結果 |
|---|---|---|---|
| エントリとそのアスペクトをインポートする | FULL |
INCREMENTAL |
ジョブのスコープのすべてのエントリが変更されます。 Knowledge Catalog にエントリが存在しても、メタデータ インポート ファイルに含まれていない場合は、メタデータ ジョブの実行時にエントリが削除されます。 アスペクトが変更されるのは、メタデータ インポート ファイルに |
| アスペクトのみをインポートする | NONE |
INCREMENTAL |
アスペクトは、ジョブのスコープの一部であり、メタデータ インポート ファイルに ジョブのスコープのエントリに属するほかのメタデータは変更されません。 |
同期モードは、メタデータ ジョブを作成するときに指定します。
メタデータ インポート ファイル
メタデータ インポート ファイルは、変更するエントリとアスペクトのコレクションです。これらのエントリとアスペクトに属するすべてのフィールドに設定する値を定義します。メタデータ インポート ジョブを実行する前にファイルを準備します。
次の一般的なガイドラインが適用されます。
- 1 つのメタデータ ジョブで複数のメタデータ インポート ファイルを指定できます。
完全なエントリ同期メタデータ ジョブを実行すると、ファイルで指定したエントリが、ジョブのスコープ内のすべてのリソースの既存のエントリに完全に置き換えられます。つまり、追加または更新する値だけでなく、ジョブ内のすべてのエントリの値を含める必要があります。開始点として使用するプロジェクト内の現在のエントリのリストを取得するには、
entries.listAPI メソッドを使用します。メタデータ ジョブの一部としてメタデータ インポート ファイルを指定する必要があります。ジョブのスコープに含まれるエントリの既存のデータをすべて削除する場合は、空のメタデータ インポート ファイルを指定します。
ファイルに含めるエントリとアスペクトはすべて、ジョブのスコープで定義したエントリ グループ、エントリタイプ、アスペクト タイプに属している必要があります。
メタデータ インポート ファイルを作成するには、次のセクションの詳細なガイドラインを使用します。
ファイルの構造
メタデータ インポート ファイルの各行には、1 つのインポート アイテムに対応する JSON オブジェクトが含まれています。インポート アイテムは、エントリとそれにアタッチされたアスペクトで変更する値を記述するオブジェクトです。
1 つのメタデータ インポート ファイルに複数のインポート アイテムを指定できます。ただし、1 つのメタデータ ジョブで同じインポート アイテムを複数回指定しないでください。各インポート アイテムは改行文字(0x0a)で区切ります。
各インポート アイテムを改行文字で区切ったメタデータ インポート ファイルは、次の例のようになります。
{ "entry": { "name": "entry 1", #Information about entry 1 }
{ "entry": { "name": "entry 2", #Information about entry 2 }
インポート アイテムの構造
メタデータ インポート ファイル内の各インポート アイテムには、次のフィールドが含まれます(ImportItem を参照)。次の例では、読みやすくするために改行文字が使用されていますが、ファイルを保存するときは、各インポート アイテムの後にのみ改行文字を含めます。1 つのインポート アイテムのフィールドの間には改行を含めないでください。
{
"entry": {
"name": "ENTRY_NAME",
"entryType": "ENTRY_TYPE",
"entrySource": {
"resource": "RESOURCE",
"system": "SYSTEM",
"platform": "PLATFORM",
"displayName": "DISPLAY_NAME",
"description": "DESCRIPTION",
"createTime": "ENTRY_CREATE_TIMESTAMP",
"updateTime": "ENTRY_UPDATE_TIMESTAMP"
},
"aspects": {
"ASPECT": {
"data": {
"KEY": "VALUE"
},
"aspectSource": {
"createTime": "ASPECT_CREATE_TIMESTAMP",
"updateTime": "ASPECT_UPDATE_TIMESTAMP"
}
},
# Additional aspect maps
},
"parentEntry": "PARENT_ENTRY",
"fullyQualifiedName": "FULLY_QUALIFIED_NAME"
},
"updateMask": "UPDATE_MASK_FIELDS",
"aspectKeys": [
"ASPECT_KEY",
# Additional aspect keys
],
}
次のように置き換えます。
entry: エントリとそれに関連付けられたアスペクトに関する情報。アスペクトのみのメタデータ インポート ジョブでは、Knowledge Catalog はアスペクト マップを除き、エントリの省略可能なフィールドはすべて無視します。- ENTRY_NAME: エントリの相対的なリソース名(
projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID/entries/ENTRY_IDの形式)。 - ENTRY_TYPE: このエントリの作成に使用されたエントリタイプの相対的なリソース名(
projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID形式)。 entrySource: エントリによって表されるデータリソースに関するソースシステムの情報。- RESOURCE: ソースシステムのリソースの名前。
- SYSTEM: ソースシステムの名前。
- PLATFORM: ソースシステムを含むプラットフォーム。
- DISPLAY_NAME: ユーザー フレンドリーな表示名。
- DESCRIPTION: エントリの説明。
- ENTRY_CREATE_TIMESTAMP: ソースシステムでエントリが作成された時刻。
- ENTRY_UPDATE_TIMESTAMP: ソースシステムでエントリが更新された時刻。
aspects: エントリにアタッチされているアスペクト。aspectオブジェクトとそのデータは、アスペクト マップと呼ばれます。ASPECT: エントリにアタッチされているアスペクト。アスペクトがエントリにどのようにアタッチされているかに応じて、次のいずれかの形式を使用します。
- アスペクトがエントリに直接アタッチされている場合は、そのアスペクト タイプの相対的なリソース名を
PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_IDの形式で指定します。 - アスペクトがエントリのパスにアタッチされている場合は、アスペクト タイプのパスを
PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID@PATHの形式で指定します。
- アスペクトがエントリに直接アタッチされている場合は、そのアスペクト タイプの相対的なリソース名を
KEY と VALUE: アスペクト タイプ メタデータ テンプレートに基づくアスペクトのコンテンツ。コンテンツは UTF-8 としてエンコードする必要があります。フィールドの最大サイズは 120 KB です。
dataディクショナリは、空であっても必須です。ASPECT_CREATE_TIMESTAMP: ソースシステムでアスペクトが作成された時刻。
ASPECT_UPDATE_TIMESTAMP: ソースシステムでアスペクトが更新された時刻。
PARENT_ENTRY: 親エントリのリソース名。
FULLY_QUALIFIED_NAME: 外部システムから参照できるエントリの名前。完全修飾名をご覧ください。
- ENTRY_NAME: エントリの相対的なリソース名(
UPDATE_MASK_FIELDS: 更新するフィールド(
Entryリソースを基準としたパス)。各フィールドはカンマで区切ります。完全なエントリ同期ジョブでは、アスペクトを含む、変更可能なエントリのすべてのフィールドのパスが Knowledge Catalog に含まれます。エントリの作成または再作成時に、
updateMaskフィールドは無視されます。アスペクトのみのメタデータ ジョブでは、この値を
aspectsに設定します。ASPECT_KEY: 変更するアスペクト。次の構文をサポートしています。
ASPECT_TYPE_REFERENCE: エントリに直接アタッチされているアスペクトのアスペクト タイプと一致します。ASPECT_TYPE_REFERENCE@PATH: アスペクト タイプと指定されたパスと一致します。ASPECT_TYPE_REFERENCE@*: すべてのパスのアスペクト タイプと一致します。*@PATH: 指定されたパスのすべてのアスペクト タイプと一致します。
ASPECT_TYPE_REFERENCEは、アスペクト タイプへの参照に置き換えます。形式はPROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_IDです。エントリ全体の同期ジョブで、このフィールドを空白のままにすると、指定されたエントリ内に存在するアスペクトを正確に指定したものとして扱われます。Knowledge Catalog は、エントリに必要なすべてのアスペクトのキーを暗黙的に追加します。
ファイルの要件
メタデータ インポート ファイルには次の要件があります。
- ファイルは、改行区切りの JSON ファイルである JSON Lines ファイル形式でなければなりません。各インポート アイテムは改行文字(
0x0a)で区切ります。 - ファイルは UTF-8 文字エンコードを使用する必要があります。
- サポートされているファイル拡張子は
.jsonlと.jsonです。 - 各メタデータ インポート ファイルのファイルサイズは 1 GiB 未満にする必要があります。メタデータ ジョブ内のすべてのデータの最大合計サイズは 3 GB です。これには、ジョブに関連付けられているすべてのファイルとメタデータが含まれます。
- ファイルで指定するエントリタイプとアスペクト タイプは、メタデータ ジョブのスコープの一部である必要があります。
- ファイルは Cloud Storage バケットにアップロードする必要があります。ファイルを
CLOUD_STORAGE_URI/deletions/という名前のフォルダに保存しないでください。
比較ロジック
Knowledge Catalog は、メタデータ インポート ファイルで指定された値とタイムスタンプを、プロジェクトに存在する値とタイムスタンプと比較して、変更するエントリとアスペクトを決定します。
大まかに言うと、Knowledge Catalog は、メタデータ インポート ファイルで提案された変更が少なくとも 1 つあり、ジョブの実行時にプロジェクトの状態が変化する場合に、古いデータを使用することなくプロジェクトの値を更新します。提案された変更は、メタデータ インポート ファイルの更新マスク フィールドまたはアスペクトキー フィールドで参照する必要があります。
比較ロジックは、実行するメタデータ インポート ジョブの種類によって異なります。
完全なエントリ同期ジョブ
完全なエントリ同期メタデータ ジョブでは、ジョブのスコープに含まれるエントリごとに、Knowledge Catalog は次のいずれかの処理を行います。
- エントリとそれに関連するアスペクトを作成します。メタデータ インポート ファイルに、プロジェクトに存在しないエントリが含まれている場合、Knowledge Catalog はエントリとそれに関連するアスペクトを作成します。
- エントリとそれに関連するアスペクトを削除します。エントリがプロジェクトに存在するものの、メタデータ インポート ファイルにエントリが含まれていない場合、Knowledge Catalog はエントリとそれに関連するアスペクトをプロジェクトから削除します。
エントリとそれに関連するアスペクトを更新します。エントリがメタデータ インポート ファイルとプロジェクトの両方に存在する場合、Knowledge Catalog はエントリのソース タイムスタンプとエントリに関連付けられているアスペクトのソース タイムスタンプを評価して、変更する値を決定します。次に、Knowledge Catalog は次の 1 つ以上の処理を行います。
- エントリを再作成します。メタデータ インポート ファイルのエントリソースの作成タイムスタンプが、プロジェクト内の対応するタイムスタンプよりも新しい場合、Knowledge Catalog はプロジェクト内のエントリを再作成します。
- エントリを更新します。メタデータ インポート ファイル内のエントリソースの更新タイムスタンプが、プロジェクト内の対応するタイムスタンプよりも新しい場合、Knowledge Catalog はプロジェクト内のエントリを更新します。
- アスペクトを作成します。アスペクトがプロジェクトに存在せず、メタデータ インポート ファイルのアスペクト マップ、更新マスク フィールド、アスペクトキー フィールドに含まれている場合、Knowledge Catalog はアスペクトを作成します。
- アスペクトを削除します。アスペクトがプロジェクトに存在し、メタデータ インポート ファイルの更新マスク フィールドとアスペクトキー フィールドに含まれていても、アスペクト マップに含まれていない場合、Knowledge Catalog はアスペクトを削除します。
アスペクトを更新します。アスペクトがプロジェクトに存在し、メタデータ インポート ファイルのアスペクト マップ、更新マスク フィールド、アスペクトキー フィールドに含まれており、メタデータ インポート ファイルのアスペクト ソースの更新タイムスタンプがプロジェクト内の対応するタイムスタンプよりも新しい場合、Knowledge Catalog はアスペクトを更新します。
メタデータ インポート ファイルにアスペクト ソースの更新タイムスタンプが指定されておらず、対応するエントリが更新対象としてマークされている場合、Knowledge Catalog はアスペクトも更新します。
ただし、メタデータ インポート ファイルの少なくとも 1 つのアスペクトにプロジェクト内の対応するタイムスタンプよりも古いタイムスタンプがある場合、Knowledge Catalog はアタッチされたエントリを更新しません。
アスペクトのみのジョブ
アスペクトのみのメタデータ ジョブでは、ジョブのスコープの一部であるアスペクトごとに、Knowledge Catalog は次のいずれかの処理を行います。
- アスペクトを作成します。アスペクトがプロジェクトに存在せず、メタデータ インポート ファイルのアスペクト マップ、更新マスク フィールド、アスペクトキー フィールドに含まれている場合、Knowledge Catalog はアスペクトを作成します。
アスペクトを削除します。オプションのアスペクトの場合、アスペクトがプロジェクトに存在し、メタデータ インポート ファイルの更新マスク フィールドとアスペクトキー フィールドに含まれていても、アスペクト マップに含まれていない場合、Knowledge Catalog はアスペクトを削除します。
必須のアスペクトは削除できません。
アスペクトを更新します。アスペクトがプロジェクトに存在し、メタデータ インポート ファイルのアスペクト マップ、更新マスク フィールド、アスペクトキー フィールドに含まれており、メタデータ インポート ファイルのアスペクト ソースの更新タイムスタンプがプロジェクト内の対応するタイムスタンプよりも新しい場合、Knowledge Catalog はアスペクトを更新します。
メタデータ インポート ファイルにアスペクト ソースの更新タイムスタンプが指定されていない場合、Knowledge Catalog はアスペクトも更新します。
Knowledge Catalog は、対応するエントリのエントリソースの更新タイムスタンプに関係なく、アスペクト ソースの更新タイムスタンプに基づいてアスペクトを更新します。
メタデータ インポート ファイルを作成する
メタデータをインポートする前に、ジョブのメタデータ インポート ファイルを作成します。手順は次のとおりです。
- このドキュメントで前述したガイドラインに沿って、メタデータ インポート ファイルを準備します。
- Cloud Storage バケットにファイルをアップロードします。
1 つのメタデータ ジョブで複数のメタデータ インポート ファイルを指定できます。複数のファイルを指定するには、同じ Cloud Storage バケットにファイルを保存します。ジョブを実行するときに、特定のファイルではなくバケットを指定します。Knowledge Catalog は、サブフォルダ内のファイルを含む、バケットに保存されているすべてのファイルからメタデータをインポートします。
メタデータ インポート ジョブを実行する
メタデータ インポート ファイルを作成したら、メタデータ インポート ジョブを実行します。
REST
メタデータをインポートするには、metadataJobs.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER: Google Cloud プロジェクト番号またはプロジェクト ID。
- LOCATION_ID: Google Cloud ロケーション(
us-central1など)。 - METADATA_JOB_ID: 省略可。メタデータ ジョブ ID。
CLOUD_STORAGE_URI: メタデータ インポート ファイルを含む Cloud Storage バケットまたはフォルダの URI。ファイルの要件の詳細については、メタデータ インポート ファイルをご覧ください。
- ENTRY_GROUP: ジョブのスコープ内にあるエントリ グループの相対的なリソース名(
projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID形式)。詳細については、ジョブのスコープをご覧ください。 ENTRY_TYPE: ジョブのスコープ内にあるエントリタイプの相対的なリソース名(
projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID形式)。詳細については、ジョブのスコープをご覧ください。- ASPECT_TYPE: ジョブのスコープ内にあるアスペクト タイプの相対的なリソース名(
projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID形式)。エントリ全体の同期ジョブを作成する場合は省略可。アスペクトのみのジョブを作成する場合は必須です。詳細については、ジョブのスコープをご覧ください。 - ENTRY_SYNC_MODE: エントリの同期モード(
FULLやNONEなど)。詳細については、同期モードをご覧ください。 - LOG_LEVEL: キャプチャするログのレベル(
INFO、DEBUGなど)。詳細については、ジョブのログを表示してトラブルシューティングを行うをご覧ください。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID
リクエストの本文(JSON):
{
"type": "IMPORT",
"import_spec": {
"source_storage_uri": "gs://CLOUD_STORAGE_URI/",
"scope": {
"entryGroups": [
"ENTRY_GROUP"
],
"entry_types": [
"ENTRY_TYPE"
],
"aspect_types": [
"ASPECT_TYPE"
]
},
"entry_sync_mode": "ENTRY_SYNC_MODE",
"aspect_sync_mode": "INCREMENTAL",
"log_level": "LOG_LEVEL"
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスで長時間実行オペレーションを識別できます。
メタデータ ジョブの詳細情報を取得する
メタデータ ジョブに関する情報(ジョブのステータス、変更されたエントリの数など)を取得する手順は次のとおりです。失敗したジョブのトラブルシューティング方法の詳細については、このドキュメントのジョブのログを表示してトラブルシューティングを行うセクションをご覧ください。
C#
C#
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Go
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Java
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Python
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
メタデータ ジョブに関する情報を取得するには、metadataJobs.get メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER: Google Cloud プロジェクト番号またはプロジェクト ID。LOCATION_ID: Google Cloud ロケーション(us-central1など)。METADATA_JOB_ID: メタデータ ジョブ ID。
HTTP メソッドと URL:
GET https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/metadataJobs/METADATA_JOB_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/123456789012/locations/us-central1/metadataJobs/my-metadata-job",
"uid": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"createTime": "2026-07-17T16:30:15Z",
"updateTime": "2026-07-17T16:35:15Z",
"type": "IMPORT",
"importSpec": {
"sourceStorageUri": "gs://my-bucket/",
"scope": {
"entryGroups": [
"projects/123456789012/locations/us-central1/entryGroups/my-entry-group"
],
"entryTypes": [
"projects/123456789012/locations/us-central1/entryTypes/my-entry-type"
],
"aspectTypes": [
"projects/123456789012/locations/us-central1/aspectTypes/my-aspect-type"
]
},
"entrySyncMode": "FULL",
"aspectSyncMode": "INCREMENTAL",
"logLevel": "INFO"
},
"status": {
"state": "SUCCEEDED"
},
"importResult": {
"deletedEntries": "2",
"updatedEntries": "5",
"createdEntries": "10",
"unchangedEntries": "20",
"updateTime": "2026-07-17T16:35:15Z"
}
}
メタデータ ジョブのリストを取得する
最新のメタデータ ジョブのリストを取得できます。終了状態に達した古いジョブは、定期的にシステムから削除されます。
C#
C#
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Go
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Java
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Python
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
最新のメタデータ ジョブのリストを取得するには、metadataJobs.list メソッドを使用します。
メタデータ ジョブをキャンセルする
実行する必要がないメタデータ ジョブはキャンセルできます。
C#
C#
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Go
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Java
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Python
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。
Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
メタデータ ジョブをキャンセルするには、metadataJobs.cancel メソッドを使用します。
ジョブのログを表示してトラブルシューティングを行う
Cloud Logging を使用して、メタデータ ジョブのログを表示します。詳細については、Knowledge Catalog ログをモニタリングするをご覧ください。
ログレベルは、メタデータ ジョブを作成するときに構成します。次のログレベルを使用できます。
INFO: ジョブ全体のレベルでログを指定します。インポート アイテムに関する集計ログが含まれますが、エラーのあるインポート アイテムは指定されません。DEBUG: インポート アイテムごとに詳細なログを指定します。デバッグレベルのロギングを使用して、特定のインポート アイテムに関する問題のトラブルシューティングを行います。たとえば、デバッグレベルのロギングを使用して、ジョブスコープにないリソース、関連するエントリタイプやアスペクト タイプに準拠していないエントリやアスペクト、メタデータ インポート ファイルのその他の構成ミスを特定します。
検証エラー
Knowledge Catalog は、プロジェクトの現在のメタデータと照らし合わせてメタデータ インポート ファイルを検証します。検証の問題がある場合、ジョブのステータスは次のいずれかの状態を返す可能性があります。
FAILED: メタデータ インポート ファイルにエラーがある場合に発生します。Knowledge Catalog はメタデータをインポートせず、ジョブは失敗します。メタデータ インポート ファイルのエラーの例を以下に示します。- ファイル内の項目を有効なインポート項目に解析できない
- ファイル内のエントリやアスペクトが、ジョブのスコープの一部でないエントリ グループ、エントリタイプ、またはアスペクト タイプに属している
- ジョブで同じエントリ名が複数回指定されている
- アスペクト マップまたはアスペクトキーで指定されたアスペクト タイプが、PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID@OPTIONAL_PATH の形式を使用していない
- 必須のアスペクトが削除対象としてマークされている
SUCCEEDED_WITH_ERRORS: メタデータ インポート ファイルは正常に解析できるものの、ファイル内のアイテムをインポートすると、プロジェクト内のエントリが不整合状態になる場合に発生します。Knowledge Catalog はこのようなエントリを無視しますが、残りのメタデータをファイルからインポートします。
ジョブのログを使用してエラーのトラブルシューティングを行います。