Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

mongosqld

Nota

El conector de MongoDB para BI y las utilidades asociadas son compatibles con todas las versiones actualmente soportadas del servidor MongoDB.

mongosqld acepta solicitudes entrantes de un cliente SQL y las envía por proxy a una mongod o mongos instancia.

Nuevo en la versión 2.3:

Puedes comenzar mongosqld ya sea con un archivo de esquema en .drdl format usando la opción --schema o extrayendo datos de una instancia de MongoDB para crear el esquema.

Puedes especificar de qué namespace o namespaces muestrear datos con la opción --sampleNamespaces. Si no especificas ningún namespace o un archivo de esquema, mongosqld muestra datos de todas las bases de datos en la instancia destino de MongoDB excepto las bases de datos admin y local.

Puedes especificar una base de datos en la que almacenar información de esquemas con la opción --schemaSource. De lo contrario, mongosqld mantiene el esquema en la memoria.

Utiliza la opción --schema para especificar un archivo de esquema al iniciar mongosqld.

mongosqld --schema /path/to/schema-file.drdl

Utiliza mongodrdl para crear un archivo de esquema desde una instancia de MongoDB.

Utiliza la opción --schemaSource para especificar una base de datos en la que almacenar la información del esquema.

mongosqld --schemaSource sampleDb

Utilice la opción --sampleNamespaces para especificar bases de datos y colecciones para mongosqld para obtener datos de muestra y crear el esquema.

mongosqld --sampleNamespaces contacts.addresses

Consulta más ejemplos de uso a continuación.

Si tu instancia de MongoDB utiliza autenticación, tu instancia de BI Connector también debe utilizar autenticación. El usuario que se conecta a MongoDB a través del programa mongosqld debe tener permiso para leer de todos los namespaces de los que desea muestrear datos.

Para obtener más detalles sobre los permisos de usuario de MongoDB en BI Connector, consulta Permisos de usuario para muestreo en caché.

Para obtener más información sobre usuarios y roles de MongoDB, véase Control de acceso basado en roles.

Consulta el ejemplo que aparece a continuación de mongosqld con autenticación.

Novedad en la versión 2.6.

La versión mínima por defecto de TLS es 1.1 para todas las conexiones de clientes. Esto incluye las conexiones entrantes de clientes a mongosqld y las conexiones salientes a MongoDB.

Se puede ajustar esta configuración para conexiones entrantes con la opción --minimumTLSVersion y para conexiones salientes con la opción--mongo-minimumTLSVersion.

--help

Devuelve información sobre las opciones y el uso de mongosqld.

--addr

Por defecto: 127.0.0.1:3307

Especifica la dirección del host en la que se debe escuchar.

--version

Devuelve el número de versión de la mongosqld.

--config <path>

Especifica la ruta a un archivo de configuración.

--mongo-uri <uri>

por defecto: mongodb://localhost:27017

Especifica una cadena de conexión a MongoDB al que conectarse.

La opción --mongo-uri admite las siguientes opciones dentro de la cadena de conexión:

Para obtener más información sobre estas opciones de URI, consulta Opciones de preferencia de lectura y Opción de set de réplicas.

Para las opciones configuradas en el URI de Mongo que no estén incluidas en la lista anterior, utilizá la opción equivalente mongosqld. Para ver la lista completa de opciones de mongosqld, consulta Opciones de línea de comandos.

Nota

En lugar de especificar un username y un password en su cadena de conexión, ejecute mongosqld con la opción --auth para dirigir a mongosqld a pasar las credenciales de autenticación proporcionadas por el cliente SQL al servidor de MongoDB.

De manera similar, en lugar de habilitar ssl en la cadena de conexión, se puede ejecutar mongosqld con --mongo-ssl.

Para deshabilitar la lógica automática de descubrimiento de servidores de set de réplicas y forzar una conexión al servidor especificado, utiliza la opción connect=direct.

mongosqld --mongo-uri "mongodb://<hostname>:<port>/?connect=direct"

Las opciones URI que no están ni en la lista anterior ni en la lista de mongosqld opciones admitidas no son compatibles.

--mongo-versionCompatibility <version-number>

Restringe mongosqld a usar funcionalidades que la versión especificada de MongoDB admite. Solo es necesario cuando se utiliza con sets de réplicas en los que los miembros utilizan diferentes versiones de MongoDB o al realizar una actualización progresiva de MongoDB. Solo admite MongoDB versión 3.2 o posterior.

Por ejemplo, si tu set de réplicas contiene miembros ejecutando MongoDB 3.2 y otros miembros ejecutando MongoDB 3.4, configura la siguiente opción para restringir mongosqld para usar solo funcionalidades compatibles con MongoDB 3.2:

mongosqld --mongo-versionCompatibility 3.2
--maxVarcharLength <length>

Nuevo en la versión 2.2.

Especifica la longitud máxima, en caracteres, para todos los campos varchar. Si mongosqld encuentra una cadena que es más larga que la longitud máxima, mongosqld la trunca a la longitud máxima y registra una advertencia.

--mongo-username <username>, -u <username>

Novedades en la versión 2.3.

Especifica el nombre de usuario de autenticación que se usará para el descubrimiento del esquema. Sólo es obligatorio si --auth está activado. El usuario especificado por --mongo-username debe ser un usuario válido de MongoDB con el privilegio listDatabases. Vea Permisos de usuario mongosqld.

--mongo-password <password>, -p <password>

Novedades en la versión 2.3.

Especifica la contraseña de autenticación que se utilizará para el descubrimiento del esquema. Solo se requiere si --auth está habilitado. Utiliza junto con --mongo-username.

--mongo-authenticationSource <auth-db-name>

Por defecto: admin

Novedades en la versión 2.3.

Especifica la base de datos que contiene las credenciales para el usuario del descubrimiento de esquemas. Sólo está disponible si --auth está activado. Utilice en conjunto con las opciones de credenciales --mongo-username y --mongo-password.

--mongo-authenticationMechanism <authMechanism>

Por defecto: SCRAM-SHA-1

Novedades en la versión 2.3.

Especifica el mecanismo de autenticación que se utilizará para el descubrimiento del esquema. Sólo está disponible si --auth está activado. Utilice en conjunto con las opciones de credenciales --mongo-username y --mongo-password.

Valor
Descripción

RFC 5802 mecanismo estándar de autenticación de respuesta a desafío basado en sal (Salted Challenge Response Authentication Mechanism) utilizando la función hash SHA1.

Nuevo en la versión 2.6: RFC 7677 mecanismo estándar de autenticación por desafío con salt (SCRAM) mediante la función de hash SHA2.

PLAIN (SASL LDAP)

Autenticación externa mediante LDAP. También puede utilizar PLAIN para autenticar a los usuarios de base de datos. PLAIN transmite las contraseñas en texto sin cifrar. Este mecanismo está disponible solo en MongoDB Enterprise.

GSSAPI (Kerberos)

Autenticación externa utilizando Kerberos. Este mecanismo está disponible solo en MongoDB Enterprise.

--schema <filename>

Especifica la ruta a un archivo de esquema o al directorio de esquemas.

--schemaDirectory <directoryname>

Obsoleto desde la versión 2.2.

Use --schema en su lugar.

--sampleNamespaces <db.collection>

Novedades en la versión 2.5.

--sampleNamespaces especifica una base de datos y una colección para su inclusión o exclusión del proceso de muestreo de datos que crea el esquema. También es posible especificar varias colecciones de una sola base de datos o varias colecciones de varias bases de datos. Vea los ejemplos a continuación.

Si no utilizas la opción --sampleNamespaces o la opción --schema, mongosqld toma muestras de datos de todas las bases de datos y colecciones MongoDB disponibles, excepto de las bases de datos admin y local.

--schemaMode <[custom|auto]>

Por defecto: custom

Novedad en la versión 2.11.

Configura el modo de muestreo de mongosqld. Debe usarse con la opción --schemaSource. Los siguientes valores determinan el comportamiento de muestreo:

Valor
--schemaMode Comportamiento

custom

mongosqld lee un esquema almacenado de la base de datos MongoDB especificada por la opción --schemaSource.

auto

mongosqld muestrea el esquema y escribe los datos del esquema en la base de datos MongoDB especificada por la opción --schemaSource.

Para obtener más información sobre la configuración del modo de muestra, consulta la gráfica de referencia del modo de muestreo.

Importante

Si mongosqld tiene authentication habilitado, el usuario autenticado debe tener el privilegio de escritura sobre la base de datos --schemaSource especificada. Consulta Roles incorporados para obtener más información sobre el rol de readWrite.

--schemaSource <db-name>

Novedad en la versión 2.11.

Se requiere cada vez que se configura la --schemaMode. Especifica la base de datos donde se almacena la información del esquema.

Nota

Si no especificas ninguna de las opciones --schema, --schemaMode y --schemaSource, mongosqld mantendrá su esquema en la memoria.

Para obtener más información sobre los modos de muestreo, consulta la Gráfica de referencia de modo de muestreo.

--schemaName <db-name>

Por defecto: defaultSchema

Novedad en la versión 2.11.

opcional. El nombre del esquema desde el cual cargar o al cual escribir en la base de datos de --schemaSource. La especificación de nombres de esquemas te permite almacenar múltiples esquemas en la base de datos --schemaSource. El comportamiento depende del valor de --schemaMode:

--schemaName Comportamiento

custom

El nombre del esquema a cargar de la base de datos especificada por la opción --schemaSource.

auto

El nombre del esquema que se escribirá en la base de datos --schemaSource después de que BI Connector tome muestras del esquema al iniciar.

Importante

Si cargas un esquema personalizado, debes almacenarlo con su nombre especificado, usando name-schema, y luego especificar este nombre en el mongosqld con el --schemaName. Si no almacenas el nombre del esquema cuando lo cargas, el nombre del esquema por defecto es defaultSchema. Si el nombre del esquema no existe, esto provoca un error de mongosqld similar al siguiente: Esquema de MongoDB aún no disponible. Error al iniciar el esquema: no se encontró un esquema con ese nombre.

Para obtener más información sobre los modos de muestreo, consulta la Gráfica de referencia de modo de muestreo.

--sampleSize <number>

Por defecto: 1000

Novedades en la versión 2.3.

El número de documentos por namespace que se toman como muestra al recopilar información sobre el esquema.

Establece --sampleSize en 0 para incluir todos los documentos en el namespace especificado al crear el esquema. Si no especificas un namespace, configurar --sampleSize a 0 hace que mongosqld considere todos los documentos en todas las bases de datos (excluyendo local, admin y system) al construir el esquema. Vea un ejemplo a continuación.

--schemaRefreshIntervalSecs <number>

Por defecto: 0

Cambiado en la versión 2.11: Renombrado --sampleRefreshIntervalSecs a --schemaRefreshIntervalSecs

El intervalo en segundos en el que mongosqld vuelve a muestrear los datos para crear su esquema. El valor por defecto es 0, lo que significa que después del muestreo inicial no se produce un re muestreo automático. El valor especificado debe ser un entero positivo.

Para forzar una actualización única del esquema, use el comando FLUSH SAMPLE desde su cliente SQL.

--uuidSubtype3Encoding <old|csharp|java>, -b <old|csharp|java>

Especifique la codificación utilizada para generar el subtip Binario UUID 3. Elija uno de los siguientes valores:

  • oldReprensentación anterior del subtipo binario BSON

  • csharp: La representación UUID heredada de C#/.NET

  • javaLa representación heredada UUID de Java

--prejoin

Novedad en la versión 2.6.

Opción de esquema para combinar datos de arreglos y datos que no son arreglos en una sola tabla.

Los documentos de MongoDB que contienen arrays generalmente se traducen en formato tabular con tablas separadas para los datos de array y los datos que no son de array. Considera una colección de MongoDB llamada test con el siguiente documento:

{ "_id" : 1, "a" : 3, "b" : [ "orange", "apple", "pear" ] }

La colección anterior se traduce en las dos siguientes tablas en formato tabular:

mysql> select * from test;
+------+------+
| _id | a |
+------+------+
| 1 | 3 |
+------+------+
mysql> select * from test_b;
+------+--------+-------+
| _id | b | b_idx |
+------+--------+-------+
| 1 | orange | 0 |
| 1 | apple | 1 |
| 1 | pear | 2 |
+------+--------+-------+

El indicador --prejoin hace que los datos de la columna a se incluyan en la tabla test_b:

mysql> select * from test_b;
+------+------+--------+-------+
| _id | a | b | b_idx |
+------+------+--------+-------+
| 1 | 3 | orange | 0 |
| 1 | 3 | apple | 1 |
| 1 | 3 | pear | 2 |
+------+------+--------+-------+
--logAppend

Agrega nueva salida de registro a una entrada de registro existente especificada por --logPath.

Requiere --logRotate.

--logPath <filename>

Default: stderr

Especifica una ruta a una entrada de registro para almacenar la salida de registros.

--logRotate reopen | rename

Por defecto: renombrar

Especifica que deseas rotar registros y cómo deben rotarse.

Cuando esta opción está activada, los registros se rotan cuando se ejecuta el comando FLUSH LOGS en el MongoDB Connector for BI o al reiniciar mongosqld.

Si estableces --logRotate en rename:
La entrada de registro existente se cierra. Se añade una marca de tiempo con formato RFC3339a la entrada de registro cerrada. Se crea una nueva entrada de registro.
Si estableces --logRotate en reopen:
La entrada de registro existente se cierra y se vuelve a abrir.

Nota

En las plataformas UNIX y macOS, puede emitir una señal SIGUSR1 para reiniciar el proceso mongosqld y rotar los registros.

--usageLogInterval <number>

Por defecto: 60

Novedad en la versión 2.14.

El intervalo, en segundos, en el que las estadísticas de uso se escriben en el registro. Establecer en 0 para desactivar el registro de uso.

Nota

El registro de uso no está activado para Windows.

--verbose, -v

Especifica que mongosqld debe proporcionar una salida de registro más detallada.

La siguiente tabla describe la información provista en cada nivel de registro:

Opción de carta
Nivel de registro
Contenido del mensaje

--quiet

Ninguno

No registrar registro.

No flag

predeterminado

Mensajes de registro que notifican al usuario los eventos básicos de mongosqld y los cambios de estado.

-v

Administrator

Mensajes de registro que proporcionan información a los administradores de mongosqld.

-vv

Desarrollador

Mensajes de registro útiles para el soporte y desarrollo de MongoDB.

--quiet

Oculta toda la salida del registro.

Importante

Si estás usando tu propia entidad certificadora (CA) para autofirmar tus certificados de servidor y cliente, debes incluir la opción --mongo-sslAllowInvalidHostnames para asegurar que la autenticación funcione correctamente.

--mongo-ssl

Por defecto: False

Instruye a mongosqld a usar TLS/SSL al conectarse a una instancia de MongoDB.

--mongo-sslPEMKeyFile <filename>

Especifica el archivo .pem que contiene tanto el certificado como la clave TLS/SSL para que mongosqld los utilice al conectarse a MongoDB. Puede especificar el nombre del archivo de .pem utilizando una ruta relativa o absoluta.

Esta opción es obligatoria cuando se utiliza la opción --mongo-ssl para conectarse a un mongod o mongos que tiene CAFile habilitado sin allowConnectionsWithoutCertificates.

--mongo-sslPEMKeyPassword <password>

Especifica la ruta hacia el archivo que contiene el certificado y clave privada para conectarse a MongoDB.

--mongo-sslAllowInvalidHostnames

Permite que mongosqld se conecte a un servidor de MongoDB cuyo nombre de host difiera del nombre de host en su certificado TLS/SSL.

--mongo-sslAllowInvalidCertificates

Permite que la instancia de MongoDB presente un certificado SSL/TLS de servidor inválido. Cuando se utiliza la configuración allowInvalidCertificates, MongoDB registra el uso del certificado inválido como una advertencia.

--mongo-sslCAFile <filename>

Especifica el archivo .pem de la instancia de MongoDB que contiene la cadena de certificados raíz de la autoridad certificadora. Especifique el nombre del archivo .pem utilizando rutas relativas o absolutas.

Advertencia

Para las conexiones SSL (--mongo-ssl) a mongod y mongos, si el mongosqld se ejecuta sin el --mongo-sslCAFile, mongosqld no intentará validar los certificados del servidor. Esto crea una vulnerabilidad frente a la caducidad de los certificados mongod y mongos, así como ante procesos externos que se hacen pasar por instancias válidas de mongod o mongos. Asegúrate de siempre especificar el archivo CA para validar los certificados del servidor en casos donde exista la posibilidad de intrusión.

--mongo-sslCRLFile <filename>

Especifica el archivo .pem de la instancia de MongoDB que contiene la lista de revocación de certificados.

--mongo-sslFIPSMode

Activa el modo FIPS en la librería OpenSSL instalada.

--mongo-minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Por defecto: TLS1_1

Especifica la versión mínima de TLS requerida para las conexiones salientes a un mongod o a un mongos. instancia. El valor por defecto TLS1_1 corresponde a la versión TLS 1.1.

--sslMode <mode>

Por defecto: desactivado

Novedades en la versión 2.3.

Activar o desactivar TLS/SSL para conexiones a mongosqld. El argumento para la opción sslMode puede ser uno de los siguientes:

Valor
Descripción

disabled

mongosqld no puede aceptar conexiones aseguradas mediante TLS/SSL.

allowSSL

mongosqld puede aceptar conexiones aseguradas mediante TLS/SSL.

requireSSL

mongosqld solo puede aceptar conexiones protegidas mediante TLS/SSL.

--sslPEMKeyFile <filename>

Especifica el archivo .pem que contiene tanto el certificado como la clave TLS/SSL para los clientes de MySQL. Especifique el nombre del archivo .pem usando rutas relativas o absolutas.

--sslPEMKeyPassword <password>

Especifica la contraseña utilizada para descifrar la clave privada especificada por --sslPEMKeyFile.

--sslAllowInvalidCertificates

Permite que los clientes de MySQL presenten certificados TLS/SSL de cliente no válidos.

--sslAllowInvalidHostnames

Permite que los clientes de SQL se conecten a un mongosqld cuyo nombre de host difiere del nombre de host en su certificado TLS/SSL.

--sslCAFile <filename>

Especifica el archivo mongosqld .pem que contiene la cadena de certificados raíz de la Autoridad de Certificación. Especifica el nombre del archivo .pem usando rutas relativas o absolutas.

--sslCRLFile <filename>

Especifica el mongosqld archivo .pem que contiene la lista de revocación de certificados.

--auth

Requiere autenticación para las solicitudes entrantes de los clientes.

Importante

Cambiado en la versión 2.4.0.

Cuando la autenticación está habilitada, se deben proporcionar credenciales de administrador con las opciones --mongo-username y --mongo-password o la configuración mongodb.net.auth.username y mongodb.net.auth.password en el archivo de configuración.

mongosqld utiliza las credenciales de administrador para recopilar metadatos en los namespaces muestreados y utiliza las credenciales del cliente que se conecta para restringir los datos solo a lo que el cliente está autorizado a leer. Para más información sobre los permisos requeridos para el usuario administrador, consulta Permisos de usuario para muestreo almacenado en caché.

--defaultAuthSource <authSource>

Por defecto: admin

Especifica la fuente de autenticación por defecto de MongoDB. Establece este valor para especificar una fuente por defecto que mongosqld utiliza al autenticarse a una base de datos MongoDB. Los mecanismos de autenticación GSSAPI y PLAIN usan el origen $external, mientras que SCRAM-SHA-1 y SCRAM-SHA-256 usan una base de datos MongoDB como origen.

Si no se proporciona ningún valor para esta opción, por defecto se utilizará la base de datos MongoDB admin.

El origen de autenticación $external almacena una referencia de los usuarios del sistema en una base de datos MongoDB llamada $external, pero las credenciales se almacenan en un sistema externo que no es MongoDB, como un servidor LDAP.

Cualquier conexión que utilice el valor por defecto puede omitir el parámetro source de su nombre de usuario de MySQL o Tableau.

--defaultAuthMechanism <authMechanism>

Por defecto: SCRAM-SHA-1

Especifica el mecanismo de autenticación por defecto. Establece este valor para especificar un mecanismo por defecto para conectarse a mongosqld. Cualquier conexión que utilice este valor predeterminado especificado puede omitir el valor mechanism de su nombre de usuario de MySQL o Tableau.

Valor
Descripción

RFC 5802 mecanismo estándar de autenticación por desafío con salt (SCRAM) mediante la función de hash SHA1.

Nuevo en la versión 2.6: RFC 7677 mecanismo estándar de autenticación por desafío con salt (SCRAM) mediante la función de hash SHA2.

PLAIN (SASL LDAP)

Autenticación externa mediante LDAP. También puede utilizar PLAIN para autenticar a los usuarios de base de datos. PLAIN transmite las contraseñas en texto sin cifrar. Este mecanismo está disponible solo en MongoDB Enterprise.

GSSAPI (Kerberos)

Autenticación externa utilizando Kerberos. Este mecanismo está disponible solo en MongoDB Enterprise.

--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Por defecto: TLS1_1

Especifica la versión mínima de TLS requerida para que los clientes se conecten a mongosqld. El valor por defecto TLS1_1 corresponde a la versión TLS 1.1.

--serviceName <service-name>

Nombre del servicio del sistema que ejecuta mongosqld.

--serviceDisplayName <service-name>

Nombre visible del servicio del sistema que ejecuta mongosqld.

--serviceDescription <service-name>

Descripción del servicio del sistema que ejecuta mongosqld.

--gssapiHostname <hostname>

Por defecto: Primera dirección IP para net.bindIp.

Novedades en la versión 2.5.

Un FQDN para la configuración de autenticación Kerberos. El nombre de host de Kerberos reemplaza el nombre de host solo para la configuración de Kerberos.

--gssapiServiceName <service-name>

por defecto: mongosql

Novedades en la versión 2.5.

Nombre registrado del servicio usando Kerberos. Esta opción te permite sobrescribir el componente de nombre de servicio Kerberos por defecto de Kerberos SPN para cada instancia. Si no se especifica, se utiliza el valor por defecto.

--mongo-gssapiServiceName <service-name>

Por defecto: MongoDB

Novedades en la versión 2.5.

Establezca el SPN Kerberos cuando se conecte a instancias de MongoDB con Kerberos. Este valor debe coincidir con el nombre del servicio establecido en las instancias de MongoDB.

--gssapiConstrainedDelegation

Por defecto: False

Novedad en la versión 2.11.

Utiliza credenciales de proxy para la autorización de Kerberos, habilitando la delegación restringida. Requiere que las credenciales del servicio mongosqld estén presentes en el keytab del cliente así como en el keytab del servicio. Consulta Configurar Kerberos para BI Connector para obtener más información sobre la configuración de Kerberos.

--filePermissions <mode>

Por defecto: 0700

Especifica los permisos para el archivo de socket de dominio UNIX.

--noUnixSocket

Desactiva la escucha en sockets de dominio Unix.

--unixSocketPrefix <path>

Por defecto: /tmp

Especifica un directorio alternativo para el mongosqld socket de dominio Unix.

mongosqld creará un archivo de socket llamado mysql.sock debajo de esta ruta. Si no especificas --unixSocketPrefix, el socket existirá en /tmp/mysql.sock.

--setParameter <parameter>
Parameter
Tipo
Corresponde a

"polymorphic_type_conversion_mode=<value>"

string

Determina cómo mongosqld evalúa los campos del documento que se especifican con varios tipos de datos. Los valores aceptados son off, fast y safe. Para obtener más información sobre estos valores, consulte Variables del sistema.

"type_conversion_mode=<value>"

string

Especifica el modo que mongosqld utiliza para convertir tipos de datos. BI Connector utiliza su propio modo (mongosql) por defecto. Los valores aceptados son mongosql y mysql. Para obtener más información sobre estos valores, se puede consultar Variables del sistema.

El siguiente ejemplo inicia mongosqld y usa la opción --setParameter para especificar el modo de conversión de tipos:

mongosqld --setParameter "type_conversion_mode=mongosql"

Puedes configurar mongosqld utilizando un archivo de configuración YAML. Este archivo puede contener la configuración listada en las siguientes secciones.

Nota

Puedes utilizar directivas de expansión en tu archivo de configuración para cargar valores de configuración obtenidos de fuentes externas. Las directivas de expansión oscurecen información confidencial como certificados de seguridad y contraseñas.

Para obtener más información sobre cómo usar directivas de expansión, consulte Valores de archivos de configuración obtenidos externamente en el manual de MongoDB.

systemLog:
logAppend: <boolean>
logRotate: "rename"|"reopen"
path: <string>
quiet: <boolean>
verbosity: <integer>
Nombre
Tipo
Corresponde a
systemLog.logAppend

booleano

systemLog.logRotate

string

systemLog.path

string

systemLog.quiet

booleano

systemLog.verbosity

entero

schema:
path: <string>
maxVarcharLength: <integer>
Nombre
Tipo
Corresponde a
schema.path

string

schema.maxVarcharLength

entero

schema:
sample:
size: <integer>
prejoin: <boolean>
namespaces: <array of strings>
uuidSubtype3Encoding: <[old|csharp|java]>
stored:
mode: <[custom|auto]>
source: <string>
name: <db-name>
refreshIntervalSecs: <integer>
Nombre
Tipo
Corresponde a
schema.stored.mode

string

schema.stored.source

string

schema.stored.name

string

schema.sample.size

entero

schema.sample.prejoin

booleano

schema.sample.namespaces

string o arreglo de strings

schema.refreshIntervalSecs

entero

schema.sample.uuidSubtype3Encoding

string

runtime:
memory:
maxPerStage: <integer>
maxPerServer: <integer>
maxPerConnection: <integer>

Importante

El BI Connector proporciona las siguientes opciones para controlar la cantidad de memoria del sistema que el proceso mongosqld puede utilizar para enviar consultas a MongoDB. Estos límites no incluyen la memoria utilizada por BI Connector para otros fines, como la sobrecarga de estructuras de datos, por lo que la cantidad total de memoria que utiliza BI Connector será superior a los límites establecidos con estas opciones.

runtime.memory.maxPerStage

Tipo: entero

Default: unlimited

Especifica la cantidad máxima de memoria en bytes que una etapa de ejecución de consulta puede usar.

runtime.memory.maxPerServer

Tipo: entero

Default: unlimited

Novedades en la versión 2.5.

Especifica la cantidad máxima de memoria en bytes que puede usar un proceso mongosqld.

runtime.memory.maxPerConnection

Tipo: entero

Default: unlimited

Novedades en la versión 2.5.

Especifica la cantidad máxima de memoria en bytes que una conexión de cliente mongosqld puede utilizar.

net:
bindIp: <string>
port: <integer>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <string>
ssl:
mode: <string>
allowInvalidCertificates: <boolean>
PEMKeyFile: <string>
PEMKeyPassword: <string>
CAFile: <string>
Nombre
Tipo
Corresponde a
net.bindIp

string

El componente de nombre de host de --addr

Cambiado en la versión 2.2: Para vincular a varias direcciones IP, ingrese una lista de valores separados por comas.

Por ejemplo:

"72.198.41.200,72.198.41.201,72.198.41.202"
net.port

entero

El componente de puerto de --addr

net.unixDomainSocket.enabled

booleano

Inverso de --noUnixSocket

net.unixDomainSocket.pathPrefix

string

net.unixDomainSocket.filePermissions

string

net.ssl.allowInvalidCertificates

booleano

net.ssl.mode

string

net.ssl.PEMKeyFile

string

net.ssl.PEMKeyPassword

string

net.ssl.CAFile

string

net.ssl.minimumTLSVersion

string

security:
enabled: <boolean>
defaultMechanism: <string>
defaultSource: <string>
gssapi:
hostname: <string>
serviceName: <string>
Nombre
Tipo
Corresponde a
security.enabled

booleano

security.defaultMechanism

string

security.defaultSource

string

security.gssapi.hostname

string

security.gssapi.serviceName

string

security.gssapi.constrainedDelegation

string

mongodb:
versionCompatibility: <string>
net:
uri: <string>
ssl:
enabled: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
PEMKeyFile: <string>
PEMKeyPassword: <string>
CAFile: <string>
CRLFile: <string>
FIPSMode: <boolean>
auth:
username: <username>
password: <password>
source: <auth-db-name>
mechanism: <auth-mechanism>
gssapiServiceName: <service>
Nombre
Tipo
Corresponde a
mongodb.versionCompatibility

string

mongodb.net.uri

string

mongodb.net.ssl.enabled

booleano

mongodb.net.ssl.allowInvalidCertificates

booleano

mongodb.net.ssl.allowInvalidHostnames

booleano

mongodb.net.ssl.PEMKeyFile

string

mongodb.net.ssl.PEMKeyPassword

string

mongodb.net.ssl.CAFile

string

mongodb.net.ssl.CRLFile

string

mongodb.net.ssl.FIPSMode

booleano

mongodb.net.ssl.minimumTLSVersion

string

mongodb.net.auth.username

string

mongodb.net.auth.password

string

mongodb.net.auth.source

string

mongodb.net.auth.mechanism

string

mongodb.net.auth.gssapiServiceName

string

processManagement:
service:
name: <string>
displayName: <string>
description: <string>
Nombre
Tipo
Corresponde a
processManagement.service.name

string

processManagement.service.displayName

string

processManagement.service.description

string

setParameter:
polymorphic_type_conversion_mode: <string>
type_conversion_mode: <string>
Nombre
Tipo
Corresponde a
setParameter.polymorphic_type_conversion_mode

string

Determina cómo mongosqld evalúa los campos del documento que se especifican con varios tipos de datos. Los valores aceptados son off, fast y safe. Para obtener más información sobre estos valores, consulte Variables del sistema.

setParameter.type_conversion_mode

string

Especifica el modo que mongosqld utiliza para convertir tipos de datos. BI Connector utiliza su propio modo (mongosql) por defecto. Los valores aceptados son mongosql y mysql. Para obtener más información sobre estos valores, se puede consultar Variables del sistema.

Estas opciones del archivo de configuración también están disponibles como variables del sistema. Para obtener más información, consulta Variables del sistema.

Puedes utilizar directivas de expansión en tu archivo de configuración para cargar valores de configuración obtenidos de fuentes externas. Las directivas de expansión oscurecen información confidencial como certificados de seguridad y contraseñas.

Para obtener más información sobre cómo usar directivas de expansión, consulte Valores de archivos de configuración obtenidos externamente en el manual de MongoDB.

Nota

Las rutas utilizadas en este archivo de configuración de ejemplo son específicas de Linux. Consulta la documentación de tu sistema local para determinar las rutas correctas para tu sistema.

systemLog:
logAppend: false
path: "/var/log/mongosqld/mongosqld.log"
verbosity: 2
security:
enabled: true
mongodb:
net:
uri: "mongo.example.com:27017"
auth:
username: "root"
password: "changeme"
net:
bindIp: 192.0.2.14
port: 3307
ssl:
mode: "allowSSL"
PEMKeyFile: "/vagrant/certificates/mongosqld-server.pem"
CAFile: "/vagrant/certificates/ca.crt"
schema:
sample:
namespaces: "inventory.*"
processManagement:
service:
name: mongosqld
displayName: mongosqld
description: "BI Connector SQL proxy server"

Utilice la opción --schema para especificar un archivo de esquema que se utilizará para mongosqld.

mongosqld --schema /path/to/schema-file.drdl

Utilice la opción --sampleNamespaces para especificar una base de datos y una colección de la que mongosqld pueda extraer datos de muestra. Si comienza mongosqld sin la opción --sampleNamespaces, muestrea datos de todas las bases de datos disponibles, excepto las bases de datos admin y local.

El siguiente ejemplo toma muestras de datos de una colección llamada addresses en una base de datos llamada contacts:

mongosqld --sampleNamespaces contacts.addresses

Para tomar muestras de datos de todas las colecciones de una base de datos, utiliza la opción --sampleNamespaces con un comodín (*).

El siguiente ejemplo toma muestras de datos de todas las colecciones en una base de datos llamada inventory:

mongosqld --sampleNamespaces 'inventory.*'

Puedes repetir el --sampleNamespaces en la línea de comandos para muestrear datos de varias colecciones dentro de una base de datos, o de varias colecciones en diferentes bases de datos.

El siguiente ejemplo muestra datos de todas las colecciones en bases de datos llamadas cars y boats:

mongosqld --sampleNamespaces 'cars.*' \
--sampleNamespaces 'boats.*' \

Puedes combinar comodines y colecciones específicas con varias opciones de --sampleNamespaces.

El siguiente ejemplo obtiene muestras de todas las colecciones en una base de datos denominada orders, así como de las colecciones FY2015 y FY2016 de la base de datos expenses:

mongosqld --sampleNamespaces 'orders.*' \
--sampleNamespaces expenses.FY2015 \
--sampleNamespaces expenses.FY2016 \

Nota

Solo es necesario encerrar el espacio de nombres entre comillas simples al utilizar un comodín.

Para excluir los espacios de nombres especificados del proceso de muestreo de datos, anteceda el espacio de nombres con un carácter ~ (tilde). El siguiente ejemplo incluye todas las bases de datos y colecciones excepto la colección apples en la base de datos fruit:

mongosqld --sampleNamespaces ~fruit.apples

Usa el carácter comodín * para indicar todas las colecciones de una base de datos. El siguiente ejemplo excluye toda la base de datos vehicles del muestreo de datos:

mongosqld --sampleNamespaces '~vehicles.*'

Si tiene una colección en la que algunos documentos tienen campos diferentes de otros y desea garantizar que el esquema los tenga a todos en cuenta, configure la opción --sampleSize en 0. Esto hace que mongosqld examine todos los documentos en el namespace especificado cuando compila su esquema.

El siguiente ejemplo indica a mongosqld que compile el esquema basándose en todos los documentos del namespace inventory.electronics.

mongosqld --sampleNamespaces inventory.electronics \
--sampleSize 0

Utiliza la opción --schemaSource para especificar una base de datos en la que almacenar la información del esquema. Utiliza la opción --schemaMode para especificar si mongosqld puede guardar en la base de datos de esquemas o solo leer de ella.

El siguiente comando de ejemplo utiliza una base de datos llamada sampleDb para almacenar información de esquemas y establece --schemaMode en auto.

mongosqld --schemaSource sampleDb --schemaMode auto

Importante

Si mongosqld tiene authentication habilitado, el usuario autenticado debe tener el privilegio de escritura sobre la base de datos --schemaSource especificada. Consulta Roles incorporados para obtener más información sobre el rol de readWrite.

Utilice la opción --schemaRefreshIntervalSecs para especificar un intervalo en segundos para que mongosqld vuelva a muestrear los datos y regenere el esquema. El valor por defecto de esta opción es 0, lo que significa que mongosqld nunca reasigna datos.

Si configura un intervalo de remuestreo con --schemaRefreshIntervalSecs y especifica una base de datos de esquema con --schemaSource, no se puede establecer --schemaMode en custom.

El siguiente ejemplo no especifica una base de datos de esquema ni un archivo de esquema, por lo que mantiene su esquema en la memoria. Utiliza --schemaRefreshIntervalSecs para especificar un intervalo de remuestreo de datos de 3600 segundos.

mongosqld --schemaRefreshIntervalSecs 3600

Para conectar mongosqld a una instancia de MongoDB que se ejecuta con autenticación habilitada, utiliza la opción --auth y provee las credenciales del usuario de MongoDB.

El siguiente ejemplo inicia mongosqld con credenciales para un usuario llamado reportsUser con la contraseña reportsPass, quien tiene acceso al namespace reports.inventory.

mongosqld --auth \
--mongo-username reportsUser \
--mongo-password reportsPass \
--sampleNamespaces reports.inventory

Este ejemplo no especifica una base de datos de autenticación con la opción --mongo-authenticationSource, por lo que por defecto es admin. No especifica un mecanismo de autenticación con la opción --mongo-authenticationMechanism, por lo que utiliza por defecto SCRAM-SHA-1.

Si desea especificar un archivo de configuración que guarde los registros en /var/log/mongosqld.log y cargue un esquema desde /var/schema.drdl, puede guardar un archivo como el siguiente en /etc/mongosqld.conf:

Advertencia

Todas las rutas especificadas en el archivo de configuración deben ser absolutas, es decir, deben comenzar con /.

systemLog:
path: /var/log/mongosqld.log
schema:
path: /var/schema.drdl

Luego, puede iniciar mongosqld con la opción --config:

mongosqld --config /etc/mongosqld.conf

Para obtener más información sobre cómo iniciar mongosqld como un servicio de sistema, consulta la Guía de instalación para tu sistema operativo.

Atlas es un servicio en la nube para ejecutar, supervisar y mantener implementaciones de MongoDB, incluida la provisionamiento de servidores dedicados para las instancias de MongoDB.

Atlas utiliza TLS/SSL para cifrar las conexiones y aplica la autenticación por defecto.

Nota

Con el nivel gratuito de MongoDB Atlas, el BI Connector no puede ejecutar pipelines de agregación usando la opción allowDiskUse. Esta opción permite que las etapas de agregación escriban datos como archivos temporales en disco. Para consultar las limitaciones del nivel gratuito de MongoDB Atlas, consulta el manual de MongoDB Atlas.

mongosqld puede usar cualquier certificado TLS válido emitido por una autoridad de certificación, o un certificado autofirmado. Si se utiliza un certificado autofirmado, aunque el canal de comunicación estará cifrado, no habrá validación de la identidad del servidor. Aunque tal situación impedirá la interceptación de la conexión, te hará vulnerable a un ataque de intermediario. Usar un certificado firmado por una autoridad de certificación confiable permitirá que tu cliente de MySQL verifique la identidad del servidor.

Para fines de prueba, puedes crear un archivo clave .pem llamado test.pem utilizando la herramienta openssl:

openssl req -nodes -newkey rsa:2048 -keyout test.key -out test.crt -x509 -days 365 -subj "/C=US/ST=test/L=test/O=test Security/OU=IT Department/CN=test.com"
cat test.crt test.key > test.pem

Comience mongosqld con las siguientes opciones:

Si nombraste tu archivo clave test.pem como en el ejemplo anterior, puedes ejecutar lo siguiente, sustituyendo tu URI de clúster y las credenciales de acceso:

mongosqld --mongo-ssl \
--auth \
--sslPEMKeyFile test.pem \
--mongo-uri <uri> \
--sslMode allowSSL \
--mongo-username <username> \
--mongo-password <password>

Indique tu nombre de usuario, contraseña y la base de datos de autenticación al cliente SQL. Por ejemplo, al usar mysql sin verificar su mongosqld certificado de servidor:

mysql --host <mongosqld-host> --port <mongosqld-port> -u <username>?source=admin -p --ssl-mode required --enable-cleartext-plugin

Consulta Conexión desde el cliente MySQL para obtener más información sobre el uso del cliente mysql con el BI Connector.

El siguiente gráfico describe los tipos de mongosqld configuraciones de una empresa emergente y las opciones utilizadas con cada una.

Modo
mongosqld opciones
Comportamiento

Esquema autónomo

mongosqld toma muestras de datos en el inicio. Si --schemaRefreshIntervalSecs > 0, remuestrea a intervalos especificados.

Por ejemplo:

mongosqld --schemaRefreshIntervalSecs 3600

Para más información, consulte Modo de esquema autónomo (muestreo en caché).

Esquema Personalizado

Lee los datos del esquema de la base de datos especificada por --schemaSource.

Por ejemplo:

mongosqld --schemaMode custom \
--schemaSource schemaDb

Auto Schema

Muestrea y conserva datos de esquema en una base de datos de esquema especificada por el usuario.

Por ejemplo:

mongosqld --schemaMode auto \
--schemaSource schemaDb \
--schemaRefreshIntervalSecs 3600

Para obtener más información, consulta Auto esquema Mode (Persist a esquema in MongoDB).

Las siguientes configuraciones de opciones de mongosqld son inválidas y provocan un error en el arranque.

Modo
mongosqld opciones
Comportamiento

Escritor autónomo (no válido)

Esta configuración no es válida para una autónoma mongod instancia porque en el modo auto debe especificarse una base de datos que pueda escribirse.

Lector de muestreo agrupado (inválido)

Cuando se utiliza en un set de réplicas MongoDB o en un clúster, esta configuración es inválida. Cuando se especifica una base de datos para almacenar datos de esquemas con --schemaSource, --schemaMode debe configurarse en auto para que el esquema pueda actualizarse desde el primario para mantener la coherencia en todo el clúster.

Volver

Componentes de Connector

En esta página