本文件提供參考範本,協助您建構自訂連接器,從第三方來源擷取中繼資料。當您執行受管理的連結管道時,就會使用這個連接器,將中繼資料匯入 Dataplex Universal Catalog。
您可以建立連接器,從第三方來源擷取中繼資料。舉例來說,您可以建立連接器,從 MySQL、SQL Server、Oracle、Snowflake、Databricks 等來源擷取資料。
請使用本文件中的範例連接器,做為建構自有連接器的起點。範例連接器會連線至 Oracle Database Express Edition (XE) 資料庫。連接器是使用 Python 建構,但您也可以使用 Java、Scala 或 R。
連接器的運作方式
連接器會從第三方資料來源擷取中繼資料,將中繼資料轉換為 Dataplex Universal Catalog ImportItem
格式,並產生可供 Dataplex Universal Catalog 匯入的中繼資料匯入檔案。
連接器是代管連線管道的一部分。管理式連線管道是用於匯入 Dataplex Universal Catalog 中繼資料的自動化調度管理工作流程。受管理的連線管道會執行連接器,並在匯入工作流程中執行其他工作,例如執行中繼資料匯入工作和擷取記錄。
管理式連線管道會使用 Dataproc Serverless 批次工作來執行連接器。Dataproc Serverless 提供無伺服器 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。
查看下列資訊:
請完成下列操作。在相同 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 Universal Catalog, 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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 值區,以儲存中繼資料匯入檔案。
-
在同一個專案中建立下列中繼資料資源。
如需值範例,請參閱本文件的「Oracle 來源的中繼資料資源範例」一節。
- 請確認第三方來源可從 Google Cloud 專案存取。詳情請參閱 Dataproc Serverless for Spark 網路設定。
instance
項目,項目類型為projects/PROJECT_ID/locations/LOCATION/entryTypes/oracle-instance
。這個項目代表 Oracle Database XE 系統。database
項目,代表 Oracle Database XE 系統中的資料庫。設定本機環境。建議您使用虛擬環境。
mkdir venv python -m venv venv/ source venv/bin/activate
建立 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 資源建立的中繼資料資源。請參閱本文件「Oracle 來源的中繼資料資源範例」一節所述的慣例。由於
name_builder.py
檔案會用於 Python 核心程式碼和 PySpark 核心程式碼,因此建議您將方法編寫為純函式,而非類別的成員。使用程式碼更新
src/top_entry_builder.py
檔案,以便為頂層項目填入資料。使用程式碼更新
src/bootstrap.py
檔案,產生中繼資料匯入檔案並執行連接器。在本機執行程式碼。
系統會傳回名為
output.jsonl
的中繼資料匯入檔案。這個檔案有兩行,每行代表一個匯入項目。執行中繼資料匯入作業時,受管理的連線管道會讀取這個檔案。選用:擴充先前的範例,使用 Dataplex Universal Catalog 用戶端程式庫類別,為資料表、結構定義和檢視畫面建立匯入項目。您也可以在 Dataproc Serverless 上執行 Python 範例。
建議您建立使用 Spark (並在 Dataproc Serverless 上執行) 的連接器,因為這麼做可以改善連接器的效能。
安裝 PySpark:
pip install pyspark
安裝需求:
pip install -r requirements.txt
安裝下列必要項目:
更新
oracle_connector.py
檔案的程式碼,以便從 Oracle 資料來源讀取資料並傳回 DataFrame。新增 SQL 查詢,傳回要匯入的中繼資料。查詢需要傳回下列資訊:
- 資料庫結構定義
- 屬於這些結構定義的資料表
- 屬於這些資料表的資料欄,包括資料欄名稱、資料欄資料類型,以及資料欄是否可為空值或為必填欄
所有資料表和視圖的所有欄都儲存在同一個系統表格中。您可以使用
_get_columns
方法選取資料欄。視您提供的參數而定,您可以分別為表格或檢視畫面選取資料欄。注意事項:
- 在 Oracle 中,資料庫結構定義由資料庫使用者擁有,且名稱與該使用者相同。
- 結構定義物件是使用者建立的邏輯結構。資料表或索引等物件可儲存資料,而檢視表或同義詞等物件則僅包含定義。
ojdbc11.jar
檔案包含 Oracle JDBC 驅動程式。
使用套用 Spark 轉換作業的共用方法更新
src/entry_builder.py
檔案。注意事項:
- 這些方法會建構連接器為 Oracle 資源建立的中繼資料資源。請參閱本文件「Oracle 來源的中繼資料資源範例」一節所述的慣例。
convert_to_import_items
方法適用於結構定義、資料表和檢視畫面。請確認連接器的輸出內容是一或多個可由metadataJobs.create
方法處理的匯入項目,而非個別項目。- 即使在檢視表中,資料欄也稱為
TABLE_NAME
。
使用程式碼更新
bootstrap.py
檔案,產生中繼資料匯入檔案並執行連接器。這個範例會將中繼資料匯入檔案儲存為單一 JSON Lines 檔案。您可以使用
DataFrameWriter
類別等 PySpark 工具,以平行方式輸出 JSON 批次。連接器可將項目以任意順序寫入中繼資料匯入檔案。
使用程式碼更新
gcs_uploader.py
檔案,將中繼資料匯入檔案上傳至 Cloud Storage 值區。建構連接器映像檔。
如果連接器包含多個檔案,或是您想要使用預設 Docker 映像檔中未包含的程式庫,則必須使用自訂容器。Dataproc Serverless for Spark 會在 Docker 容器中執行工作負載。建立連接器的自訂 Docker 映像檔,並將映像檔儲存在 Artifact Registry 中。Dataproc Serverless 會從 Artifact Registry 讀取映像檔。
建立 Dockerfile:
使用 Conda 做為套件管理工具。Dataproc Serverless for Spark 會在執行階段將
pyspark
掛載至容器,因此您不需要在自訂容器映像檔中安裝 PySpark 依附元件。建構自訂容器映像檔,並將其推送至 Artifact Registry。
由於單一映像檔可具有多個名稱,因此您可以使用 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 Universal Catalog,請執行中繼資料工作。請使用
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 Universal Catalog 定義的全域切面類型。請注意,呼叫 API 方法時用於切面型別名稱的格式,與連接器程式碼中使用的格式不同。
選用:使用 Cloud Logging 查看中繼資料工作記錄。詳情請參閱「監控 Dataplex Universal Catalog 記錄」。
如要使用範例連接器執行受管理的連結管道,請按照這篇文章中的步驟,使用工作流程匯入中繼資料。請執行下列操作:
- 請在與連接器相同的 Google Cloud 位置建立工作流程。
在工作流程定義檔案中,使用下列程式碼更新
submit_pyspark_extract_job
函式,以便使用您建立的連接器從 Oracle 資料庫中擷取資料。- 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 資源的完整名稱會使用下列命名範本。使用反斜線逸出禁止使用的字元。
資源 範本 範例 執行個體 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 資源的父項項目。
項目 上層項目 執行個體 ""
(空字串)資料庫 執行個體名稱 結構定義 資料庫名稱 資料表 結構定義名稱 查看 結構定義名稱 面向圖:面向圖必須至少包含一個面向,用於描述要匯入的實體。以下是 Oracle 資料表的切面對應圖範例。
"example-project.us-central1.oracle-table": { "aspect_type": "example-project.us-central1.oracle-table", "path": "", "data": {} },
您可以在
global
位置找到預先定義的面向類型 (例如schema
),這些類型會定義dataplex-types
專案中的資料表或檢視畫面結構。-
面向鍵:面向鍵使用 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
建立基本 Python 連接器
範例中的基本 Python 連接器會使用 Dataplex Universal Catalog 用戶端程式庫類別,為 Oracle 資料來源建立頂層項目。接著,您可以為輸入欄位提供值。
連接器會建立中繼資料匯入檔案,其中包含下列項目:
如要建構基本 Python 連接器,請按照下列步驟操作:
建立 PySpark 連接器
這個範例是以 PySpark DataFrame API 為基礎。您可以先在本機安裝 PySpark SQL 並執行,再將其用於 Dataproc Serverless。如果您在本機安裝及執行 PySpark,請使用 pip 安裝 PySpark 程式庫,但不需要安裝本機 Spark 叢集。
基於效能考量,這個範例不會使用 PySpark 程式庫中的預先定義類別。相反地,這個範例會建立 DataFrame、將 DataFrame 轉換為 JSON 項目,然後以 JSON Lines 格式將輸出內容寫入中繼資料匯入檔案,以便匯入 Dataplex 通用目錄。
如要使用 PySpark 建構連接器,請按照下列步驟操作:
設定管道調度管理
前幾節說明瞭如何建構示例連接器,以及手動執行連接器。
在實際工作環境中,您可以使用自動化調度管理平台 (例如工作流程),將連接器當做受管理連線管道的一部分來執行。
Oracle 來源的中繼資料資源範例
範例連接器會從 Oracle 資料庫中擷取中繼資料,並將中繼資料對應至相應的 Dataplex Universal 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 Universal Catalog 定義的全域切面類型。其中包含資料表、檢視畫面或其他具有欄位的實體中欄位的說明。oracle-schema
自訂面向類型包含 Oracle 資料庫結構定義的名稱。
匯入項目欄位範例
連接器應使用下列 Oracle 資源慣例。