このドキュメントでは、サードパーティ ソースからメタデータを抽出するカスタム コネクタを構築するためのリファレンス テンプレートを提供します。このコネクタは、メタデータを Dataplex にインポートするマネージド接続パイプラインを実行するときに使用します。
コネクタを構築して、サードパーティ ソースからメタデータを抽出できます。たとえば、MySQL、SQL Server、Oracle、Snowflake、Databricks などのソースからデータを抽出するコネクタを構築できます。
このドキュメントのコネクタの例を参考に、独自のコネクタを構築してください。コネクタの例は、Oracle Database Express Edition(XE)データベースに接続します。このコネクタは Python で構築されていますが、Java、Scala、R も使用できます。
コネクタの仕組み
コネクタは、サードパーティ データソースからメタデータを抽出し、メタデータを Dataplex ImportItem
形式に変換し、Dataplex によってインポートできるメタデータ インポート ファイルを生成します。
このコネクタは、マネージド接続パイプラインの一部です。マネージド接続パイプラインは、Dataplex Catalog メタデータをインポートするために使用するオーケストレートされたワークフローです。マネージド接続パイプラインは、コネクタを実行し、インポート ワークフローの他のタスク(メタデータ インポート ジョブの実行、ログのキャプチャなど)を実行します。
マネージド接続パイプラインは、Dataproc Serverless バッチジョブを使用してコネクタを実行します。Dataproc Serverless は、サーバーレス Spark 実行環境を提供します。Spark を使用しないコネクタを構築することもできますが、Spark を使用するとコネクタのパフォーマンスが向上するため、Spark を使用することをおすすめします。
コネクタの要件
コネクタには次の要件があります。
- コネクタは、Dataproc Serverless で実行できる Artifact Registry イメージである必要があります。
- コネクタは、Dataplex メタデータ インポート ジョブ(
metadataJobs.create
API メソッド)によってインポートできる形式のメタデータ ファイルを生成する必要があります。詳細な要件については、メタデータのインポート ファイルをご覧ください。 パイプラインから情報を受信するには、コネクタが次のコマンドライン引数を受け入れるようにする必要があります。
コマンドライン引数 パイプラインが提供する価値 target_project_id
PROJECT_ID target_location_id
REGION target_entry_group_id
ENTRY_GROUP_ID output_bucket
CLOUD_STORAGE_BUCKET_ID output_folder
FOLDER_ID コネクタは、これらの引数を使用して、ターゲット エントリ グループ
projects/PROJECT_ID/locations/REGION/entryGroups/ENTRY_GROUP_ID
でメタデータを生成し、Cloud Storage バケットgs://CLOUD_STORAGE_BUCKET_ID/FOLDER_ID
に書き込みます。パイプラインを実行するたびに、バケット CLOUD_STORAGE_BUCKET_ID に新しいフォルダ FOLDER_ID が作成されます。コネクタは、メタデータのインポート ファイルをこのフォルダに書き込む必要があります。
パイプライン テンプレートは PySpark コネクタをサポートしています。テンプレートでは、ドライバ(mainPythonFileUri
)が main.py
という名前のコネクタ イメージ上のローカル ファイルであると想定しています。他のシナリオ(Spark コネクタ、別のドライバ URI など)に合わせてパイプライン テンプレートを変更できます。
PySpark を使用してメタデータのインポート ファイルにインポート アイテムを作成する方法は次のとおりです。
"""PySpark schemas for the data."""
entry_source_schema = StructType([
StructField("display_name", StringType()),
StructField("source", StringType())])
aspect_schema = MapType(StringType(),
StructType([
StructField("aspect_type", StringType()),
StructField("data", StructType([
]))
])
)
entry_schema = StructType([
StructField("name", StringType()),
StructField("entry_type", StringType()),
StructField("fully_qualified_name", StringType()),
StructField("parent_entry", StringType()),
StructField("entry_source", entry_source_schema),
StructField("aspects", aspect_schema)
])
import_item_schema = StructType([
StructField("entry", entry_schema),
StructField("aspect_keys", ArrayType(StringType())),
StructField("update_mask", ArrayType(StringType()))
])
始める前に
このガイドは、Python と PySpark の知識があることを前提としています。
次の情報を確認します。
- Dataplex Catalog のメタデータのコンセプト
- メタデータのインポート ジョブに関するドキュメント
次の操作を行います。すべてのリソースを同じ Google Cloud のロケーションに作成します。
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataplex, Dataproc, Workflows, and Artifact Registry APIs:
gcloud services enable dataplex.googleapis.com
dataproc.googleapis.com workflows.googleapis.com artifactregistry.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/resourcemanager.projectCreator, roles/billing.projectManager, roles/serviceusage.admin, roles/iam.serviceAccountCreator, roles/iam.securityAdmin, roles/storage.admin, roles/artifactregistry.writer, roles/dataplex.entryGroupOwner, roles/dataplex.entryOwner, roles/dataplex.aspectTypeOwner
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/owner
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
-
メタデータのインポート ファイルを保存する Cloud Storage バケットを作成します。
-
同じプロジェクトに次の Dataplex Catalog リソースを作成します。
値の例については、このドキュメントの Oracle ソースの Dataplex Catalog リソースの例をご覧ください。
- エントリ グループを作成します。
-
インポートするエントリのカスタム アスペクト タイプを作成します。
SOURCE
-ENTITY_TO_IMPORT
の命名規則を使用します。必要に応じて、他の情報を保存するために追加のアスペクト タイプを作成できます。
-
インポートするリソースのカスタム エントリタイプを作成し、関連するアスペクト タイプを割り当てます。
SOURCE
-ENTITY_TO_IMPORT
の命名規則を使用します。たとえば、Oracle データベースの場合は、
oracle-database
という名前のエントリタイプを作成します。oracle-database
という名前の特徴タイプにリンクします。
- サードパーティ ソースが Google Cloud プロジェクトからアクセス可能であることを確認します。詳細については、Dataproc Serverless for Spark のネットワーク構成をご覧ください。
基本的な Python コネクタを作成する
基本的な Python コネクタの例では、Dataplex クライアント ライブラリ クラスを使用して Oracle データソースのトップレベル エントリを作成します。次に、入力フィールドに値を指定します。
コネクタは、次のエントリを含むメタデータのインポート ファイルを作成します。
- エントリタイプが
projects/PROJECT_ID/locations/LOCATION/entryTypes/oracle-instance
のinstance
エントリ。このエントリは Oracle Database XE システムを表します。 database
エントリ。Oracle Database XE システム内のデータベースを表します。
基本的な Python コネクタをビルドする手順は次のとおりです。
cloud-dataplex
リポジトリのクローンを作成します。ローカル環境を設定します。仮想環境を使用することをおすすめします。
mkdir venv python -m venv venv/ source venv/bin/activate
Python のアクティブ バージョンまたはメンテナンス バージョンを使用します。Python バージョン 3.7 以降がサポートされています。
Python プロジェクトを作成します。
インストール要件:
pip install -r requirements.txt
次の要件がインストールされている。
プロジェクトのルートに
main.py
パイプライン ファイルを追加します。コードを Dataproc Serverless にデプロイする場合、
main.py
ファイルは実行のエントリ ポイントとして機能します。main.py
ファイルに保存される情報の量を最小限に抑えることをおすすめします。このファイルは、コネクタ内で定義されている関数やクラス(src/bootstap.py
クラスなど)を呼び出すために使用します。src
フォルダを作成して、コネクタのロジックの大部分を保存します。コマンドライン引数を受け入れるように Python クラスを使用して
src/cmd_reader.py
ファイルを更新します。これを行うには、argeparse モジュールを使用します。本番環境では、パスワードを Secret Manager に保存することをおすすめします。
定数を作成するコードで
src/constants.py
ファイルを更新します。src/name_builder.py
ファイルを更新して、コネクタが Oracle リソース用に作成する Dataplex Catalog リソースを構築するメソッドを追加します。このドキュメントの Oracle ソース用のデータ カタログ リソースの例のセクションで説明されている規則を使用します。name_builder.py
ファイルは Python コアコードと PySpark コアコードの両方に使用されるため、メソッドはクラスのメンバーではなく、純粋な関数として記述することをおすすめします。最上位のエントリにデータを入力するコードで
src/top_entry_builder.py
ファイルを更新します。メタデータのインポート ファイルを生成し、コネクタを実行するコードで
src/bootstrap.py
ファイルを更新します。コードをローカルで実行します。
output.jsonl
という名前のメタデータ インポート ファイルが返されます。このファイルには 2 行あり、それぞれがインポート アイテムを表します。マネージド接続パイプラインは、メタデータ インポート ジョブの実行時にこのファイルを読み取ります。省略可: 前の例を拡張して、Dataplex クライアント ライブラリ クラスを使用して、テーブル、スキーマ、ビューのインポート アイテムを作成します。Dataproc Serverless で Python の例を実行することもできます。
Spark を使用する(および Dataproc Serverless で実行される)コネクタを作成することをおすすめします。これにより、コネクタのパフォーマンスが向上します。
PySpark コネクタを作成する
この例は PySpark DataFrame API に基づいています。PySpark SQL をインストールしてローカルで実行してから、Dataproc Serverless で実行できます。PySpark をローカルにインストールして実行する場合は、pip を使用して PySpark ライブラリをインストールしますが、ローカル Spark クラスタをインストールする必要はありません。
パフォーマンス上の理由から、この例では PySpark ライブラリの事前定義クラスを使用していません。代わりに、この例では DataFrame を作成し、DataFrame を JSON エントリに変換し、出力を JSON Lines 形式のメタデータ インポート ファイルに書き込みます。このファイルは Dataplex にインポートできます。
PySpark を使用してコネクタを構築するには、次の操作を行います。
cloud-dataplex
リポジトリのクローンを作成します。PySpark をインストールします。
pip install pyspark
インストール要件:
pip install -r requirements.txt
次の要件がインストールされている。
Oracle データソースからデータを読み取り、DataFrame を返すコードで
oracle_connector.py
ファイルを更新します。インポートするメタデータを返す SQL クエリを追加します。クエリは次の情報を返す必要があります。
- データベース スキーマ
- これらのスキーマに属するテーブル
- これらのテーブルに属する列(列名、列データ型、列が NULL 可能かどうか、必須かどうかなど)
すべてのテーブルとビューのすべての列は、同じシステム テーブルに保存されます。列を選択するには、
_get_columns
メソッドを使用します。指定するパラメータに応じて、テーブルまたはビューの列を個別に選択できます。次の点にご注意ください。
- Oracle では、データベース スキーマはデータベース ユーザーが所有し、そのユーザーと同じ名前になります。
- スキーマ オブジェクトは、ユーザーが作成する論理構造です。テーブルやインデックスなどのオブジェクトはデータを保持できますが、ビューやシノニムなどのオブジェクトは定義のみで構成されます。
ojdbc11.jar
ファイルには Oracle JDBC ドライバが含まれています。
Spark 変換を適用するための共有メソッドを使用して
src/entry_builder.py
ファイルを更新します。次の点にご注意ください。
- このメソッドは、コネクタが Oracle リソース用に作成する Dataplex Catalog リソースをビルドします。このドキュメントの Oracle ソース用のデータ カタログ リソースの例のセクションで説明されている規則を使用します。
convert_to_import_items
メソッドは、スキーマ、テーブル、ビューに適用されます。コネクタの出力が、個々のエントリではなく、metadataJobs.create
メソッドで処理できるインポート アイテムであることを確認します。- ビュー内でも、列は
TABLE_NAME
と呼ばれます。
メタデータのインポート ファイルを生成し、コネクタを実行するコードで
bootstrap.py
ファイルを更新します。この例では、メタデータのインポート ファイルを単一の JSON Lines ファイルとして保存します。
DataFrameWriter
クラスなどの PySpark ツールを使用して、JSON のバッチを並列に出力できます。コネクタは、メタデータのインポート ファイルにエントリを任意の順序で書き込むことができます。
メタデータのインポート ファイルを Cloud Storage バケットにアップロードするコードを使用して、
gcs_uploader.py
ファイルを更新します。コネクタ イメージをビルドします。
コネクタに複数のファイルが含まれている場合や、デフォルトの Docker イメージに含まれていないライブラリを使用する場合は、カスタム コンテナを使用する必要があります。Dataproc Serverless for Spark は、Docker コンテナ内でワークロードを実行します。コネクタのカスタム Docker イメージを作成し、イメージを Artifact Registry に保存します。Dataproc Serverless は Artifact Registry からイメージを読み取ります。
Dockerfile を作成します。
パッケージ マネージャーとして Conda を使用します。Dataproc Serverless for Spark は実行時に
pyspark
をコンテナにマウントするため、カスタム コンテナ イメージに PySpark の依存関係をインストールする必要はありません。カスタム コンテナ イメージをビルドして Artifact Registry に push します。
1 つのイメージに複数の名前を付けることができるため、Docker タグを使用してイメージにアリアスを割り当てることができます。
Dataproc Serverless でコネクタを実行します。カスタム コンテナ イメージを使用して PySpark バッチジョブを送信するには、
gcloud dataproc batches submit pyspark
コマンドを実行します。gcloud dataproc batches submit pyspark main.py --project=PROJECT \ --region=REGION --batch=BATCH_ID \ --container-image=CUSTOM_CONTAINER_IMAGE \ --service-account=SERVICE_ACCOUNT_NAME \ --jars=PATH_TO_JAR_FILES \ --properties=PYSPARK_PROPERTIES \ -- PIPELINE_ARGUMENTS
次の点にご注意ください。
- JAR ファイルは Spark のドライバです。Oracle、MySQL、Postgres から読み取るには、Apache Spark に特定のパッケージを指定する必要があります。パッケージは Cloud Storage またはコンテナ内に配置できます。JAR ファイルがコンテナ内にある場合、パスは
file:///path/to/file/driver.jar
に似ています。この例では、JAR ファイルのパスは/opt/spark/jars/
です。 - PIPELINE_ARGUMENTS はコネクタのコマンドライン引数です。
コネクタは Oracle データベースからメタデータを抽出し、メタデータ インポート ファイルを生成して、メタデータ インポート ファイルを Cloud Storage バケットに保存します。
- JAR ファイルは Spark のドライバです。Oracle、MySQL、Postgres から読み取るには、Apache Spark に特定のパッケージを指定する必要があります。パッケージは Cloud Storage またはコンテナ内に配置できます。JAR ファイルがコンテナ内にある場合、パスは
メタデータ インポート ファイルのメタデータを Dataplex に手動でインポートするには、メタデータ ジョブを実行します。
metadataJobs.create
メソッドを使用します。コマンドラインで環境変数を追加し、curl コマンドのエイリアスを作成します。
PROJECT_ID=PROJECT LOCATION_ID=LOCATION DATAPLEX_API=dataplex.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION_ID alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
インポートするエントリタイプとアスペクト タイプを渡して、API メソッドを呼び出します。
gcurl https://${DATAPLEX_API}/metadataJobs?metadata_job_id="JOB_ID" -d "$(cat <<EOF { "type": "IMPORT", "import_spec": { "source_storage_uri": "gs://BUCKET/FOLDER/", "entry_sync_mode": "FULL", "aspect_sync_mode": "INCREMENTAL", "scope": { "entry_groups": ["projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP_ID"], "entry_types": [ "projects/PROJECT/locations/LOCATION/entryTypes/oracle-instance", "projects/PROJECT/locations/LOCATION/entryTypes/oracle-database", "projects/PROJECT/locations/LOCATION/entryTypes/oracle-schema", "projects/PROJECT/locations/LOCATION/entryTypes/oracle-table", "projects/PROJECT/locations/LOCATION/entryTypes/oracle-view"], "aspect_types": [ "projects/PROJECT/locations/LOCATION/aspectTypes/oracle-instance", "projects/dataplex-types/locations/global/aspectTypes/schema", "projects/PROJECT/locations/LOCATION/aspectTypes/oracle-database", "projects/PROJECT/locations/LOCATION/aspectTypes/oracle-schema", "projects/PROJECT/locations/LOCATION/aspectTypes/oracle-table", "projects/PROJECT/locations/LOCATION/aspectTypes/oracle-view"], }, }, } EOF )"
schema
アスペクト タイプは、Dataplex によって定義されたグローバル アスペクト タイプです。API メソッドを呼び出すときにアスペクト タイプ名に使用する形式は、コネクタコードで使用する形式とは異なります。
省略可: Cloud Logging を使用して、メタデータ ジョブのログを表示します。詳細については、Dataplex ログをモニタリングするをご覧ください。
パイプラインのオーケストレーションを設定する
前のセクションでは、サンプル コネクタをビルドしてコネクタを手動で実行する方法について説明しました。
本番環境では、Workflows などのオーケストレーション プラットフォームを使用して、マネージド接続パイプラインの一部としてコネクタを実行します。
サンプル コネクタを使用してマネージド接続パイプラインを実行するには、ワークフローを使用してメタデータをインポートする手順に沿って操作します。次の手順を行います。
- コネクタと同じ Google Cloud ロケーションにワークフローを作成します。
ワークフロー定義ファイルで、作成したコネクタを使用して Oracle データベースからデータを抽出するように、
submit_pyspark_extract_job
関数を次のコードで更新します。- submit_pyspark_extract_job: call: http.post args: url: ${"https://dataproc.googleapis.com/v1/projects/" + args.TARGET_PROJECT_ID + "/locations/" + args.CLOUD_REGION + "/batches"} auth: type: OAuth2 scopes: "https://www.googleapis.com/auth/cloud-platform" headers: Content-Type: "application/json" query: batchId: ${WORKFLOW_ID} body: pysparkBatch: mainPythonFileUri: file:///main.py jars: file:///opt/spark/jars/ojdbc11.jar args: - ${"--host_port=" + args.ORACLE_HOST_PORT} - ${"--user=" + args.ORACLE_USER} - ${"--password=" + args.ORACLE_PASSWORD} - ${"--database=" + args.ORACE_DATABASE} - ${"--project=" + args.TARGET_PROJECT_ID} - ${"--location=" + args.CLOUD_REGION} - ${"--entry_group=" + args.TARGET_ENTRY_GROUP_ID} - ${"--bucket=" + args.CLOUD_STORAGE_BUCKET_ID} - ${"--folder=" + WORKFLOW_ID} runtimeConfig: version: "2.0" containerImage: "us-central1-docker.pkg.dev/PROJECT/REPOSITORY/oracle-pyspark" environmentConfig: executionConfig: serviceAccount: ${args.SERVICE_ACCOUNT} result: RESPONSE_MESSAGE
ワークフロー定義ファイルで、
submit_import_job
関数を次のコードで更新してエントリをインポートします。この関数は、metadataJobs.create
API メソッドを呼び出してメタデータのインポート ジョブを実行します。- submit_import_job: call: http.post args: url: ${"https://dataplex.googleapis.com/v1/projects/" + args.TARGET_PROJECT_ID + "/locations/" + args.CLOUD_REGION + "/metadataJobs?metadata_job_id=" + WORKFLOW_ID} auth: type: OAuth2 scopes: "https://www.googleapis.com/auth/cloud-platform" body: type: IMPORT import_spec: source_storage_uri: ${"gs://" + args.CLOUD_STORAGE_BUCKET_ID + "/" + WORKFLOW_ID + "/"} entry_sync_mode: FULL aspect_sync_mode: INCREMENTAL scope: entry_groups: - ${"projects/" + args.TARGET_PROJECT_ID + "/locations/" + args.CLOUD_REGION + "/entryGroups/"+args.TARGET_ENTRY_GROUP_ID} entry_types: -"projects/PROJECT/locations/LOCATION/entryTypes/oracle-instance" -"projects/PROJECT/locations/LOCATION/entryTypes/oracle-database" -"projects/PROJECT/locations/LOCATION/entryTypes/oracle-schema" -"projects/PROJECT/locations/LOCATION/entryTypes/oracle-table" -"projects/PROJECT/locations/LOCATION/entryTypes/oracle-view" aspect_types: -"projects/PROJECT/locations/LOCATION/aspectTypes/oracle-instance" -"projects/dataplex-types/locations/global/aspectTypes/schema" -"projects/PROJECT/locations/LOCATION/aspectTypes/oracle-database" -"projects/PROJECT/locations/LOCATION/aspectTypes/oracle-schema" -"projects/PROJECT/locations/LOCATION/aspectTypes/oracle-table" -"projects/PROJECT/locations/LOCATION/aspectTypes/oracle-view" result: IMPORT_JOB_RESPONSE
API メソッドを手動で呼び出したときに指定したエントリタイプとアスペクト タイプを指定します。各文字列の末尾にカンマがないことを確認してください。
ワークフローを実行するときに、次のランタイム引数を指定します。
{ "CLOUD_REGION": "us-central1", "ORACLE_USER": "system", "ORACLE_HOST_PORT": "x.x.x.x:1521", "ORACLE_DATABASE": "xe", "ADDITIONAL_CONNECTOR_ARGS": [], }
省略可: Cloud Logging を使用して、マネージド接続パイプラインのログを表示します。ログペイロードには、関連する場合は、Dataproc Serverless バッチジョブとメタデータ インポート ジョブのログへのリンクが含まれます。詳細については、ワークフローのログを表示するをご覧ください。
省略可: マネージド接続パイプラインのセキュリティ、パフォーマンス、機能を改善するには、次の点を検討してください。
- Secret Manager を使用して、サードパーティのデータソースの認証情報を保存します。
- PySpark を使用して、JSON Lines 出力を複数のメタデータ インポート ファイルに並行して書き込みます。
- 接頭辞を使用して、大きなファイル(100 MB 超)を小さなファイルに分割します。
- ソースからビジネス メタデータと技術メタデータを追加でキャプチャするカスタム アスペクトを追加します。
Oracle ソースの Dataplex Catalog リソースの例
このサンプル コネクタは、Oracle データベースからメタデータを抽出し、メタデータを対応する Dataplex Catalog リソースにマッピングします。
階層に関する考慮事項
Dataplex のすべてのシステムには、システムの親エントリであるルートエントリがあります。通常、ルートエントリには instance
エントリタイプがあります。次の表に、Oracle システムのエントリタイプとアスペクト タイプの階層の例を示します。
エントリタイプ ID | 説明 | リンクされたアスペクト タイプ ID |
---|---|---|
oracle-instance |
インポートされたシステムのルート。 | oracle-instance |
oracle-database |
Oracle データベース。 | oracle-database |
oracle-schema |
データベース スキーマ。 | oracle-schema |
oracle-table |
テーブル。 |
|
oracle-view |
ビュー。 |
|
schema
アスペクト タイプは、Dataplex によって定義されたグローバル アスペクト タイプです。テーブル、ビュー、または列を持つその他のエンティティのフィールドの説明が含まれています。oracle-schema
カスタム アスペクト タイプには、Oracle データベース スキーマの名前が含まれます。
インポート アイテム フィールドの例
コネクタは、Oracle リソースに次の規則を使用する必要があります。
-
完全修飾名: Oracle リソースの完全修飾名には、次の命名テンプレートを使用します。禁止文字はバッククォートを使用してエスケープします。
リソース テンプレート 例 インスタンス SOURCE
:ADDRESS
システムのホストとポート番号またはドメイン名を使用します。
oracle:`localhost:1521`
またはoracle:`myinstance.com`
データベース SOURCE
:ADDRESS
.DATABASE
oracle:`localhost:1521`.xe
スキーマ SOURCE
:ADDRESS
.DATABASE
.SCHEMA
oracle:`localhost:1521`.xe.sys
テーブル SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.TABLE_NAME
oracle:`localhost:1521`.xe.sys.orders
ビュー SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.VIEW_NAME
oracle:`localhost:1521`.xe.sys.orders_view
-
エントリ名またはエントリ ID: Oracle リソースのエントリには、次の命名テンプレートを使用します。禁止されている文字は、許可されている文字に置き換えられます。リソースには接頭辞
projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/entries
を使用します。リソース テンプレート 例 インスタンス PREFIX
/HOST_PORT
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521
データベース PREFIX
/HOST_PORT
/databases/DATABASE
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe
スキーマ PREFIX
/HOST_PORT
/databases/DATABASE
/database_schemas/SCHEMA
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe/database_schemas/sys
テーブル PREFIX
/HOST_PORT
/databases/DATABASE
/database_schemas/SCHEMA
/tables/TABLE
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe/database_schemas/sys/tables/orders
ビュー PREFIX
/HOST_PORT
/databases/DATABASE
/database_schemas/SCHEMA
/views/VIEW
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe/database_schemas/sys/views/orders_view
-
親エントリ: エントリがシステムのルートエントリでない場合、エントリには階層内の位置を記述する親エントリ フィールドを含めることができます。このフィールドには、親エントリの名前を指定します。この値は生成することをおすすめします。
次の表に、Oracle リソースの親エントリを示します。
エントリ 親エントリ インスタンス ""
(空の文字列)データベース インスタンス名 スキーマ データベース名 テーブル スキーマ名 ビュー スキーマ名 アスペクト マップ: アスペクト マップに、インポートするエンティティを記述するアスペクトを 1 つ以上含める必要があります。Oracle テーブルのアスペクト マップの例を次に示します。
"example-project.us-central1.oracle-table": { "aspect_type": "example-project.us-central1.oracle-table", "path": "", "data": {} },
dataplex-types
プロジェクトのテーブルまたはビューの構造を定義する事前定義済みのアスペクト タイプ(schema
など)は、global
ロケーションにあります。-
アスペクトキー: アスペクトキーは PROJECT.LOCATION.ASPECT_TYPE という命名形式を使用します。次の表に、Oracle リソースのアスペクトキーの例を示します。
エントリ アスペクトキーの例 インスタンス example-project.us-central1.oracle-instance
データベース example-project.us-central1.oracle-database
スキーマ example-project.us-central1.oracle-schema
テーブル example-project.us-central1.oracle-table
ビュー example-project.us-central1.oracle-view