Este documento proporciona una plantilla de referencia para que compiles un conector personalizado que y extrae metadatos de una fuente externa. Usas el conector cuando ejecutas una canalización de conectividad administrada que importa metadatos a Dataplex.
Puedes compilar conectores para extraer metadatos de fuentes de terceros. Para ejemplo, puedes crear una para extraer datos de fuentes como MySQL, SQL Server, Oracle, Snowflake, Databricks y otros.
Usa el conector de ejemplo de este documento como punto de partida para crear tu propio de varios factores. El conector de ejemplo se conecta a una base de datos de Oracle Express Edition (XE). El conector se compila en Python, aunque también puedes usar Java, Scala o R.
Cómo funcionan los conectores
Un conector extrae metadatos de una fuente de datos de terceros, los transforma al formato ImportItem
de Dataplex y genera archivos de importación de metadatos que Dataplex puede importar.
El conector es parte de una canalización de conectividad administrada. Una cuenta administrada La canalización de conectividad es un flujo de trabajo organizado que se usa para importar Metadatos de Dataplex Catalog. La canalización de conectividad administrada ejecuta el conector y realiza otras tareas en el flujo de trabajo de importación, como ejecutar un trabajo de importación de metadatos y capturar registros.
La canalización de conectividad administrada ejecuta el conector con un trabajo por lotes de Dataproc Serverless. Dataproc Serverless proporciona un entorno de ejecución de Spark sin servidores. Aunque puedes crear un conector que no usa Spark, te recomendamos que uses Spark, ya que puede mejorar el el rendimiento del conector.
Requisitos de los conectores
El conector tiene los siguientes requisitos:
- El conector debe ser una imagen de Artifact Registry que se pueda ejecutar en Dataproc Serverless.
- El conector debe generar archivos de metadatos en un formato que pueda importar un trabajo de importación de metadatos de Dataplex (el método de la API de
metadataJobs.create
). Para ver los requisitos detallados, consulta Archivo de importación de metadatos. El conector debe aceptar los siguientes argumentos de línea de comandos para recibir de la canalización:
Argumento de línea de comandos Valor que proporciona la canalización 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 El conector usa estos argumentos para generar metadatos en un grupo de entrada de destino.
projects/PROJECT_ID/locations/REGION/entryGroups/ENTRY_GROUP_ID
: y a escribir en un bucket de Cloud Storagegs://CLOUD_STORAGE_BUCKET_ID/FOLDER_ID
Cada ejecución de la canalización crea una carpeta nueva FOLDER_ID en el bucket CLOUD_STORAGE_BUCKET_ID. El conector debe escribir de importación de metadatos a esta carpeta.
Las plantillas de canalización admiten conectores de PySpark. En las plantillas, se supone que el controlador (mainPythonFileUri
) es un archivo local en la imagen del conector llamada main.py
. Puedes modificar el
plantillas de canalización para otras situaciones, como un conector de Spark, una interfaz
el URI del controlador o alguna otra opción.
Usa PySpark para crear un elemento de importación en la importación de metadatos .
"""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()))
])
Antes de comenzar
En esta guía, se supone que estás familiarizado con Python y PySpark.
Revisa la siguiente información:
- Conceptos de metadatos del catálogo de Dataplex
- Documentación sobre los trabajos de importación de metadatos
Haz lo siguiente: Crea todos los recursos en el mismo Google Cloud ubicación.
-
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.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
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_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 de Cloud Storage para almacena los archivos de importación de metadatos.
-
Crea los siguientes recursos de Dataplex Catalog en el mismo proyecto.
Para ver ejemplos de valores, consulta la Ejemplo de recursos de Dataplex Catalog para una fuente de Oracle de este documento.
- Crea un grupo de entrada.
-
Cómo crear tipos de aspectos personalizados para las entradas que quieres importar. Usa la convención de nombres
SOURCE
-ENTITY_TO_IMPORT
.De manera opcional, puedes crear tipos de aspectos adicionales para almacenar otra información.
-
Cómo crear tipos de entradas personalizados para los recursos que quieres importar y asignar los tipos de aspectos. Usa la convención de nombres
SOURCE
-ENTITY_TO_IMPORT
.Por ejemplo, para una base de datos de Oracle, crea un tipo de entrada llamado
oracle-database
Vincularla al tipo de aspecto al que se le asignó un nombreoracle-database
- Asegúrate de que se pueda acceder a tu fuente de terceros desde tu proyecto de Google Cloud. Para obtener más información, consulta Configuración de la red de Dataproc sin servidores para Spark.
Crea un conector básico de Python
El conector básico de Python de ejemplo crea entradas de nivel superior para un Fuente de datos de Oracle mediante las clases de la biblioteca cliente de Dataplex. Luego, debes proporcionar los valores para los campos de entrada.
El conector crea un archivo de importación de metadatos con las siguientes entradas:
- Una entrada
instance
, con tipo de entradaprojects/PROJECT_ID/locations/LOCATION/entryTypes/oracle-instance
Esta entrada representa un sistema XE de la base de datos de Oracle. - Una entrada
database
, que representa una base de datos dentro de XE de la base de datos de Oracle en un sistema de archivos.
Para compilar un conector básico de Python, haz lo siguiente:
Clona el Repositorio
cloud-dataplex
.Configura un entorno local. Te recomendamos que uses un entorno virtual.
mkdir venv python -m venv venv/ source venv/bin/activate
Usa el activo o mantenimiento más recientes de Python. Se admiten Python 3.7 y versiones posteriores.
Crea un proyecto de Python.
Requisitos de instalación:
pip install -r requirements.txt
Se instalan los siguientes requisitos:
Agrega un archivo de canalización
main.py
en la raíz del proyecto.Cuando implementas tu código en Dataproc Serverless, el archivo
main.py
sirve como punto de entrada para la ejecución. Te recomendamos que minimices la cantidad de información que se almacena en el archivomain.py
usar esto para llamar a funciones y clases definidas dentro de tu conector, como la clasesrc/bootstap.py
.Crea una carpeta
src
para almacenar la mayor parte de la lógica del conector.Actualiza el archivo
src/cmd_reader.py
con una clase de Python para aceptar la línea de comandos argumentos. Puedes usar la argeparse módulo para hacerlo.En entornos de producción, recomendamos almacenar la contraseña en Secret Manager.
Actualiza el archivo
src/constants.py
con código para crear constantes.Actualiza el archivo
src/name_builder.py
con métodos para compilar los recursos de Dataplex Catalog que deseas que el conector cree para tus recursos de Oracle. Usa las convenciones que se describen en la sección Ejemplos de recursos de Dataplex Catalog para una fuente de Oracle de este documento.Debido a que el archivo
name_builder.py
se usa para el código principal de Python y el código principal de PySpark, te recomendamos que escribas los métodos como valores en lugar de como miembros de una clase.Actualiza el archivo
src/top_entry_builder.py
con el código de llenar las entradas de nivel superior con datos.Actualiza el archivo
src/bootstrap.py
con código para generar el archivo de importación de metadatos y ejecutar el conector.Ejecuta el código de manera local.
Se muestra un archivo de importación de metadatos llamado
output.jsonl
. El archivo tiene dos líneas, cada una de las cuales representa un elemento de importación. La canalización de conectividad administrada lee este archivo cuando se ejecuta el trabajo de importación de metadatos.Opcional: Amplía el ejemplo anterior para usar Dataplex las clases de biblioteca cliente para crear elementos de importación de tablas, esquemas y vistas. También puedes ejecutar el ejemplo de Python en Dataproc Serverless.
Te recomendamos que crees un conector que use Spark (y se ejecute en Dataproc Serverless), ya que puede mejorar el rendimiento de tu conector.
Crear un conector de PySpark
Este ejemplo se basa en el API de PySpark DataFrame Puedes instalar PySpark SQL y ejecutarlo localmente antes que se ejecuta en Dataproc Serverless. Si instalas y ejecutas PySpark localmente, instala la biblioteca de PySpark con pip, pero no necesitas instalar un clúster de Spark local.
Por motivos de rendimiento, este ejemplo no usa clases predefinidas de la biblioteca de PySpark. En cambio, el ejemplo crea DataFrames, convierte el DataFrame en entradas JSON y, luego, escribe la salida en una importación de metadatos en formato Líneas JSON que se puede importar a Dataplex.
Para compilar un conector con PySpark, haz lo siguiente:
Clona el repositorio
cloud-dataplex
.Instala PySpark:
pip install pyspark
Requisitos de instalación:
pip install -r requirements.txt
Se instalaron los siguientes requisitos:
Actualiza el archivo
oracle_connector.py
con código para leer datos de una fuente de datos de Oracle y mostrar DataFrames.Agrega consultas en SQL para mostrar los metadatos que deseas importar. Las consultas deben mostrar la siguiente información:
- Esquemas de bases de datos
- Tablas que pertenecen a estos esquemas
- Columnas que pertenecen a estas tablas, incluido el nombre de la columna, la columna el tipo de datos y si la columna es obligatoria o anulable
Todas las columnas de todas las tablas y vistas se almacenan en la misma de la tabla del sistema. Puedes seleccionar columnas con el método
_get_columns
. Según los parámetros que proporciones, puedes seleccionar columnas para las tablas o para las vistas por separado.Ten en cuenta lo siguiente:
- En Oracle, un usuario de base de datos es propietario de un esquema de base de datos y tiene el mismo nombre que ese usuario.
- Los objetos de esquema son estructuras lógicas creadas por los usuarios. Objetos como tablas o índices pueden contener datos, y los objetos como vistas o sinónimos solo constituyen una definición.
- El archivo
ojdbc11.jar
contiene las Controlador JDBC de Oracle.
Actualiza el archivo
src/entry_builder.py
con para aplicar transformaciones de Spark.Ten en cuenta lo siguiente:
- Los métodos compilan la Recursos de Dataplex Catalog a los que el conector crea para tus recursos de Oracle. Usa las convenciones que se describen en el Ejemplo de recursos de Dataplex Catalog para una fuente de Oracle de este documento.
- El método
convert_to_import_items
se aplica a esquemas, tablas y vistas. Asegúrate de que el resultado del conector sea uno o más elementos de importación que el métodometadataJobs.create
pueda procesar, no entradas individuales. - Incluso en una vista, la columna se llama
TABLE_NAME
.
Actualiza el archivo
bootstrap.py
con código para generar el archivo de importación de metadatos y ejecutar el conector.En este ejemplo, se guarda el archivo de importación de metadatos como un solo archivo JSON Lines. Puedes usar herramientas de PySpark, como la clase
DataFrameWriter
, para generar lotes de JSON en paralelo.El conector puede escribir entradas en el archivo de importación de metadatos en cualquier orden.
Actualiza el archivo
gcs_uploader.py
con código para subir el archivo de importación de metadatos a un bucket de Cloud Storage.Compila la imagen del conector.
Si tu conector contiene varios archivos o si deseas usar bibliotecas que no se incluyen en la imagen predeterminada de Docker, debes usar un contenedor personalizado. Dataproc Serverless para Spark ejecuta cargas de trabajo dentro de contenedores de Docker. Crea una imagen de Docker personalizada del conector y almacena el en Artifact Registry. Dataproc Serverless lee la imagen de Artifact Registry.
Crea un Dockerfile:
Usa Conda como administrador de paquetes. Dataproc sin servidores para Spark activa
pyspark
en el contenedor en el entorno de ejecución, por lo que no necesita instalar dependencias de PySpark en su imagen de contenedor personalizada.Compila la imagen de contenedor personalizada y envíala a Artifact Registry.
Debido a que una imagen puede tener varios nombres, puedes usar la etiqueta de Docker para un alias a la imagen.
Ejecutar el conector en Dataproc Serverless Para enviar un trabajo por lotes de PySpark con la imagen de contenedor personalizada, ejecuta el 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
Ten en cuenta lo siguiente:
- Los archivos JAR son controladores de Spark. Para leer desde Oracle, MySQL o PostgreSQL, debes proporcionar un paquete específico a Apache Spark. El paquete
pueden ubicarse en Cloud Storage
o dentro del contenedor. Si el archivo JAR está dentro del contenedor, la ruta de acceso es similar a
file:///path/to/file/driver.jar
. En este ejemplo, la ruta de acceso al archivo JAR es/opt/spark/jars/
. - PIPELINE_ARGUMENTS son los argumentos de la línea de comandos. para el conector.
El conector extrae metadatos de la base de datos de Oracle, genera un de importación de metadatos y guarda el archivo de importación de metadatos bucket de Cloud Storage.
- Los archivos JAR son controladores de Spark. Para leer desde Oracle, MySQL o PostgreSQL, debes proporcionar un paquete específico a Apache Spark. El paquete
pueden ubicarse en Cloud Storage
o dentro del contenedor. Si el archivo JAR está dentro del contenedor, la ruta de acceso es similar a
Para importar manualmente los metadatos en el archivo de importación de metadatos Dataplex, ejecutarás un trabajo de metadatos. Usa el método
metadataJobs.create
.En la línea de comandos, agrega variables de entorno y crea un alias para el 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"'
Llama al método de la API y pasa los tipos de entrada y los tipos de aspecto que que quieres importar.
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 )"
El tipo de aspecto
schema
es un tipo de aspecto global definido por DataplexTen en cuenta que el formato que usas para los nombres de los tipos de aspectos cuando llamas al método de la API es diferente del formato que usas en el código del conector.
Opcional: Usa Cloud Logging para ver los registros del trabajo de metadatos. Para más información, consulta Supervisa los registros de Dataplex.
Configura la organización de la canalización
En las secciones anteriores, se mostró cómo compilar un conector de ejemplo y ejecutarlo manualmente.
En un entorno de producción, ejecutas el conector como parte de una canalización de conectividad administrada con una plataforma de orquestación como Workflows.
Para ejecutar una canalización de conectividad administrada con el conector de ejemplo, sigue los pasos para importar metadatos con Workflows. Haz lo siguiente:
- Crea el flujo de trabajo en la misma ubicación de Google Cloud que el conector.
En el archivo de definición del flujo de trabajo, actualiza la función
submit_pyspark_extract_job
con el siguiente código para extraer datos de la base de datos de Oracle con el conector que creaste.- 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
En el archivo de definición del flujo de trabajo, actualiza la función
submit_import_job
con el siguiente código para importar las entradas. La función llama al método de la APImetadataJobs.create
para ejecutar un trabajo de importación de metadatos.- 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
Proporciona los mismos tipos de entrada y de aspecto que incluiste cuando llamaste al método de la API de forma manual. Ten en cuenta que no hay comas al final de cada cadena.
Cuando ejecutes el flujo de trabajo, proporciona los siguientes argumentos del entorno de ejecución:
{ "CLOUD_REGION": "us-central1", "ORACLE_USER": "system", "ORACLE_HOST_PORT": "x.x.x.x:1521", "ORACLE_DATABASE": "xe", "ADDITIONAL_CONNECTOR_ARGS": [], }
Opcional: Usa Cloud Logging para ver los registros de la conectividad administrada en una canalización de integración continua. La carga útil del registro incluye un vínculo a los registros de El trabajo por lotes Dataproc Serverless y el trabajo de importación de metadatos. según corresponda. Para obtener más información, consulta Visualiza los registros del flujo de trabajo.
Opcional: Para mejorar la seguridad, el rendimiento y la funcionalidad de tu canalización de conectividad administrada, considera hacer lo siguiente:
- Usa Secret Manager para almacenar las credenciales de tu fuente de datos de terceros.
- Usa PySpark para escribir el resultado de las líneas JSON en varias importaciones de metadatos archivos en paralelo.
- Usa un prefijo para dividir los archivos grandes (de más de 100 MB) en archivos más pequeños archivos.
- Agrega más aspectos personalizados que capten más aspectos técnicos y comerciales metadatos de tu fuente.
Ejemplos de recursos de Dataplex Catalog para una fuente de Oracle
El conector de ejemplo extrae metadatos de una base de datos de Oracle y los asigna a los recursos de Dataplex Catalog correspondientes.
Consideraciones sobre la jerarquía
Cada sistema de Dataplex tiene una entrada raíz que es la entrada superior del sistema. Por lo general, la entrada raíz tiene un tipo de entrada instance
.
En la siguiente tabla, se muestra la jerarquía de ejemplo de los tipos de entrada y los tipos de aspecto para un sistema Oracle.
ID del tipo de entrada | Descripción | ID del tipo de aspecto vinculado |
---|---|---|
oracle-instance |
Es la raíz del sistema importado. | oracle-instance |
oracle-database |
La base de datos de Oracle | oracle-database |
oracle-schema |
Esquema de la base de datos | oracle-schema |
oracle-table |
Una tabla. |
|
oracle-view |
Una vista |
|
El tipo de aspecto schema
es un tipo de aspecto global que define Dataplex. Contiene una descripción de los campos de una tabla,
vista u otra entidad que tenga columnas. El tipo de aspecto personalizado oracle-schema
contiene el nombre del esquema de la base de datos de Oracle.
Ejemplo de campos de elementos de importación
El conector debe usar las siguientes convenciones para los recursos de Oracle.
-
Nombres completamente calificados: nombres completamente calificados para Oracle utiliza la siguiente plantilla de nombres. Los caracteres prohibidos se escapan con acentos graves.
Recurso Plantilla Ejemplo Instancia SOURCE
:ADDRESS
Usa el número de puerto y host o el nombre de dominio del sistema.
oracle:`localhost:1521`
ooracle:`myinstance.com`
Base de datos SOURCE
:ADDRESS
.DATABASE
oracle:`localhost:1521`.xe
Esquema SOURCE
:ADDRESS
.DATABASE
SCHEMA
oracle:`localhost:1521`.xe.sys
Tabla SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.TABLE_NAME
oracle:`localhost:1521`.xe.sys.orders
Ver SOURCE
:ADDRESS
.DATABASE
.SCHEMA
.VIEW_NAME
oracle:`localhost:1521`.xe.sys.orders_view
-
Nombres o IDs de entrada: entradas para los recursos de Oracle usa la siguiente plantilla de nombres. Los caracteres prohibidos se reemplazan por un carácter permitido. Los recursos usan el prefijo
projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/entries
.Recurso Plantilla Ejemplo Instancia PREFIX
/HOST_PORT
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521
Base de datos PREFIX
/HOST_PORT
/databases/DATABASE
projects/example-project/locations/us-central1/entryGroups/oracle-prod/entries/10.1.1.1@1521/databases/xe
Esquema 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
Tabla 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
Ver 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
-
Entradas superiores: si una entrada no es una entrada raíz del sistema, el puede tener un campo de entrada superior que describa su posición en la nube. El campo debe contener el nombre de la entrada principal. Mié te recomendamos que generes este valor.
En la siguiente tabla, se muestran las entradas superiores de los recursos de Oracle.
Entrada Entrada principal Instancia ""
(string vacía)Base de datos Nombre de la instancia Esquema Nombre de la base de datos Tabla Nombre del esquema Ver Nombre del esquema Mapa de aspecto: El mapa de aspecto debe contener al menos un aspecto. que describe la entidad que se importará. Este es un ejemplo de un mapa de aspecto Tabla de Oracle.
"example-project.us-central1.oracle-table": { "aspect_type": "example-project.us-central1.oracle-table", "path": "", "data": {} },
Puedes encontrar tipos de aspectos predefinidos (como
schema
) que definen la estructura de tablas o vistas en el archivodataplex-types
en la ubicaciónglobal
.-
Claves de aspecto: Las claves de aspecto usan el formato de nombres PROJECT.LOCATION.ASPECT_TYPE. En la siguiente tabla, se muestran ejemplos de claves de aspecto para recursos de Oracle.
Entrada Ejemplo de clave de aspecto Instancia example-project.us-central1.oracle-instance
Base de datos example-project.us-central1.oracle-database
Esquema example-project.us-central1.oracle-schema
Tabla example-project.us-central1.oracle-table
Ver example-project.us-central1.oracle-view