自訂連接器可讓您從第三方資料來源 (例如 MySQL、SQL Server 和 Oracle) 擷取中繼資料。接著,您可以透過代管連線管道,將這些中繼資料匯入 Knowledge Catalog (舊稱 Dataplex Universal Catalog)。如果資料來源沒有預先建構的連接器,您可以建構自訂連接器,以便編目、搜尋及管理資產。
您可以參考本頁的 PySpark 參考範本和 Oracle Database Express Edition (XE) 的 Python 連接器範例,開始建構自己的連接器。
連接器的運作方式
連接器會從第三方資料來源擷取中繼資料,將中繼資料轉換為 Knowledge Catalog ImportItem 格式,並產生可由 Knowledge Catalog 匯入的中繼資料匯入檔案。
連接器是代管連線管道的一部分。代管連線管道是自動化調度管理的工作流程,用於匯入 Knowledge Catalog 中繼資料。代管連線能力管道會執行連接器,並執行匯入工作流程中的其他工作,例如執行中繼資料匯入工作和擷取記錄。
代管連線管道會使用 Managed Service for Apache Spark 批次工作執行連接器。Managed Service for Apache Spark 提供無伺服器 Spark 執行環境。雖然您可以建構不使用 Spark 的連接器,但建議您使用 Spark,因為這可以提升連接器的效能。您可以使用 Python、Java、Scala 或 R 開發連接器。
連接器需求
連接器必須符合下列條件:
- 連接器必須是可在 Managed Service for Apache Spark 上執行的 Artifact Registry 映像檔。
- 連接器必須以 Knowledge Catalog 中繼資料匯入工作 (
metadataJobs.createAPI 方法) 可匯入的格式,產生中繼資料檔案。如需詳細規定,請參閱「中繼資料匯入檔案」。 連接器必須接受下列指令列引數,才能從管道接收資訊:
指令列引數 管道提供的價值 target_project_idPROJECT_ID target_location_idREGION target_entry_group_idENTRY_GROUP_ID output_bucketCLOUD_STORAGE_BUCKET_ID output_folderFOLDER_ID 連接器會使用這些引數,在目標項目群組
projects/PROJECT_ID/locations/REGION/entryGroups/ENTRY_GROUP_ID中產生中繼資料,並寫入 Cloud Storage bucketgs://CLOUD_STORAGE_BUCKET_ID/FOLDER_ID。每次執行管道時,系統都會在 bucket 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()))
])
事前準備
本頁範例使用 Oracle Database Express Edition (XE) 的 Python 連接器,並假設您熟悉 Python 和 PySpark。
查看下列資訊:
請執行下列操作。在同一個 Google Cloud位置建立所有資源。
-
選取或建立專案所需的角色
- 選取專案:選取專案時不需要特定 IAM 角色,只要您獲派某個專案的角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Dataplex、Dataproc、Workflows 和 Artifact Registry API (如有尚未啟用的 API):
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dataplex.googleapis.com
dataproc.googleapis.com workflows.googleapis.com artifactregistry.googleapis.com -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
將角色授予使用者帳戶。針對下列各個 IAM 角色執行下列指令一次:
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.aspectTypeOwnergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
-
設定驗證方法:
-
確認您具備「建立服務帳戶」IAM 角色 (
roles/iam.serviceAccountCreator) 和「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin)。瞭解如何授予角色。 -
建立服務帳戶:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
將
SERVICE_ACCOUNT_NAME替換為服務帳戶名稱。 -
將
roles/ownerIAM 角色授予服務帳戶:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
更改下列內容:
SERVICE_ACCOUNT_NAME:服務帳戶名稱PROJECT_ID:建立服務帳戶的專案 ID
-
確認您具備「建立服務帳戶」IAM 角色 (
-
建立 Cloud Storage bucket,用於儲存中繼資料匯入檔案。
-
在同一個專案中建立下列中繼資料資源。
如需範例值,請參閱本文件的「Oracle 來源的中繼資料資源範例」一節。
- 請確認您的 Google Cloud 專案可以存取第三方來源。詳情請參閱「Managed Service for Apache Spark 網路設定」。
建立基本 Python 連接器
基本 Python 連接器範例會使用 Knowledge Catalog 用戶端程式庫類別,為 Oracle 資料來源建立頂層項目。接著,您需要提供輸入欄位的值。
連接器會建立中繼資料匯入檔案,其中包含下列項目:
instance項目,項目類型為projects/PROJECT_ID/locations/LOCATION/entryTypes/oracle-instance。這個項目代表 Oracle Database XE 系統。database項目,代表 Oracle Database XE 系統中的資料庫。
如要建構基本的 Python 連接器,請按照下列步驟操作:
設定本機環境。建議您使用虛擬環境。
mkdir venv python -m venv venv/ source venv/bin/activate建立 Python 專案。
安裝需求:
pip install -r requirements.txt已安裝下列必要項目:
在專案根目錄中新增
main.py管道檔案。將程式碼部署至 Managed Service for Apache Spark 時,
main.py檔案會做為執行作業的進入點。建議您盡量減少儲存在main.py檔案中的資訊量;使用這個檔案呼叫連接器中定義的函式和類別,例如src/bootstrap.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的中繼資料匯入檔案。檔案有兩行,每行代表一個匯入項目。執行中繼資料匯入工作時,代管連線管道會讀取這個檔案。選用:擴充上一個範例,使用 Knowledge Catalog 用戶端程式庫類別,為資料表、結構定義和檢視表建立匯入項目。您也可以在 Managed Service for Apache Spark 執行 Python 範例。
建議您建立使用 Spark (並在 Managed Service for Apache Spark 上執行) 的連接器,因為這樣可以提升連接器的效能。
建立 PySpark 連接器
這個範例是以 PySpark DataFrame API 為基礎。您可以先安裝 PySpark SQL 並在本機執行,再於 Managed Service for Apache Spark 執行。如果您在本機安裝並執行 PySpark,請使用 pip 安裝 PySpark 程式庫,但不需要安裝本機 Spark 叢集。
基於效能考量,這個範例不會使用 PySpark 程式庫中預先定義的類別。而是建立 DataFrame、將 DataFrame 轉換為 JSON 項目,然後將輸出內容寫入 JSON Lines 格式的中繼資料匯入檔案,以便匯入 Knowledge Catalog。
如要使用 PySpark 建構連接器,請按照下列步驟操作:
安裝 PySpark:
pip install pyspark安裝需求:
pip install -r requirements.txt已安裝下列必要項目:
更新
oracle_connector.py檔案,加入程式碼來讀取 Oracle 資料來源的資料,並傳回 DataFrame。新增 SQL 查詢,傳回要匯入的中繼資料。查詢必須傳回下列資訊:
- 資料庫結構定義
- 屬於這些結構定義的資料表
- 屬於這些資料表的資料欄,包括資料欄名稱、資料欄資料類型,以及資料欄是否可為空值或必要
所有資料表和檢視表的所有資料欄,都會儲存在同一個系統資料表中。您可以使用
_get_columns方法選取資料欄。您可以根據提供的參數,分別選取資料表或檢視表的資料欄。注意事項:
- 在 Oracle 中,資料庫結構定義由資料庫使用者擁有,且名稱與該使用者相同。
- 結構定義物件是由使用者建立的邏輯結構。資料表或索引等物件可以保存資料,而檢視表或同義詞等物件則僅由定義組成。
ojdbc11.jar檔案包含 Oracle JDBC 驅動程式。
使用共用方法更新
src/entry_builder.py檔案,以套用 Spark 轉換。注意事項:
- 這些方法會建構連接器為 Oracle 資源建立的中繼資料資源。請使用本文件「Oracle 來源的中繼資料資源範例」一節所述的慣例。
convert_to_import_items方法適用於結構定義、資料表和檢視表。請確認連接器的輸出內容是一或多個可由metadataJobs.create方法處理的匯入項目,而非個別項目。- 即使在檢視表中,資料欄也稱為
TABLE_NAME。
使用程式碼更新
bootstrap.py檔案,產生中繼資料匯入檔案並執行連接器。這個範例會將中繼資料匯入檔案儲存為單一 JSON Lines 檔案。您可以使用 PySpark 工具 (例如
DataFrameWriter類別) 平行輸出 JSON 批次。連接器可以不限順序,將項目寫入中繼資料匯入檔案。
更新
gcs_uploader.py檔案,加入程式碼,將中繼資料匯入檔案上傳至 Cloud Storage bucket。建構連接器映像檔。
如果連接器包含多個檔案,或您想使用預設 Docker 映像檔未包含的程式庫,則必須使用自訂容器。Managed Service for Apache Spark 會在 Docker 容器中執行工作負載。建立連接器的自訂 Docker 映像檔,並將映像檔儲存在 Artifact Registry。Managed Service for Apache Spark 會從 Artifact Registry 讀取映像檔。
建立 Dockerfile:
使用 Conda 做為套件管理工具。Managed Service for Apache Spark 會在執行階段將
pyspark掛接至容器,因此您不必在自訂容器映像檔中安裝 PySpark 依附元件。建構自訂容器映像檔,並推送至 Artifact Registry。
由於一個映像檔可以有多個名稱,您可以使用 Docker 標記為映像檔指派別名。
在 Managed Service for Apache Spark 執行連接器。如要使用自訂容器映像檔提交 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 bucket。
- JAR 檔案是 Spark 的驅動程式。如要從 Oracle、MySQL 或 Postgres 讀取資料,您必須為 Apache Spark 提供特定套件。套件可以位於 Cloud Storage 或容器內。如果 JAR 檔案位於容器內,路徑會類似
如要手動將中繼資料匯入檔案中的中繼資料匯入 Knowledge 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切面類型是由 Knowledge Catalog 定義的全域切面類型。請注意,呼叫 API 方法時,切面類型名稱的格式與連接器程式碼中使用的格式不同。
選用:使用 Cloud Logging 查看中繼資料工作的記錄。詳情請參閱「監控 Knowledge Catalog 記錄」。
設定管道自動化調度管理
前幾節說明如何建構範例連接器,並手動執行連接器。
在正式環境中,您可以使用 Workflows 等自動化調度管理平台,將連接器做為代管連線管道的一部分執行。
如要使用範例連接器執行代管連線管道,請按照使用 Workflows 匯入中繼資料的步驟操作。請採取下列行動:
- 在與連接器相同的 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.ORACLE_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.createAPI 方法,執行中繼資料匯入工作。- 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 查看代管連線管道的記錄。記錄酬載包含 Managed Service for Apache Spark 批次工作和中繼資料匯入工作的記錄連結 (如適用)。詳情請參閱「查看工作流程記錄」。
選用:如要提升代管連線管道的安全性、效能和功能,建議您採取下列做法:
- 使用 Secret Manager 儲存第三方資料來源的憑證。
- 使用 PySpark 將 JSON Lines 輸出內容同時寫入多個中繼資料匯入檔案。
- 使用前置字元將大型檔案 (超過 100 MB) 分割成較小的檔案。
- 新增更多自訂切面,從來源擷取其他業務和技術中繼資料。
Oracle 來源的中繼資料資源範例
範例連接器會從 Oracle 資料庫擷取中繼資料,並將中繼資料對應至對應的 Knowledge Catalog 中繼資料資源。
階層注意事項
Knowledge Catalog 中的每個系統都有一個根項目,也就是系統的父項項目。根項目通常具有 instance 項目類型。下表顯示 Oracle 系統的項目類型和切面類型階層範例。舉例來說,oracle-database 項目類型會連結至同樣名為 oracle-database 的切面類型。
| 項目類型 ID | 說明 | 連結的切面類型 ID |
|---|---|---|
oracle-instance |
匯入系統的根目錄。 | oracle-instance |
oracle-database |
Oracle 資料庫。 | oracle-database |
oracle-schema |
資料庫結構定義。 | oracle-schema |
oracle-table |
表格。 |
|
oracle-view |
檢視表。 |
|
schema 切面類型是由 Knowledge Catalog 定義的全域切面類型。其中包含資料表、檢視表或其他實體中欄位的說明。oracle-schema 自訂切面類型包含 Oracle 資料庫結構定義的名稱。
匯入項目欄位範例
連接器應對 Oracle 資源使用下列慣例。
-
完整名稱:Oracle 資源的完整名稱使用下列命名範本。禁止使用的字元會以反引號逸出。
資源 範本 範例 執行個體 SOURCE:ADDRESS請使用系統的主機和通訊埠號碼,或網域名稱。
oracle:`localhost:1521`或oracle:`myinstance.com`資料庫 SOURCE:ADDRESS.DATABASEoracle:`localhost:1521`.xe結構定義 SOURCE:ADDRESS.DATABASE.SCHEMAoracle:`localhost:1521`.xe.sys資料表 SOURCE:ADDRESS.DATABASE.SCHEMA.TABLE_NAMEoracle:`localhost:1521`.xe.sys.orders查看 SOURCE:ADDRESS.DATABASE.SCHEMA.VIEW_NAMEoracle:`localhost:1521`.xe.sys.orders_view -
項目名稱或項目 ID:Oracle 資源的項目會使用下列命名範本。系統會將禁止使用的字元替換為允許使用的字元。資源會使用前置字串
projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/entries。資源 範本 範例 執行個體 PREFIX/HOST_PORTprojects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521資料庫 PREFIX/HOST_PORT/databases/DATABASEprojects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe結構定義 PREFIX/HOST_PORT/databases/DATABASE/database_schemas/SCHEMAprojects/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/TABLEprojects/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/VIEWprojects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe/database_schemas/sys/views/orders_view -
父項項目:如果項目不是系統的根項目,則該項目可以有父項項目欄位,用於描述其在階層中的位置。這個欄位應包含父項項目的名稱。建議您產生這個值。
下表列出 Oracle 資源的父項項目。
項目 上層項目 執行個體 ""(空字串)資料庫 執行個體名稱 結構定義 資料庫名稱 資料表 結構定義名稱 查看 結構定義名稱 Aspect map:aspect map 必須包含至少一個描述要匯入實體的 aspect。以下是 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