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 i metadati da origini di terze parti. Ad esempio, puoi creare un connettore per estrarre i dati da origini come MySQL, SQL Server, Oracle, Snowflake, Databricks e altre.
Utilizza il connettore di esempio in questo documento come punto di partenza per creare i tuoi 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, li trasforma nel formato ImportItem
di Dataplex e genera 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 ambiente di esecuzione Spark serverless. Anche se puoi creare un connettore che non utilizza Spark, ti consigliamo di utilizzare Spark perché può migliorare le prestazioni del 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, consulta 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 driver
(mainPythonFileUri
)
sia un file locale nell'immagine del connettore denominato main.py
. Puoi modificare i modelli di pipeline per altri scenari, ad esempio un connettore Spark, un URI del driver diverso o altre opzioni.
Ecco come utilizzare PySpark per creare un elemento di importazione nel file di 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 familiarità con Python e PySpark.
Esamina le seguenti informazioni:
- Concetti relativi ai metadati di Dataplex Catalog
- Documentazione sui job di importazione dei metadati
Esegui le seguenti operazioni. Crea tutte le risorse nella stessa Google Cloud posizione.
-
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 di 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.
-
Crea tipi di aspetti personalizzati per le voci da importare. Utilizza la convenzione di denominazione
SOURCE
-ENTITY_TO_IMPORT
.Se vuoi, puoi creare altri tipi di aspetti per memorizzare 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.
Creare 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 del sistema Oracle Database XE.
Per creare un connettore Python di base:
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 le versioni attive o di manutenzione 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 della 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 gli argomenti della riga di comando. Per farlo, puoi utilizzare il modulo argeparse.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 le risorse Dataplex Catalog che vuoi che il connettore crei per le tue risorse Oracle. Utilizza le convenzioni descritte nella sezione Esempi di risorse Dataplex Catalog 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 localmente.
Viene restituito un file di importazione dei metadati denominato
output.jsonl
. Il file contiene due linee, ciascuna che rappresenta un elemento di importazione. La pipeline di connettività gestita legge questo file durante l'esecuzione del job di importazione dei metadati.(Facoltativo) Espandi 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 (e funzioni su Dataproc Serverless), in quanto può migliorare le prestazioni del connettore.
Crea un connettore PySpark
Questo esempio si basa sull'API DataFrame di PySpark. Puoi installare PySpark SQL ed eseguirlo localmente prima di eseguire l'esecuzione su Dataproc Serverless. Se installi ed esegui PySpark localmente, installa la libreria PySpark utilizzando pip, ma non è necessario installare un cluster Spark locale.
Per motivi di prestazioni, questo esempio non utilizza le classi predefinite della 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 che vuoi importare. Le query devono restituire le seguenti informazioni:
- Schemi di database
- Tabelle che appartengono a questi schemi
- Colonne che appartengono a queste tabelle, inclusi il nome della colonna, il tipo di dato della colonna e se la colonna è nullable o obbligatoria
Tutte le colonne di tutte le tabelle e le visualizzazioni sono archiviate nella stessa tabella di sistema. Puoi selezionare le colonne con il metodo
_get_columns
. A seconda dei parametri forniti, puoi selezionare le colonne per le tabelle o per le visualizzazioni 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. Gli 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 di Oracle.
Aggiorna il file
src/entry_builder.py
con metodi condivisi per l'applicazione delle trasformazioni Spark.Tieni presente quanto segue:
- I metodi creano le risorse Dataplex Catalog che il connettore genera per le risorse Oracle. Utilizza le convenzioni descritte nella sezione Esempi di risorse Dataplex Catalog 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.Questo esempio salva il file di importazione dei metadati come un singolo file JSON Lines. Puoi utilizzare gli strumenti PySpark come la classe
DataFrameWriter
per generare in parallelo batch di JSON.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 il file di 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 archiviala in Artifact Registry. Dataproc Serverless legge l'immagine da Artifact Registry.
Crea un Dockerfile:
Utilizza Conda come gestore dei pacchetti. Dataproc Serverless per Spark esegue il montaggio di
pyspark
nel contenitore in fase di esecuzione, quindi non devi installare le dipendenze PySpark nell'immagine del container personalizzato.Crea l'immagine container personalizzata ed eseguine il push in 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 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 il
file JAR è all'interno del contenitore, 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 lo salva in un bucket Cloud Storage.
- I file JAR sono 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 il
file JAR è all'interno del contenitore, il percorso è simile a
Per importare manualmente i metadati nel file di importazione dei metadati in Dataplex, esegui un job di metadati. Utilizza il metodo
metadataJobs.create
.Nella riga di comando, aggiungi le 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 eseguirlo manualmente.
In un ambiente di produzione, esegui il connettore all'interno di una pipeline di connettività gestita utilizzando una piattaforma di orchestrazione come Workflows.
Per eseguire una pipeline di connettività gestita con il connettore di esempio, segui i 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
Nel file di definizione del flusso di lavoro, aggiorna la funzione
submit_import_job
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 c'è una virgola alla fine di ogni stringa.
Quando esegui il workflow, 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 pipeline di connettività gestita. Il payload del log include un link ai log per il job batch Dataproc Serverless e il job di importazione dei metadati, se pertinente. 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 i 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 Dataplex Catalog corrispondenti.
Considerazioni sulla gerarchia
Ogni sistema in Dataplex ha una voce principale che è la voce principale del sistema. In genere la voce principale ha un tipo di voce instance
.
La tabella seguente mostra la gerarchia di esempio dei tipi di voci e dei tipi di aspetti 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 degli articoli 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 o ID voce: le voci per le risorse Oracle utilizzano il seguente modello di denominazione. I caratteri vietati vengono sostituiti con un 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
-
Voce principale: se una voce non è una voce principale per il sistema, può avere un campo voce principale che descrive la sua posizione nella gerarchia. Il campo deve contenere il nome della voce principale. Ti consigliamo di generare questo valore.
La tabella seguente mostra le voci principali per le risorse Oracle.
Voce Voce principale Istanza ""
(stringa vuota)Database Nome istanza Schema Nome database Tabella Nome schema Visualizza Nome schema Mappa degli aspetti: la mappa degli aspetti deve contenere almeno un aspetto che descriva 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 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