Descripción
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.
Uso
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.
Iniciando mongosqld con un Archivo de Esquema
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.
Comenzando mongosqld con una base de datos de esquema
Utiliza la opción --schemaSource para especificar una base de datos en la que almacenar la información del esquema.
mongosqld --schemaSource sampleDb
Inicio de mongosqld con namespaces especificados
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.
Permisos de usuario en MongoDB
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.
Versión mínima de TLS por defecto
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.
Opciones de línea de comandos
Opciones principales
--helpDevuelve información sobre las opciones y el uso de
mongosqld.
--versionDevuelve 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-uriadmite 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 demongosqld, consulta Opciones de línea de comandos.Nota
En lugar de especificar un
usernamey unpassworden su cadena de conexión, ejecutemongosqldcon la opción--authpara dirigir amongosqlda pasar las credenciales de autenticación proporcionadas por el cliente SQL al servidor de MongoDB.De manera similar, en lugar de habilitar
sslen la cadena de conexión, se puede ejecutarmongosqldcon--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
mongosqldopciones admitidas no son compatibles.
--mongo-versionCompatibility <version-number>Restringe
mongosqlda 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
mongosqldpara 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
mongosqldencuentra una cadena que es más larga que la longitud máxima,mongosqldla 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
--authestá activado. El usuario especificado por--mongo-usernamedebe ser un usuario válido de MongoDB con el privilegiolistDatabases. 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
--authestá 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
--authestá activado. Utilice en conjunto con las opciones de credenciales--mongo-usernamey--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
--authestá activado. Utilice en conjunto con las opciones de credenciales--mongo-usernamey--mongo-password.ValorDescripciónRFC 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
PLAINpara autenticar a los usuarios de base de datos.PLAINtransmite 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.
Opciones de esquema
--schemaDirectory <directoryname>Obsoleto desde la versión 2.2.
Use
--schemaen su lugar.
--sampleNamespaces <db.collection>Novedades en la versión 2.5.
--sampleNamespacesespecifica 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
--sampleNamespaceso la opción--schema,mongosqldtoma muestras de datos de todas las bases de datos y colecciones MongoDB disponibles, excepto de las bases de datosadminylocal.
--schemaMode <[custom|auto]>Por defecto:
customNovedad 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--schemaModeComportamientocustommongosqldlee un esquema almacenado de la base de datos MongoDB especificada por la opción--schemaSource.automongosqldmuestrea 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
mongosqldtieneauthenticationhabilitado, el usuario autenticado debe tener el privilegio de escritura sobre la base de datos--schemaSourceespecificada. Consulta Roles incorporados para obtener más información sobre el rol dereadWrite.
--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,--schemaModey--schemaSource,mongosqldmantendrá 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:
defaultSchemaNovedad 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:--schemaModeValor--schemaNameComportamientocustomEl nombre del esquema a cargar de la base de datos especificada por la opción
--schemaSource.autoEl nombre del esquema que se escribirá en la base de datos
--schemaSourcedespué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 elmongosqldcon el--schemaName. Si no almacenas el nombre del esquema cuando lo cargas, el nombre del esquema por defecto esdefaultSchema. Si el nombre del esquema no existe, esto provoca un error demongosqldsimilar 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
--sampleSizeen0para incluir todos los documentos en el namespace especificado al crear el esquema. Si no especificas un namespace, configurar--sampleSizea0hace quemongosqldconsidere todos los documentos en todas las bases de datos (excluyendolocal,adminysystem) al construir el esquema. Vea un ejemplo a continuación.
--schemaRefreshIntervalSecs <number>Por defecto: 0
Cambiado en la versión 2.11: Renombrado
--sampleRefreshIntervalSecsa--schemaRefreshIntervalSecsEl intervalo en segundos en el que
mongosqldvuelve a muestrear los datos para crear su esquema. El valor por defecto es0, 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 BSONcsharp: La representación UUID heredada de C#/.NETjavaLa representación heredada UUID de Java
--prejoinNovedad 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
testcon 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
--prejoinhace que los datos de la columnaase incluyan en la tablatest_b:mysql> select * from test_b; +------+------+--------+-------+ | _id | a | b | b_idx | +------+------+--------+-------+ | 1 | 3 | orange | 0 | | 1 | 3 | apple | 1 | | 1 | 3 | pear | 2 | +------+------+--------+-------+
Opciones de registros
--logAppendAgrega 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 | renamePor 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 LOGSen el MongoDB Connector for BI o al reiniciarmongosqld.- Si estableces
--logRotateenrename: - 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
--logRotateenreopen: - La entrada de registro existente se cierra y se vuelve a abrir.
Nota
En las plataformas UNIX y macOS, puede emitir una señal
SIGUSR1para reiniciar el procesomongosqldy rotar los registros.- Si estableces
--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
0para desactivar el registro de uso.Nota
El registro de uso no está activado para Windows.
--verbose, -vEspecifica que
mongosqlddebe proporcionar una salida de registro más detallada.La siguiente tabla describe la información provista en cada nivel de registro:
Opción de cartaNivel de registroContenido del mensaje--quietNinguno
No registrar registro.
No flag
predeterminado
Mensajes de registro que notifican al usuario los eventos básicos de
mongosqldy los cambios de estado.-vAdministrator
Mensajes de registro que proporcionan información a los administradores de
mongosqld.-vvDesarrollador
Mensajes de registro útiles para el soporte y desarrollo de MongoDB.
Opciones TLS/SSL de MongoDB
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-sslPor defecto: False
Instruye a
mongosqlda usar TLS/SSL al conectarse a una instancia de MongoDB.
--mongo-sslPEMKeyFile <filename>Especifica el archivo
.pemque contiene tanto el certificado como la clave TLS/SSL para quemongosqldlos utilice al conectarse a MongoDB. Puede especificar el nombre del archivo de.pemutilizando una ruta relativa o absoluta.Esta opción es obligatoria cuando se utiliza la opción
--mongo-sslpara conectarse a unmongodomongosque tieneCAFilehabilitado sinallowConnectionsWithoutCertificates.
--mongo-sslPEMKeyPassword <password>Especifica la ruta hacia el archivo que contiene el certificado y clave privada para conectarse a MongoDB.
--mongo-sslAllowInvalidHostnamesPermite que
mongosqldse conecte a un servidor de MongoDB cuyo nombre de host difiera del nombre de host en su certificado TLS/SSL.
--mongo-sslAllowInvalidCertificatesPermite 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
.pemde la instancia de MongoDB que contiene la cadena de certificados raíz de la autoridad certificadora. Especifique el nombre del archivo.pemutilizando rutas relativas o absolutas.Advertencia
Para las conexiones SSL (
--mongo-ssl) amongodymongos, si elmongosqldse ejecuta sin el--mongo-sslCAFile,mongosqldno intentará validar los certificados del servidor. Esto crea una vulnerabilidad frente a la caducidad de los certificadosmongodymongos, así como ante procesos externos que se hacen pasar por instancias válidas demongodomongos. Asegúrate de siempre especificar el archivo CA para validar los certificados del servidor en casos donde exista la posibilidad de intrusión.
Opciones de cliente TLS/SSL
--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
sslModepuede ser uno de los siguientes:
--sslPEMKeyFile <filename>Especifica el archivo
.pemque contiene tanto el certificado como la clave TLS/SSL para los clientes de MySQL. Especifique el nombre del archivo.pemusando rutas relativas o absolutas.
--sslPEMKeyPassword <password>Especifica la contraseña utilizada para descifrar la clave privada especificada por
--sslPEMKeyFile.
--sslAllowInvalidCertificatesPermite que los clientes de MySQL presenten certificados TLS/SSL de cliente no válidos.
--sslAllowInvalidHostnamesPermite que los clientes de SQL se conecten a un
mongosqldcuyo nombre de host difiere del nombre de host en su certificado TLS/SSL.
--sslCAFile <filename>Especifica el archivo
mongosqld.pemque contiene la cadena de certificados raíz de la Autoridad de Certificación. Especifica el nombre del archivo.pemusando rutas relativas o absolutas.
--sslCRLFile <filename>Especifica el
mongosqldarchivo.pemque contiene la lista de revocación de certificados.
--authRequiere 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-usernamey--mongo-passwordo la configuraciónmongodb.net.auth.usernameymongodb.net.auth.passworden el archivo de configuración.mongosqldutiliza 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
mongosqldutiliza al autenticarse a una base de datos MongoDB. Los mecanismos de autenticaciónGSSAPIyPLAINusan el origen$external, mientras queSCRAM-SHA-1ySCRAM-SHA-256usan 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
$externalalmacena 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
sourcede 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 valormechanismde su nombre de usuario de MySQL o Tableau.ValorDescripciónRFC 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
PLAINpara autenticar a los usuarios de base de datos.PLAINtransmite 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 defectoTLS1_1corresponde a la versión TLS 1.1.
Opciones de Servicio
--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.
Kerberos Options
--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.
--gssapiConstrainedDelegationPor 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
mongosqldesté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.
Opciones de socket
--filePermissions <mode>Por defecto: 0700
Especifica los permisos para el archivo de socket de dominio UNIX.
--unixSocketPrefix <path>Por defecto: /tmp
Especifica un directorio alternativo para el
mongosqldsocket de dominio Unix.mongosqldcreará un archivo de socket llamadomysql.sockdebajo de esta ruta. Si no especificas--unixSocketPrefix, el socket existirá en/tmp/mysql.sock.
Configurar opción de parámetro
--setParameter <parameter>- ParameterTipoCorresponde a
"polymorphic_type_conversion_mode=<value>"string
Determina cómo
mongosqldevalúa los campos del documento que se especifican con varios tipos de datos. Los valores aceptados sonoff,fastysafe. Para obtener más información sobre estos valores, consulte Variables del sistema."type_conversion_mode=<value>"string
Especifica el modo que
mongosqldutiliza para convertir tipos de datos. BI Connector utiliza su propio modo (mongosql) por defecto. Los valores aceptados sonmongosqlymysql. Para obtener más información sobre estos valores, se puede consultar Variables del sistema.El siguiente ejemplo inicia
mongosqldy usa la opción--setParameterpara especificar el modo de conversión de tipos:mongosqld --setParameter "type_conversion_mode=mongosql"
archivo de configuración
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.
Opciones de registro
systemLog: logAppend: <boolean> logRotate: "rename"|"reopen" path: <string> quiet: <boolean> verbosity: <integer>
Nombre | Tipo | Corresponde a |
|---|---|---|
booleano | ||
string | ||
string | ||
booleano | ||
entero |
Opciones de esquema
schema: path: <string> maxVarcharLength: <integer>
Nombre | Tipo | Corresponde a |
|---|---|---|
string | ||
entero |
Opciones de muestreo de datos
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 |
|---|---|---|
string | ||
string | ||
string | ||
entero | ||
booleano | ||
string o arreglo de strings | ||
entero | ||
string |
Opciones de ejecución
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.maxPerStageTipo: entero
Default: unlimited
Especifica la cantidad máxima de memoria en bytes que una etapa de ejecución de consulta puede usar.
runtime.memory.maxPerServerTipo: 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.maxPerConnectionTipo: 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
mongosqldpuede utilizar.
Opciones de red
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 | |
|---|---|---|---|
string | El componente de nombre de host de Cambiado en la versión 2.2: Para vincular a varias direcciones IP, ingrese una lista de valores separados por comas. Por ejemplo: | ||
entero | El componente de puerto de | ||
booleano | Inverso de | ||
string | |||
string | |||
booleano | |||
string | |||
string | |||
string | |||
string | |||
string |
Opciones de seguridad
security: enabled: <boolean> defaultMechanism: <string> defaultSource: <string> gssapi: hostname: <string> serviceName: <string>
Nombre | Tipo | Corresponde a |
|---|---|---|
booleano | ||
string | ||
string | ||
string | ||
string | ||
string |
Opciones de Host MongoDB
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 |
|---|---|---|
string | ||
string | ||
booleano | ||
booleano | ||
booleano | ||
string | ||
string | ||
string | ||
string | ||
booleano | ||
string | ||
string | ||
string | ||
string | ||
string | ||
string |
Opciones de gestión de procesos
processManagement: service: name: <string> displayName: <string> description: <string>
Nombre | Tipo | Corresponde a |
|---|---|---|
string | ||
string | ||
string |
Definir opciones de parámetros
setParameter: polymorphic_type_conversion_mode: <string> type_conversion_mode: <string>
Nombre | Tipo | Corresponde a |
|---|---|---|
string | Determina cómo | |
string | Especifica el modo que |
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.
Cargar valores de configuración externa
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.
Archivo de configuración de ejemplo
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"
Ejemplos de uso
mongosqld con un archivo de esquema
Utilice la opción --schema para especificar un archivo de esquema que se utilizará para mongosqld.
mongosqld --schema /path/to/schema-file.drdl
Especifica una colección para muestrear
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
Especifique múltiples colecciones para muestrear
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.
Excluir bases de datos y colecciones de la muestra
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.*'
Muestra todos los documentos en una colección
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
Especificar una base de datos para guardar un esquema
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.
Especificar un intervalo de remuestreo de datos
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
mongosqld con Autenticación activada
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.
mongosqld con un archivo de configuración
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.
Uso con Atlas
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.
gráfica de referencia de modos de muestreo
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 |
|
Por ejemplo: 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 Por ejemplo: | |||
Auto Schema |
| Muestrea y conserva datos de esquema en una base de datos de esquema especificada por el usuario. Por ejemplo: Para obtener más información, consulta Auto esquema Mode (Persist a esquema in MongoDB). |
Configuraciones inválidas
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) |
| |
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 |