Controlador MongoDB
Esta documentación explica la implementación del controlador MongoDB 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 | host en la configuración de conexión de mongodb | El nombre de host o dirección IP del servidor MongoDB | Sí | localhost |
| Puerto | port en la configuración de conexión de mongodb | El número de puerto en el que escucha el servidor MongoDB | Sí | 27017 (de driverPorts) |
| Base de Datos | db en la configuración de conexión de mongodb | El nombre de la base de datos a la que conectarse | Sí | Ninguno (debe ser especificado) |
| Nombre de Usuario | user en la configuración de conexión de mongodb | Usuario de base de datos para autenticación | No | Ninguno |
| Contraseña | password en la configuración de conexión de mongodb | Contraseña para el usuario de base de datos | No | Ninguno |
Detalles Técnicos
La implementación del controlador MongoDB utiliza la biblioteca Node.js mongodb con MongoClient para conexiones.
- Base de datos basada en documentos que utiliza colecciones en lugar de tablas
- Formato de cadena de conexión:
mongodb://host:porto URL personalizada viaconfig.url - La extracción de esquemas se realiza mediante muestreo de documentos de las colecciones
- Las relaciones de clave foránea se detectan buscando referencias ObjectId entre colecciones
- Utiliza un enfoque de muestreo de documentos para la inferencia de esquemas
- Soporta opciones de conexión como
useUnifiedTopology: true
Cuando el túnel SSH está habilitado, las conexiones se establecen primero a través del túnel antes de conectarse al servidor MongoDB.
Opciones de Autenticación
MongoDB soporta autenticación estándar usuario/contraseña y también autenticación basada en cadena de conexión.
| Tipo de Autenticación | Mapeo UI | Descripción |
|---|---|---|
| Ninguna | Sin campos de usuario/contraseña | Conecta sin 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 MongoDB 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 MongoDB 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 MongoDB 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.
Parámetros de Conexión
# Configuración SSL/TLS
tls: true
tlsCAFile: /ruta/a/ca.pem
tlsCertificateKeyFile: /ruta/a/certificado-cliente.pem
tlsCertificateKeyFilePassword: contraseña_certificado
tlsAllowInvalidCertificates: false
tlsAllowInvalidHostnames: false
tlsInsecure: false
# Opciones de Autenticación
authMechanism: "SCRAM-SHA-256" # o "SCRAM-SHA-1", "MONGODB-X509", "GSSAPI", "PLAIN"
authSource: "admin"
authMechanismProperties:
SERVICE_NAME: "mongodb"
CANONICALIZE_HOST_NAME: false
# Configuración de Tiempos de Espera
connectTimeoutMS: 30000
socketTimeoutMS: 360000
serverSelectionTimeoutMS: 30000
heartbeatFrequencyMS: 10000
maxIdleTimeMS: 30000
# Preferencias de Lectura
readPreference: "primary" # o "primaryPreferred", "secondary", "secondaryPreferred", "nearest"
maxStalenessSeconds: 90
# Compresión
compressors: ["snappy", "zlib"]
zlibCompressionLevel: 6Configuración de Agrupamiento
# Opciones de dimensionamiento de agrupamiento
maxPoolSize: 100
minPoolSize: 10
maxConnecting: 2
# Opciones de tiempo de espera de agrupamiento
maxIdleTimeMS: 30000
waitQueueTimeoutMS: 0Ejemplos de Configuraciones
Configuración Básica
maxPoolSize: 50
serverSelectionTimeoutMS: 5000Configuración SSL
tls: true
tlsCAFile: ${file:/ruta/a/ca-cert.pem}
tlsCertificateKeyFile: ${file:/ruta/a/certificado.pem}
tlsCertificateKeyFilePassword: contraseña_cert
authMechanism: "MONGODB-X509"Configuración de Conjunto de Réplicas
host: rs1.ejemplo.com,rs2.ejemplo.com,rs3.ejemplo.com
port: 27017
database: base_de_datos_replicada
readPreference: "secondaryPreferred"
maxStalenessSeconds: 120
maxPoolSize: 25
minPoolSize: 5
compressors: ["snappy"]