Controlador Oracle
Esta documentación explica la implementación del controlador Oracle y cómo los parámetros de conexión se corresponden con los campos de la interfaz de usuario en la aplicación Gigantic.
Parámetros de Conexión
| Campo UI | Implementación Técnica | Descripción | Requerido | Valor por Defecto |
|---|---|---|---|---|
| Host | connectString en la configuración de oracledb | El nombre de host o dirección IP del servidor Oracle | Sí | localhost |
| Puerto | Parte de connectString en la configuración de oracledb | El número de puerto en el que escucha el servidor Oracle | Sí | 1521 (de driverPorts) |
| Base de Datos | Parte de connectString en la configuración de oracledb | El nombre de la base de datos/PDB a la que conectarse | Sí | Ninguno (debe ser especificado) |
| Propietario | owner en la configuración de gigadb | El propietario del esquema a usar para consultas y extracción de metadatos | No | Esquema del usuario actual |
| Contenedor | container en la configuración de gigadb | El nombre de la Base de Datos Conectable (PDB) cuando se usa Oracle Multitenant | No | Ninguno |
| Nombre de Usuario | user en la configuración de conexión de oracledb | Usuario de base de datos para autenticación | Sí | Ninguno (debe ser especificado) |
| Contraseña | password en la configuración de conexión de oracledb | Contraseña para el usuario de base de datos | Sí | Ninguno (debe ser especificado) |
Detalles Técnicos
La implementación del controlador Oracle utiliza la biblioteca Node.js oracledb con capacidades de agrupamiento de conexiones.
Aspectos técnicos clave:
- El agrupamiento de conexiones se utiliza a través de la clase Pool de oracledb
- Los conceptos de Propietario y Contenedor (PDB) son específicos de Oracle
- El controlador utiliza el paquete DBMS_METADATA para la generación de DDL
- Manejo de columnas virtuales en el método normalizeRecordOracle
- Múltiples modos de carga soportados: insert, update, merge
Cuando el túnel SSH está habilitado, las conexiones se establecen primero a través del túnel antes de conectarse al servidor Oracle.
Formato de Cadena de Conexión
Las conexiones Oracle combinan campos individuales de la UI en una cadena de conexión. Se soportan dos formatos:
- Sintaxis de Conexión Fácil (por defecto):
//host:port/database- Cadena de Conexión Directa:
user/password@//host:port/databaseLa aplicación toma los campos individuales de la UI (Host, Puerto, Base de Datos) y los combina en el formato #1 para la biblioteca oracledb.
Opciones de Autenticación
Oracle soporta varios tipos de autenticación:
| Tipo de Autenticación | Mapeo UI | Descripción |
|---|---|---|
| Ninguna | No aplicable para Oracle | Deshabilita autenticación |
| Contraseña | Campos de usuario/contraseña | Autenticación estándar usuario/contraseña |
| Gestor de Contraseñas | Varios campos de gestores de contraseñas | Obtiene credenciales de gestores de contraseñas externos |
Soporte de Túnel SSH
El controlador Oracle soporta túneles SSH para acceso seguro a bases de datos detrás de firewalls o en redes privadas. Para información detallada sobre la configuración de túneles SSH, por favor consulte la documentación de Túneles SSH.
Endpoints de API Utilizados
Las conexiones Oracle se utilizan principalmente en:
- Creación de Tap (descubrimiento de fuente de datos)
- Creación de Sink (destino de datos para datos anonimizados)
- Ejecución de Pipeline (extracción y carga de datos)
Parámetros Personalizados
El controlador Oracle soporta parámetros personalizados adicionales que pueden especificarse en formato YAML para ajustar finamente el comportamiento de conexión, agrupamiento, configuraciones SSL y otras opciones avanzadas.
Atributos de Conexión
# Configuración de Conexión
stmtCacheSize: 30
edition: "ORA$BASE"
events: false
externalAuth: false
privilege: "SYSDBA" # o "SYSOPER", "SYSASM", "SYSBACKUP", "SYSDG", "SYSKM", "SYSRAC"
# Soporte de Sharding
shardingKey: ["clave1", "clave2"]
superShardingKey: ["super_clave1", "super_clave2"]
# Etiquetado de Sesión
tag: "app_producción"Atributos de Agrupamiento
# Configuración de agrupamiento
poolAlias: "miagrupamiento"
poolMin: 4
poolMax: 10
poolIncrement: 1
poolTimeout: 60
poolPingInterval: 60
poolMaxPerShard: 5
# Gestión de cola
queueMax: 50
queueRequests: true
queueTimeout: 60000
# Estadísticas de agrupamiento
enableStatistics: trueConfiguración SSL/TLS
# Configuración SSL
sslServerCertDN: "CN=server.ejemplo.com,O=Ejemplo Corp,C=ES"
sslServerDNMatch: true
sslAllowWeakDNMatch: false
useSNI: true
# Cartera Oracle
walletLocation: "/ruta/a/la/cartera/oracle"
walletPassword: "contraseña_cartera"
walletContent: ${file:/ruta/a/la/cartera.zip}Autenticación Basada en Tokens
# Autenticación basada en tokens
accessToken:
token: "cadena_de_token_de_acceso_válido"
privateKey: ${file:/ruta/a/la/llave_privada.pem}
type: "OCI_TOKEN" # o "OAUTH2_TOKEN"Ejemplos de Configuraciones
Configuración Básica
poolMin: 2
poolMax: 15
stmtCacheSize: 50Configuración SSL con Cartera
walletLocation: ${file:/ruta/a/la/cartera_oracle}
walletPassword: contraseña_cartera
sslServerDNMatch: true
enableStatistics: true
poolTimeout: 30Configuración Multitenant
owner: propietario_app
poolMax: 20
queueTimeout: 30000Autenticación Basada en Tokens
accessToken:
token: ${env:OCI_ACCESS_TOKEN}
type: "OCI_TOKEN"
stmtCacheSize: 100
events: true