Docs Menu
Docs Home
/ /

mongodrdl

Nota

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

mongodrdl Es una herramienta de gestión de esquemas relacionales para el Conector MongoDB para BI. El binario mongodrdl puede:

  • Produce a schema en función del contenido de una o más colecciones de MongoDB y escribirlos en .drdl archivos utilizados por mongosqld.

  • Upload un .drdl esquema de archivo a la implementación de MongoDB desde la que lee su Conector de BI.

  • Download esquemas almacenados de su implementación de MongoDB.

  • Delete esquemas almacenados de su implementación de MongoDB.

  • Name esquemas almacenados en su implementación de MongoDB para una gestión más sencilla.

Puede editar .drdl manualmente un archivo para personalizar el esquema del Conector de BI. Para obtener más información sobre el .drdl formato y la edición manual .drdl de archivos, consulte Cargar un esquema desde un archivo DRDL.

Para obtener más información sobre todas las opciones de administración de esquemas de BI Connector, consulte Asignar esquemas relacionales a MongoDB.

Importante

Para aplicar cualquier cambio que realice en sus archivos DRDL, debe mongosqld reiniciar.

mongodrdl utiliza la siguiente sintaxis:

mongodrdl [<command>] [<options...>]

Nuevo en la versión 2.6.

La versión mínima de TLS por defecto es 1.1 para conexiones salientes de mongodrdl a MongoDB.

Puede ajustar esta configuración con la --minimumTLSVersion opción.

Nuevo en la versión 2.11.

El comportamiento de mongodrdl se determina mediante uno de los siguientes comandos. Si no se especifica ningún comando, mongodrdl muestrea el espacio de nombres especificado.

sample

Muestrea los espacios de nombres especificados por, el comando --db opcional --collection y otras opciones de línea de comandos para generar un archivo .drdl. El sample comando encapsula todo el comportamiento de anterior a mongodrdl la 2 versión.11

mongodrdl sample --db <db-name> --collection <collection-name> --out <filename>.drdl
list-schema-ids

Enumera la representación de cadena del ObjectId de cada esquema almacenado y la fecha en que se creó.

list-schema-ids requiere la siguiente opción:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

Por ejemplo, el siguiente comando enumera los identificadores de esquema en la base de datos schemas:

mongodrdl list-schema-ids --schemaSource schemas

La salida se parece a la siguiente:

5d72ad695c23a9e3e26e3c85 2019-09-06T15:03:05.556Z
5d72adea5c23a9e44882a1ad 2019-09-06T15:05:14.349Z
list-schema-names

Enumera el nombre y la representación de cadena del ObjectId para cada esquema almacenado que tiene un nombre.

Los esquemas almacenados no tienen nombre de forma predeterminada. Puede hacer referencia a un esquema con nombre usando la --name opción con download delete los comandos y. Use el comando para nombrar o renombrar un name-schema esquema.

list-schema-names requiere la siguiente opción:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

Por ejemplo, el siguiente comando devuelve el nombre y ObjectId para cada esquema nombrado en la base de datos schemas:

mongodrdl list-schema-names --schemaSource schemas

La salida se parece a la siguiente:

movies 5d72ad695c23a9e3e26e3c85
theaters 5d72adea5c23a9e44882a1ad
upload

Carga el esquema del .drdl archivo especificado a la base de datos especificada por la --schemaSource opción. Los esquemas se cargan en la schemas colección.

upload requiere las siguientes opciones:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

--drdl

Obligatorio. Ruta al .drdl archivo para cargar.

Por ejemplo, el siguiente comando carga el esquema del archivo movies.drdl a la base de datos schemas:

mongodrdl upload --schemaSource schemas --drdl ./movies.drdl

Se devuelve la representación de cadena del ObjectId del esquema cargado:

5d793f3f6a26a3ce66c304ea

El siguiente paso es almacenar el esquema con un nombre que usted proporcione, utilizando el name-schema comando:

mongodrdl name-schema --name movies --schemaSource schemas --schema 5d793f3f6a26a3ce66c304ea

Para usar el esquema recién cargado que recibió un nombre específico, reinicia mongosqld con la base de datos del esquema especificada por la opción --schemaSource y con el nombre del esquema especificado con --schemaName:

mongosqld --schemaSource <schema-db> --schemaName movies

Importante

Si carga un esquema personalizado, debe almacenarlo con su nombre especificado name-schema () y luego especificar este nombre en mongosqld --schemaNamecon. Si no almacena el nombre del esquema al cargarlo, el nombre predeterminado defaultSchema será. Si el nombre del esquema no existe, se generará un error de similar al siguiente: Esquema de MongoDB aún no disponible. Error al inicializar mongosqld el esquema: no se encontró ningún esquema para el nombre.

download

Descarga un esquema especificado por su nombre o representación en cadena de la ObjectId y la imprime en la consola.

download acepta las siguientes opciones:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

--name

El nombre del esquema. Para obtener más información sobre cómo nombrar esquemas, consulte el name-schema comando.

Obligatorio si --schema no se especifica.

--schema

La representación de cadena del ObjectId del esquema.

Obligatorio si --name no se especifica.

Por ejemplo, el siguiente comando imprime el esquema movies en la consola:

mongodrdl download --schemaSource schemas --name movies

Para almacenar el esquema en un archivo .drdl, dirija la salida al archivo .drdl deseado:

mongodrdl download --schemaSource schemas --name movies > ./movies.drdl
delete

Elimina un esquema especificado por su nombre o representación de cadena del ObjectId.

delete acepta las siguientes opciones:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

--name

El nombre del esquema. Para obtener más información sobre cómo nombrar esquemas, consulte el name-schema comando.

Obligatorio si --schema no se especifica.

--schema

La representación de cadena del ObjectId del esquema.

Obligatorio si --name no se especifica.

Por ejemplo, el siguiente comando elimina el esquema con id 5d7941dc6a26a3d0fc397284 en la base de datos schemas:

mongodrdl delete --schemaSource schemas --schema 5d7941dc6a26a3d0fc397284
name-schema

Crea un nuevo nombre para un esquema o actualiza el nombre existente de un esquema.

Los esquemas almacenados no tienen nombre de forma predeterminada. Puede hacer referencia a un esquema con nombre usando la --name opción con download delete los comandos y. Use el comando para nombrar o renombrar un name-schema esquema.

name-schema requiere las siguientes opciones:

Nombre
Descripción

Obligatorio. Especifica la base de datos donde se almacena la información del esquema.

Obligatorio. El nuevo nombre del esquema.

Obligatorio La representación de cadena del ObjectId del esquema.

Por ejemplo, el siguiente comando nombra el esquema 5d72adea5c23a9e44882a1ad en la base de datos schemas como movies:

mongodrdl name-schema --name movies --schemaSource schemas --schema 5d72adea5c23a9e44882a1ad
--help

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

--version

Devuelve el mongodrdl número de versión.

--verbose <level>, -v <level>

Especifica que mongodrdl debe proporcionar una salida de registro más detallada. Inclúyelo varias veces para mayor nivel de verbosidad (p. ej. -vvvvv), o especifica un valor numérico (p. ej. --verbose=5).

--quiet

Oculta toda la salida del registro.

--uri <mongodb-uri>

Novedad en la versión 2.12.

Cadena de conexión URI de MongoDB.

Importante

Las siguientes opciones de línea de comandos no se pueden utilizar junto con la --uri opción:

En su lugar, especifique estas opciones como parte de su --uri cadena de conexión.

--host <hostname><:port>, -h <hostname><:port>

Por defecto: localhost:27017

Especifica un hostname resolvible para el mongod al que conectar. Por defecto, el mongodrdl intenta conectarse a una instancia de MongoDB que se ejecuta en localhost en el puerto número 27017.

Para conectarse a un set de réplicas, especifica el replSetName y una lista de nodos iniciales de los miembros del set, tal como se muestra a continuación:

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

Siempre puede conectarse directamente a una sola instancia de MongoDB especificando directamente el host y el número de puerto.

--port <port>

Por defecto: 27017

Especifica el puerto TCP en el que la instancia de MongoDB escucha las conexiones de los clientes.

--db <database>, -d <database>

Especifica una base de datos desde la cual generar un archivo de esquema .drdl.

--collection <collection>, -c <collection>

Especifica una colección a partir de la cual se generará un archivo de esquema .drdl. Si no se especifica ninguna colección, esta opción utilizará todas las colecciones de la base de datos o instancia especificada.

--customFilterField <name>, -f <name>

Especifica el nombre del campo que se añadirá a un filtro personalizado de MongoDB. Consulta Filtros personalizados para obtener más información.

--out <path>, -o <path>

Predeterminado: Salida estándar.

Especifica la ruta donde escribirá el archivo de esquema. Para enviar el esquema a la salida estándar, especifique mongodrdl "-" en lugar de una ruta.

--sampleSize <size>, -s <size>

Por defecto: 1000

Especifica la cantidad de documentos a muestrear al generar el esquema de la colección.

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

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

  • old: Antigua representación del subtipo binario BSON

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

  • java:La representación UUID heredada de Java

--preJoined

Generar tablas desenrolladas que incluyan columnas principales, lo que da como resultado una tabla "preunida".

--schema <db-id>

Nuevo en la versión 2.11.

Obligatorio. Especifica la representación en string del ObjectId del esquema.

--name <db-name>

Nuevo en la versión 2.11.

Especifica el nombre del esquema.

Importante

Si carga un esquema personalizado, debe almacenarlo con su nombre especificado name-schema () y luego especificar este nombre en mongosqld --schemaNamecon. Si no almacena el nombre del esquema al cargarlo, el nombre predeterminado defaultSchema será. Si el nombre del esquema no existe, se generará un error de similar al siguiente: Esquema de MongoDB aún no disponible. Error al inicializar mongosqld el esquema: no se encontró ningún esquema para el nombre.

--schemaSource <db-name>

Nuevo en la versión 2.11.

Especifica la base de datos donde se almacena la información del esquema. El comando no utiliza esta opción.sample

--ssl

Por defecto: False

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

--sslCAFile <filename>

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

Advertencia

Para las conexiones SSL (--ssl) amongodymongos, simongodrdlse ejecuta sin--sslCAFile, mongodrdlno intentará validar los certificados del servidor. Esto crea una vulnerabilidad para los certificadosmongodymongoscaducados, así como para los procesos externos que se hacen pasar por instanciasmongodomongosválidas. Asegúrese de especificar siempre el archivo de CA para validar los certificados del servidor en casos donde exista la posibilidad de intrusión.

--sslPEMKeyFile <filename>

Especifica el .pem archivo que contiene el certificado TLS/SSL y la clave que mongosqld usará al conectarse a MongoDB. Puede especificar el nombre del .pem archivo mediante una ruta relativa o absoluta.

Esta opción es necesaria cuando se utiliza la opción--sslpara conectarse a unmongodomongosque tieneCAFilehabilitado sinnet.ssl.allowConnectionsWithoutCertificates.

--sslPEMKeyPassword <password>

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

--sslCRLFile <filename>

Especifica el archivo .pem que contiene la Lista de revocación de certificados. Especifica el nombre del archivo .pem con rutas relativas o absolutas.

--sslAllowInvalidCertificates

Permite que la instancia de MongoDB presente un certificado SSL/TLS de servidor no válido. Al usar la configuración, MongoDB registra el uso del certificado no válido como allowInvalidCertificates advertencia.

--sslAllowInvalidHostnames

Desactiva la validación de nombres de host en certificados TLS/SSL. Permite mongodrdl que se conecte a instancias de MongoDB si el nombre de host de sus certificados no coincide con el especificado.

--sslFIPSMode

Indica a que use el modo FIPS de la biblioteca OpenSSL instalada. Su mongodrdl --sslFIPSMode sistema debe tener una biblioteca OpenSSL compatible con FIPS para usar la opción.

--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Predeterminado: TLS1_1

Especifica la versión mínima mongodrdl mongod mongos TLS1_1 1de TLS requerida para que se conecte a una instancia o. El valor predeterminado corresponde a la versión de1 TLS..

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

Especifica un nombre de usuario con el cual autenticarse en una base de datos MongoDB que requiere autenticación. Utilízalo en conjunto con las opciones --password y --authenticationDatabase.

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

Especifica una contraseña con la que autenticarse en una base de datos de MongoDB que requiere autenticación. Utilízalo en conjunto con las opciones --username y --authenticationDatabase.

--authenticationDatabase <dbname>

Especifica la base de datos donde se crea el usuario. Consulte Base de datos de autenticación.

--authenticationMechanism <name>

Por defecto: SCRAM-SHA-1

Especifica el mecanismo de autenticación que mongodrdl utiliza la instancia para autenticarse en mongod mongoso.

Valor
Descripción

Mecanismo de autenticación de respuesta al desafío con sal estándarRFC que utiliza la 5802 1 función hash SHA.

Novedades en la versión 2.6: Mecanismo de autenticación de respuesta al desafío con sal estándarRFC que utiliza la 7677 2 función hash SHA.

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.

--gssapiServiceName <service-name>

Predeterminado: mongodb

Nombre del servicio a utilizar durante la autenticación mediante GSSAPI/Kerberos.

--gssapiHostName <hostname>

Predeterminado: dirección del servidor remoto

Nombre de host a utilizar durante la autenticación mediante GSSAPI/Kerberos.

El Conector de BI utiliza una canalización de agregación de MongoDB para realizar consultas en una base de datos MongoDB. Puede agregar un campo especial a su esquema para pasar una cadena de consulta personalizada `$match` de MongoDB a su instancia de MongoDB.

Usa la opción --customFilterField con mongodrdl para nombrar un campo de filtro personalizado. Este campo pasa una etapa nativa de MongoDB $match para usar como la primera etapa del pipeline de agregación, que filtra cualquier resultado devuelto de MongoDB. El conector BI aplica esta etapa antes de que cualquier etapa adicional se aplique desde SQL.

La consulta puede hacer referencia a cualquier campo de la colección, incluso si los campos no están expuestos en el esquema relacional.

Para un ejemplo de uso de filtros personalizados, consulta Ejemplo de filtro personalizado.

Dados documentos de la siguiente forma en la colección abc en la base de datos test:

{
"_id": ObjectId(),
"close": 7.45,
"detail": { "a": 2, "b": 3 }
}

Ejecute para generar un esquema basado en esta mongodrdl colección:

mongodrdl -d test -c abc -o schema.drdl

El archivo de esquema generado (schema.drdl) se parece al siguiente:

schema:
- db: test
tables:
- table: abc
collection: abc
pipeline: []
columns:
- Name: _id
MongoType: bson.ObjectId
SqlName: _id
SqlType: varchar
- Name: close
MongoType: float64
SqlName: close
SqlType: numeric
- Name: detail.a
MongoType: float64
SqlName: detail.a
SqlType: numeric
- Name: detail.b
MongoType: float64
SqlName: detail.b
SqlType: numeric

Para utilizar este campo, especifique el indicador --customFilterField con el nombre que desea que tenga este campo:

mongodrdl [ other options ] --customFilterField _MONGOFILTER -o schema.drdl

Su archivo DRDL schema.drdl incluirá el siguiente campo en cada tabla generada:

- Name: _MONGOFILTER
MongoType: mongo.Filter
SqlName: _MONGOFILTER
SqlType: varchar

Para agregar la etapa de consulta especial de MongoDB a su SQL estándar, utilice la siguiente sintaxis SQL:

SELECT <normal>
FROM <tablename>
WHERE <normal conditions> AND
_MONGOFILTER='{ <json string that represents query to use> }'
SELECT name,age
FROM users
WHERE active='t' AND
_MONGOFILTER='{"addr":{"$elemMatch":{"city":"Springfield","state":"CA"}}}'

El conector de BI traducirá el SQL anterior en la siguiente expresión de agregación de MongoDB:

db.users.aggregate([
{$match:{"addr":{"$elemMatch":{"city":"Springfield","state":"CA"}}},
{$match:{"active":true}},
{$project:{"name":1, "age":1}}
]);

Puede usar este filtro personalizado en cualquier herramienta de inteligencia empresarial filtrando por su campo especial y proporcionando el valor correspondiente como una cadena entre comillas simples que representa un JSON válido. Todas las comillas dentro del JSON deben ser dobles.

Si su servidor MongoDB se ejecuta con la autenticación habilitada, debe especificar un nombre de usuario, una contraseña y una base de datos de autenticación como opciones para su mongodrdl comando.

Para crear un archivo .drdl desde una instancia de mongod con autenticación habilitada, use el siguiente formato de comando:

mongodrdl --host myhost.example.net:27017 \
--username dbUser \
--password myPassword \
--db reports \
--collection FY2017 \
--authenticationDatabase admin \
--out schema.drdl

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

Nota

MongoDB Atlas ofrece un Conector de BI alojado. No se puede usar la salida del archivo .drdl del comando mongodrdl en el Conector de BI alojado en Atlas. El Conector de BI de Atlas requiere un muestreo con un intervalo de actualización y un tamaño de muestra ajustables.

Para obtener más información sobre el conector de BI alojado en Atlas, consulte Conectarse a un clúster a través del conector de BI.

Si está ejecutando BI Connector localmente y desea crear un archivo .drdl desde una base de datos Atlas, utilice el siguiente formato de comando:

mongodrdl --host <domain0>.mongodb.net:27017,<domain1>.mongodb.net:27017,... \
--username <username> \
--password <password> \
--ssl \
--authenticationDatabase admin \
--db <database> \
--out schema.drdl

Volver

mongosqld

En esta página