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:
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.
Comenzando 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
Utilice para crear un archivo de esquema a partir de una instancia de mongodrdl 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 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.
Versión mínima de TLS predeterminada
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.
Opciones de línea de comandos
Opciones principales
--helpDevuelve información sobre las opciones y el uso
mongosqldde.
--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 admite las siguientes opciones dentro de la cadena de
--mongo-uriconexió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 en la cadena de conexión,
sslejecutemongosqld--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
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>Novedades 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>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
--authcredenciales--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
--authestá habilitado. Úselo junto con las opciones de credenciales--mongo-usernamey.--mongo-passwordValorDescripció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 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
--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 cómo configurar el modo de muestreo, consulte la Tabla 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 remuestrea los datos para crear su esquema. El valor
mongosqldpredeterminado0es, 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 BSONcsharp: La representación UUID heredada de C#/.NETjava:La representación UUID heredada de Java
--prejoinNovedades 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 registro
--logAppendAgrega una nueva salida de registro a un archivo de registro existente especificado
--logPathpor.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
--logRotaterenameestablece 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
--logRotatereopenestablece 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
SIGUSR1para reiniciar el procesomongosqldy rotar los registros.- Si
--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á habilitado para Windows.
--verbose, -vEspecifica que debe proporcionar una salida de registro más
mongosqlddetallada.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
mongosqldeventos básicos y 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 a un archivo que contiene el certificado y la 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.
Habilitar o deshabilitar 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 el certificado TLS/SSL y la clave para los clientes 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 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-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>Predeterminado: 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.La fuente de autenticación
$externalalmacena 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
sourcepará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 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
Especifique 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.
Opción de parámetro de establecimiento
--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 y utiliza
mongosqldla--setParameteropción para especificar el modo de conversión de tipo: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 | Inversa 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 de 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 |
Establecer 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 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.
Excluir bases de datos y colecciones de la muestra
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.*'
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 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
Especificar una base de datos para conservar 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 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.
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 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.
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
Consulte Conectarse desde el cliente MySQL para obtener más detalles sobre el uso del mysql cliente con el conector de BI.
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 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 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 no vá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) |
| Esta configuración no es válida para una instancia independiente porque en |
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 |