Questo documento fornisce un modello di riferimento per creare un connettore personalizzato che estrae i metadati da un'origine di terze parti. Utilizza il connettore quando esegui una pipeline di connettività gestita che importa i metadati in Dataplex.
Puoi creare connettori per estrarre metadati da fonti di terze parti. Per Ad esempio, puoi creare un per estrarre i dati da origini come MySQL, SQL Server, Oracle Snowflake, Databricks e altri.
Utilizza il connettore di esempio in questo documento come punto di partenza per creare il tuo connettori. Il connettore di esempio si connette a un database Oracle Database Express Edition (XE). Il connettore è realizzato in Python, anche se puoi utilizzare anche Java, Scala o R.
Come funzionano i connettori
Un connettore estrae i metadati da un'origine dati di terze parti, trasforma
di metadati in formato Dataplex ImportItem
e genera
e i file di importazione dei metadati che possono essere importati da Dataplex.
Il connettore fa parte di una pipeline di connettività gestita. Una pipeline di connettività gestita è un flusso di lavoro orchestrato che utilizzi per importare i metadati di Dataplex Catalog. La pipeline di connettività gestita esegue il connettore ed esegue altre attività nel flusso di lavoro di importazione, ad esempio l'esecuzione di un job di importazione dei metadati e l'acquisizione dei log.
La pipeline di connettività gestita esegue il connettore utilizzando un job batch Dataproc Serverless. Dataproc Serverless fornisce un'interfaccia un ambiente di esecuzione Spark serverless. Sebbene sia possibile creare un connettore non utilizza Spark, ti consigliamo di utilizzare Spark perché può migliorare delle prestazioni del tuo connettore.
Requisiti del connettore
Il connettore presenta i seguenti requisiti:
- Il connettore deve essere un'immagine Artifact Registry che può essere eseguita su Dataproc Serverless.
- Il connettore deve generare file di metadati in un formato che possa essere importato da un job di importazione dei metadati Dataplex (metodo dell'
metadataJobs.create
API). Per i requisiti dettagliati, vedi File di importazione dei metadati. Il connettore deve accettare i seguenti argomenti della riga di comando per ricevere informazioni dalla pipeline:
Argomento della riga di comando Valore fornito dalla pipeline 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 Il connettore utilizza questi argomenti per generare metadati in un gruppo di voci di destinazione
projects/PROJECT_ID/locations/REGION/entryGroups/ENTRY_GROUP_ID
e per scrivere in un bucket Cloud Storagegs://CLOUD_STORAGE_BUCKET_ID/FOLDER_ID
. Ogni esecuzione della pipeline crea una nuova cartella FOLDER_ID nel bucket CLOUD_STORAGE_BUCKET_ID. Il connettore deve scrivere i file di importazione dei metadati in questa cartella.
I modelli di pipeline supportano i connettori PySpark. I modelli presuppongono che il conducente
(mainPythonFileUri
)
è un file locale sull'immagine del connettore denominato main.py
. Puoi modificare
modelli di pipeline per altri scenari, ad esempio un connettore Spark,
l'URI del driver o altre opzioni.
Ecco come utilizzare PySpark per creare un elemento di importazione nell'importazione dei metadati .
"""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()))
])
Prima di iniziare
Questa guida presuppone che tu abbia dimestichezza con Python e PySpark.
Esamina le seguenti informazioni:
- Concetti sui metadati di Dataplex Catalog
- Documentazione sui job di importazione dei metadati
Procedi nel seguente modo. Crea tutte le risorse nello stesso account Google Cloud in ogni località.
-
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
-
-
Crea un bucket Cloud Storage per memorizzare i file di importazione dei metadati.
-
Crea le seguenti risorse Dataplex Catalog nello stesso progetto.
Per valori di esempio, consulta la sezione Risorse di Dataplex Catalog di esempio per un'origine Oracle di questo documento.
- Crea un gruppo di voci.
-
Creare tipi di aspetto personalizzati per le voci che vuoi importare. Utilizza la convenzione di denominazione
SOURCE
-ENTITY_TO_IMPORT
.Facoltativamente, puoi creare tipi di aspetto aggiuntivi per archiviare altre informazioni.
-
Crea tipi di voci personalizzate per le risorse che vuoi importare e assegna loro i tipi di aspetti pertinenti. Utilizza la convenzione di denominazione
SOURCE
-ENTITY_TO_IMPORT
.Ad esempio, per un database Oracle, crea un tipo di voce denominato
oracle-database
. Collegalo al tipo di aspetto denominatooracle-database
.
- Assicurati che l'origine di terze parti sia accessibile dal tuo progetto Google Cloud. Per ulteriori informazioni, consulta Configurazione di rete di Dataproc Serverless per Spark.
crea un connettore Python di base
Il connettore Python di base di esempio crea voci di primo livello per un Origine dati Oracle utilizzando le classi della libreria client Dataplex. Poi, fornisci i valori per i campi di immissione.
Il connettore crea un file di importazione dei metadati con le seguenti voci:
- Una voce
instance
, con tipo di voceprojects/PROJECT_ID/locations/LOCATION/entryTypes/oracle-instance
. Questa voce rappresenta un sistema Oracle Database XE. - Una voce
database
, che rappresenta un database all'interno di Oracle Database XE di un sistema operativo completo.
Per creare un connettore Python di base, segui questi passaggi:
Clona il Repository
cloud-dataplex
.Configura un ambiente locale. Ti consigliamo di utilizzare un ambiente virtuale.
mkdir venv python -m venv venv/ source venv/bin/activate
Utilizza la attivo o manutenzione le versioni di Python. Sono supportate le versioni Python 3.7 e successive.
Crea un progetto Python.
Requisiti di installazione:
pip install -r requirements.txt
Sono installati i seguenti requisiti:
Aggiungi un file di pipeline
main.py
nella directory principale del progetto.Quando esegui il deployment del codice in Dataproc Serverless, il file
main.py
funge da punto di contatto per l'esecuzione. Ti consigliamo di ridurre al minimo la quantità di informazioni memorizzate nel filemain.py
; utilizza questo file per chiamare funzioni e classi definite all'interno del connettore, come la classesrc/bootstap.py
.Crea una cartella
src
per archiviare la maggior parte della logica del connettore.Aggiorna il file
src/cmd_reader.py
con una classe Python per accettare la riga di comando argomenti. Puoi utilizzare lo argeparse in questo modulo.Negli ambienti di produzione, ti consigliamo di archiviare la password in Secret Manager.
Aggiorna il file
src/constants.py
con il codice per creare costanti.Aggiorna il file
src/name_builder.py
con i metodi per creare il Risorse Dataplex Catalog che devono essere create dal connettore per le risorse Oracle. Utilizza le convenzioni descritte nel Risorse di Dataplex Catalog di esempio per un'origine Oracle di questo documento.Poiché il file
name_builder.py
viene utilizzato sia per il codice di base di Python sia per il codice di base di PySpark, ti consigliamo di scrivere i metodi come funzioni pure anziché come membri di una classe.Aggiorna il file
src/top_entry_builder.py
con il codice per compilare le voci di primo livello con i dati.Aggiorna il file
src/bootstrap.py
con il codice per generare il file di importazione dei metadati ed eseguire il connettore.Esegui il codice in locale.
Viene restituito un file di importazione dei metadati denominato
output.jsonl
. Il file contiene due linee, ciascuna delle quali rappresenta un elemento di importazione. La pipeline di connettività gestita legge questo file quando esegui il job di importazione dei metadati.(Facoltativo) Estendi l'esempio precedente per utilizzare le classi della libreria client Dataplex per creare elementi di importazione per tabelle, schemi e visualizzazioni. Puoi anche eseguire l'esempio Python su Dataproc Serverless.
Ti consigliamo di creare un connettore che utilizzi Spark (ed esegue su Dataproc Serverless), perché può migliorare delle prestazioni del tuo connettore.
Crea un connettore PySpark
Questo esempio si basa sull'API DataFrame di PySpark. Puoi installare PySpark SQL ed eseguirlo in locale prima in esecuzione su Dataproc Serverless. Se installi ed esegui PySpark localmente, installa la libreria PySpark utilizzando pip, ma non è necessario installare un cluster Spark locale.
Ai fini delle prestazioni, questo esempio non utilizza le classi predefinite del nella libreria PySpark. L'esempio crea invece DataFrame, li converte in voci JSON e poi scrive l'output in un file di importazione dei metadati in formato JSON Lines che può essere importato in Dataplex.
Per creare un connettore utilizzando PySpark:
Clona il Repository
cloud-dataplex
.Installa PySpark:
pip install pyspark
Requisiti di installazione:
pip install -r requirements.txt
Sono installati i seguenti requisiti:
Aggiorna il file
oracle_connector.py
con il codice per leggere i dati da un'origine dati Oracle e restituire DataFrame.Aggiungi query SQL per restituire i metadati da importare. Le query devono restituire le seguenti informazioni:
- Schemi di database
- Tabelle che appartengono a questi schemi
- Colonne appartenenti a queste tabelle, inclusi il nome della colonna, il tipo di dato della colonna e se la colonna è nullable o obbligatoria
Le colonne di tutte le tabelle e le visualizzazioni vengono archiviate nello stesso tabella di sistema. Puoi selezionare le colonne con il metodo
_get_columns
. A seconda dei parametri forniti, puoi selezionare le colonne per per le tabelle o per le viste separatamente.Tieni presente quanto segue:
- In Oracle, uno schema di database è di proprietà di un utente del database e ha lo stesso nome dell'utente.
- Gli oggetti dello schema sono strutture logiche create dagli utenti. Oggetti come tabelle o indici possono contenere dati, mentre oggetti come viste o sinonimi sono costituiti solo da una definizione.
- Il file
ojdbc11.jar
contiene il driver JDBC Oracle.
Aggiorna il file
src/entry_builder.py
con metodi condivisi per l'applicazione delle trasformazioni Spark.Tieni presente quanto segue:
- I metodi creano alle risorse Dataplex Catalog che il connettore per le risorse Oracle. Utilizza le convenzioni descritte nel Risorse di Dataplex Catalog di esempio per un'origine Oracle di questo documento.
- Il metodo
convert_to_import_items
si applica a schemi, tabelle e viste. Assicurati che l'output del connettore sia costituito da uno o più elementi di importazione che possono essere elaborati dal metodometadataJobs.create
, non da singole voci. - Anche in una visualizzazione, la colonna si chiama
TABLE_NAME
.
Aggiorna il file
bootstrap.py
con il codice per generare il file di importazione dei metadati ed eseguire il connettore.In questo esempio il file di importazione dei metadati viene salvato come singolo file JSON Lines. Tu puoi utilizzare strumenti PySpark come la classe
DataFrameWriter
per generare batch di JSON in parallelo.Il connettore può scrivere voci nel file di importazione dei metadati in qualsiasi ordine.
Aggiorna il file
gcs_uploader.py
con il codice per caricare l'importazione dei metadati in un bucket Cloud Storage.Crea l'immagine del connettore.
Se il connettore contiene più file o se vuoi utilizzare librerie non incluse nell'immagine Docker predefinita, devi utilizzare un contenitore personalizzato. Dataproc Serverless per Spark esegue i carichi di lavoro all'interno di container Docker. crea un'immagine Docker personalizzata del connettore e archivia in Artifact Registry. Dataproc Serverless legge l'immagine da Artifact Registry.
Crea un Dockerfile:
Utilizza Conda come gestore dei pacchetti. Dataproc serverless per Spark monta
pyspark
nel container in fase di runtime, quindi non devi installare le dipendenze PySpark nell'immagine del container personalizzato.Crea l'immagine container personalizzata ed eseguine il push ad Artifact Registry.
Poiché un'immagine può avere più nomi, puoi utilizzare il tag Docker per assegnare un alias all'immagine.
Esegui il connettore su Dataproc Serverless. Per inviare un job batch PySpark utilizzando l'immagine container personalizzata, esegui il comando
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
Tieni presente quanto segue:
- I file JAR sono i driver per Spark. Per leggere da Oracle, MySQL o
Postgres, devi fornire ad Apache Spark un pacchetto specifico. Il pacchetto può trovarsi in Cloud Storage o all'interno del contenitore. Se
JAR si trova all'interno del container, il percorso è simile a
file:///path/to/file/driver.jar
. In questo esempio, il percorso del file JAR è/opt/spark/jars/
. - PIPELINE_ARGUMENTS sono gli argomenti della riga di comando per il connettore.
Il connettore estrae i metadati dal database Oracle, genera un file di importazione dei metadati e salva il file di importazione dei metadati nel bucket Cloud Storage.
- I file JAR sono i driver per Spark. Per leggere da Oracle, MySQL o
Postgres, devi fornire ad Apache Spark un pacchetto specifico. Il pacchetto può trovarsi in Cloud Storage o all'interno del contenitore. Se
JAR si trova all'interno del container, il percorso è simile a
Per importare manualmente i metadati nel file di importazione dei metadati in Dataplex, esegui un job di metadati. Utilizza la Metodo
metadataJobs.create
.Nella riga di comando, aggiungi variabili di ambiente e crea un alias per il comando 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"'
Chiama il metodo API, passando i tipi di voci e di aspetti che vuoi importare.
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 )"
Il tipo di aspetto
schema
è un tipo di aspetto globale definito da Dataplex.Tieni presente che il formato utilizzato per i nomi dei tipi di aspetti quando chiami il metodo dell'API è diverso da quello utilizzato nel codice del connettore.
(Facoltativo) Utilizza Cloud Logging per visualizzare i log del job dei metadati. Per maggiori informazioni, consulta Monitorare i log di Dataplex.
Configurare l'orchestrazione della pipeline
Le sezioni precedenti hanno mostrato come creare un connettore di esempio ed eseguire manualmente il connettore.
In un ambiente di produzione, il connettore viene eseguito come parte di un una pipeline di connettività mediante una piattaforma di orchestrazione come Workflows.
Per eseguire una pipeline di connettività gestita con il connettore di esempio, segui le passaggi per importare i metadati utilizzando Workflows. Esegui le seguenti operazioni:
- Crea il flusso di lavoro nella stessa posizione Google Cloud del connettore.
Nel file di definizione del flusso di lavoro, aggiorna la funzione
submit_pyspark_extract_job
con il seguente codice per estrarre i dati dal database Oracle utilizzando il connettore che hai creato.- 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
Aggiorna la funzione
submit_import_job
nel file di definizione del flusso di lavoro con il seguente codice per importare le voci. La funzione chiama il metodo dell'APImetadataJobs.create
per eseguire un job di importazione dei metadati.- 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
Fornisci gli stessi tipi di voci e tipi di aspetti che hai incluso quando hai chiamato manualmente il metodo dell'API. Tieni presente che non è presente una virgola alla fine di ogni stringa.
Quando esegui il flusso di lavoro, fornisci i seguenti argomenti di runtime:
{ "CLOUD_REGION": "us-central1", "ORACLE_USER": "system", "ORACLE_HOST_PORT": "x.x.x.x:1521", "ORACLE_DATABASE": "xe", "ADDITIONAL_CONNECTOR_ARGS": [], }
(Facoltativo) Utilizza Cloud Logging per visualizzare i log per la connettività gestita una pipeline o un blocco note personalizzato. Il payload di log include un link ai log per Il job batch serverless Dataproc e il job di importazione dei metadati, in base alla pertinenza. Per ulteriori informazioni, consulta Visualizzare i log del flusso di lavoro.
(Facoltativo) Per migliorare la sicurezza, le prestazioni e la funzionalità della pipeline di connettività gestita, ti consigliamo di procedere nel seguente modo:
- Utilizza Secret Manager per archiviare le credenziali per l'origine dati di terze parti.
- Utilizza PySpark per scrivere l'output JSON Lines in più file di importazione dei metadati in parallelo.
- Utilizza un prefisso per suddividere file di grandi dimensioni (più di 100 MB) in file più piccoli .
- Aggiungi altri aspetti personalizzati che acquisiscono metadati tecnici e aziendali aggiuntivi dall'origine.
Risorse di Dataplex Catalog di esempio per un'origine Oracle
Il connettore di esempio estrae i metadati da un database Oracle e li mappa alle risorse di Dataplex Catalog corrispondenti.
Considerazioni sulla gerarchia
Ogni sistema in Dataplex ha una voce principale che è la voce parente del sistema. In genere la voce principale ha un tipo di voce instance
.
La tabella seguente mostra la gerarchia di esempio di tipi di voce e tipi di aspetto
per un sistema Oracle.
ID tipo di voce | Descrizione | ID tipo di aspetto collegato |
---|---|---|
oracle-instance |
La radice del sistema importato. | oracle-instance |
oracle-database |
Il database Oracle. | oracle-database |
oracle-schema |
Lo schema del database. | oracle-schema |
oracle-table |
Una tabella. |
|
oracle-view |
Una visualizzazione. |
|
Il tipo di aspetto schema
è un tipo di aspetto globale definito da
Dataplex. Contiene una descrizione dei campi di una tabella,
di una vista o di un'altra entità con colonne. Il tipo di aspetto personalizzato oracle-schema
contiene il nome dello schema del database Oracle.
Esempi di campi di elementi di importazione
Il connettore deve utilizzare le seguenti convenzioni per le risorse Oracle.
-
Nomi completi: i nomi completi per le risorse Oracle utilizzano il seguente modello di denominazione. I caratteri vietati vengono interpretati come literali con le barre graffe.
Risorsa Modello Esempio Istanza SOURCE
:ADDRESS
Utilizza l'host e il numero di porta o il nome di dominio del sistema.
oracle:`localhost:1521`
ooracle:`myinstance.com`
Database SOURCE
:ADDRESS
.DATABASE
oracle:`localhost:1521`.xe
Schema SOURCE
:ADDRESS
.DATABASE
.SCHEMA
oracle:`localhost:1521`.xe.sys
Tabella SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.TABLE_NAME
oracle:`localhost:1521`.xe.sys.orders
Visualizza SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.VIEW_NAME
oracle:`localhost:1521`.xe.sys.orders_view
-
Nomi delle voci o ID delle voci: voci per le risorse Oracle utilizza il seguente modello di denominazione. I caratteri vietati vengono sostituiti carattere consentito. Le risorse utilizzano il prefisso
projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/entries
.Risorsa Modello Esempio Istanza PREFIX
/HOST_PORT
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521
Database PREFIX
/HOST_PORT
/databases/DATABASE
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe
Schema 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
Tabella 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
Visualizza 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
-
Voci padre: se una voce non è una voce principale per il sistema, la può avere un campo di immissione padre che ne descrive la posizione nell' nella gerarchia. Il campo deve contenere il nome della voce padre. Ti consigliamo di generare questo valore.
La tabella seguente mostra le voci principali per le risorse Oracle.
Voce Voce padre Istanza ""
(stringa vuota)Database Nome istanza Schema Nome database Tabella Nome schema Visualizza Nome schema Mappa aspetto: la mappa aspetto deve contenere almeno un aspetto che descrive l'entità da importare. Ecco un esempio di mappa degli aspetti per una tabella Oracle.
"example-project.us-central1.oracle-table": { "aspect_type": "example-project.us-central1.oracle-table", "path": "", "data": {} },
Puoi trovare tipi di aspetti predefiniti (ad esempio
schema
) che definiscono la struttura della tabella o della vista nel progettodataplex-types
, nella posizioneglobal
.-
Chiavi aspetto: le chiavi aspetto utilizzano il formato di denominazione. PROJECT.LOCATION.ASPECT_TYPE. La tabella seguente mostra esempi di chiavi di aspetto per le risorse Oracle.
Voce Chiave dell'aspetto di esempio Istanza example-project.us-central1.oracle-instance
Database example-project.us-central1.oracle-database
Schema example-project.us-central1.oracle-schema
Tabella example-project.us-central1.oracle-table
Visualizza example-project.us-central1.oracle-view