Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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:

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

Puede especificar de qué espacio o espacios de nombres muestrear datos con la --sampleNamespaces opción. Si no especifica ningún espacio de nombres ni un archivo de esquema, muestrea datos de todas las bases de datos de la instancia de MongoDBmongosqld de admin local destino, excepto y.

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

Utilice para crear un archivo de esquema a partir de una instancia de mongodrdl 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 los usuarios y roles de MongoDB,consulte Control de acceso basado en roles.

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

Novedades 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.

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

--help

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

--addr

Predeterminado: 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 admite las siguientes opciones dentro de la cadena de --mongo-uri 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 en la cadena de conexión,ssl ejecute mongosqld --mongo-sslcon.

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>

Novedades 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>

Predeterminado: admin

Novedades en la versión 2.3.

Especifica la base de datos que contiene las credenciales del usuario de descubrimiento de esquemas. Solo está disponible si está habilitado. Úselo junto con las opciones de --auth credenciales --mongo-username --mongo-passwordy.

--mongo-authenticationMechanism <authMechanism>

Por defecto: SCRAM-SHA-1

Novedades en la versión 2.3.

Especifica el mecanismo de autenticación que se usará para la detección de esquemas. Solo está disponible si --auth está habilitado. Úselo junto 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 en el proceso de muestreo de datos que crea el esquema. También es posible especificar varias colecciones de una sola base de datos o 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 cómo configurar el modo de muestreo, consulte la Tabla 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 remuestrea los datos para crear su esquema. El valor mongosqld predeterminado 0 es, lo que significa que después del muestreo inicial no se realiza ningún remuestreo automático. El valor especificado debe ser un entero positivo.

Para forzar una actualización única del esquema, utilice 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

  • java:La representación UUID heredada de Java

--prejoin

Novedades 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 una nueva salida de registro a un archivo de registro existente especificado --logPath por.

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 --logRotate renameestablece en:
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 --logRotate reopenestablece en:
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á habilitado para Windows.

--verbose, -v

Especifica que debe proporcionar una salida de registro más mongosqld 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 mongosqld eventos básicos y 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 a un archivo que contiene el certificado y la 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

Habilita el modo FIPS en la biblioteca 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.

Habilitar o deshabilitar 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 el certificado TLS/SSL y la clave para los clientes 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 solicitudes entrantes de 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>

Predeterminado: 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.

La fuente de autenticación $external almacena una referencia a 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 predeterminado puede omitir el source parámetro 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

Especifique 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 y utiliza mongosqld la --setParameter opción para especificar el modo de conversión de tipo:

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

Inversa 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 toma muestras de datos de todas las colecciones en las bases de datos denominadas 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 espacios de nombres específicos del proceso de muestreo de datos, antepóngalos con una tilde ~. El siguiente ejemplo incluye todas las bases de datos y colecciones, excepto la colección apples de 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 mongosqld a que construya el esquema basándose en todos los documentos en el inventory.electronics espacio de nombres.

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 comienza con las credenciales de un usuario mongosqld llamado reportsUser con reportsPass contraseña, que tiene acceso al espacio de reports.inventory nombres.

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, por lo que el --mongo-authenticationSource valor admin predeterminado es. Tampoco especifica un mecanismo de autenticación con la --mongo-authenticationMechanism opción, por lo que el valor predeterminado SCRAM-SHA-1 es.

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 puedes iniciar mongosqld con la --config opción:

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

Consulte Conectarse desde el cliente MySQL para obtener más detalles sobre el uso del mysql cliente con el conector de BI.

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 muestrea datos al iniciar. Si --schemaRefreshIntervalSecs >, 0 remuestrea en el intervalo especificado.

Por ejemplo:

mongosqld --schemaRefreshIntervalSecs 3600

Para obtener más información,consulte Modo de esquema independiente (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 instancia independiente porque en mongod el auto modo debe especificarse una base de datos escribible.

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