Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

mongodrdl

Observação

O MongoDB Connector for BI e os utilitários associados são compatíveis com todas as versões do servidor MongoDB atualmente suportadas.

mongodrdl é uma ferramenta de gerenciamento de esquema relacional para o Conector MongoDB para BI. mongodrdlO binário mongodrdl pode:

  • Produce a schema based on the contents of one or more MongoDB collections and write them out into .drdl files used by mongosqld.

  • Upload a .drdl file's schema to the MongoDB deployment your BI Connector is reading from.

  • Download esquemas armazenados de seu sistema do MongoDB.

  • Delete esquemas armazenados de seu sistema do MongoDB.

  • Name esquemas armazenados em seu sistema do MongoDB para facilitar o gerenciamento.

Você pode editar um arquivo .drdl manualmente para personalizar o esquema do connector BI. Para saber mais sobre o formato .drdl e a edição manual de arquivos .drdl, consulte Carregar um esquema de um arquivo DRDL.

Para saber mais sobre todas as opções de gerenciamento de esquema do connector BI, consulte Mapear esquemas relacionais para MongoDB.

Importante

Para aplicar as alterações feitas aos seus arquivos DRDL, você deve reiniciar o mongosqld.

mongodrdl usa a seguinte sintaxe:

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

Novidades na versão 2.6.

The default minimum TLS version is 1.1 for outgoing connections from mongodrdl to MongoDB.

You can adjust this setting with the --minimumTLSVersion option.

Novidades na versão 2.11.

O comportamento do mongodrdl é determinado por um dos seguintes comandos. Se nenhum comando for especificado, mongodrdl amostras do namespace especificado.

sample

Samples the namespaces specified by the --db, optional --collection, and other command line options to output a .drdl file. The sample command encapsulates all the mongodrdl behavior prior to version 2.11.

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

Lista a representação de string do ObjectId de cada esquema armazenado e a data em que foi criado.

list-schema-ids requer a seguinte opção:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

Por exemplo, o seguinte comando lista as IDs de esquema no banco de dados do schemas:

mongodrdl list-schema-ids --schemaSource schemas

A saída se assemelha ao seguinte:

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

Lista o nome e a representação em string do ObjectId para cada esquema armazenado que tenha um nome.

Stored schemas are unnamed by default. You can refer to a named schema by using the --name option with the download and delete commands. Use the name-schema command to name or rename a schema.

list-schema-names requer a seguinte opção:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

Por exemplo, o seguinte comando retorna o nome e ObjectId para cada esquema nomeado no banco de dados do schemas:

mongodrdl list-schema-names --schemaSource schemas

A saída se assemelha ao seguinte:

movies 5d72ad695c23a9e3e26e3c85
theaters 5d72adea5c23a9e44882a1ad
upload

Uploads the schema from the specified .drdl file to the database specified by the --schemaSource option. Schemas are uploaded to the schemas collection.

upload requer as seguintes opções:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

--drdl

Obrigatório. Caminho para o arquivo .drdl a ser carregado.

Por exemplo, o seguinte comando transfere o esquema no arquivo movies.drdl para o banco de dados do schemas:

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

A representação de string do ObjectId do esquema carregado é retornada:

5d793f3f6a26a3ce66c304ea

The next step is to store the schema under a name you provide, using the name-schema command:

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

Para utilizar o esquema recém-carregado que recebeu um nome especificado, reinicie o mongosqld com o banco de dados de esquema especificado pela opção --schemaSource, com o nome do esquema especificado com --schemaName:

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

Importante

If you upload a custom schema, you must store it with its specified name, using name-schema, and then specify this name to the mongosqld with --schemaName. If you don't store the schema's name when you upload it, the schema name defaults to defaultSchema. If the schema's name doesn't exist, this results in an error from mongosqld similar to the following: MongoDB schema not yet available. Error initializing schema: no schema found for name.

download

Faz o download de um esquema especificado por seu nome ou representação de string do ObjectId e o imprime no console.

download aceita as seguintes opções:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

--name

The name of the schema. To learn more about naming schemas, see the name-schema command.

Obrigatório se --schema não for especificado.

--schema

A representação de string do ObjectId do esquema.

Obrigatório se --name não for especificado.

Por exemplo, o seguinte comando imprime o esquema movies no console:

mongodrdl download --schemaSource schemas --name movies

Para armazenar o esquema em um arquivo .drdl, direcione a saída para o arquivo .drdl desejado:

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

Exclui um esquema especificado por seu nome ou representação de string do ObjectId.

delete aceita as seguintes opções:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

--name

The name of the schema. To learn more about naming schemas, see the name-schema command.

Obrigatório se --schema não for especificado.

--schema

A representação de string do ObjectId do esquema.

Obrigatório se --name não for especificado.

Por exemplo, o seguinte comando exclui o esquema com id 5d7941dc6a26a3d0fc397284 no banco de dados do schemas:

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

Cria um novo nome para um esquema ou atualiza o nome existente de um esquema.

Stored schemas are unnamed by default. You can refer to a named schema by using the --name option with the download and delete commands. Use the name-schema command to name or rename a schema.

name-schema requer as seguintes opções:

Nome
Descrição

Obrigatório. Especifica o banco de dados onde as informações do esquema são armazenadas.

Obrigatório. O novo nome do esquema.

Obrigatório A representação em string do ObjectID do esquema.

Por exemplo, o seguinte comando nomeia o esquema 5d72adea5c23a9e44882a1ad no banco de dados schemas como movies:

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

Retorna informações sobre as opções e uso mongodrdl de.

--version

Retorna o mongodrdl número de versão do.

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

Specifies that mongodrdl should provide more detailed log output. Include multiple times for more verbosity (e.g. -vvvvv), or specify a numeric value (e.g. --verbose=5).

--quiet

Oculta todas as saídas de registro.

--uri <mongodb-uri>

Novidades na versão 2.12.

Cadeia de conexão de URI do MongoDB.

Importante

The following command-line options cannot be used in conjunction with --uri option:

Instead, specify these options as part of your --uri connection string.

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

Padrão: localhost:27017

Specifies a resolvable hostname for the mongod to which to connect. By default, the mongodrdl attempts to connect to a MongoDB instance running on the localhost on port number 27017.

Para se conectar a um conjunto de réplicas, especifique o replSetName e uma lista de sementes de membros do conjunto, como a seguir:

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

Você sempre pode se conectar diretamente a uma única instância MongoDB especificando o número do host e da porta diretamente.

--port <port>

Padrão: 27017

Especifica a porta TCP na qual a instância do MongoDB escuta conexões de cliente.

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

Especifica um banco de dados do qual gerar um arquivo de esquema do .drdl.

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

Especifica uma coleção a partir da qual gerar um arquivo de esquema do .drdl. Se você não especificar uma coleção, esta opção utilizará todas as coleções no banco de dados ou instância especificada.

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

Especifica o nome do campo a ser adicionado para um filtro MongoDB personalizado. Consulte Filtros personalizados para obter mais detalhes.

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

Padrão: Padrão para fora.

Specifies the path where mongodrdl will write the schema file. To send the schema to standard output, specify "-" instead of a path.

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

Padrão: 1000

Especifica o número de documentos a serem amostrados ao gerar o esquema da coleção.

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

Especifique a codificação usada para gerar o subtipo binário UUID 3. Escolha um dos seguintes valores:

  • old: Representação antiga do subtipo binário BSON

  • csharp: A representação legada de UUID em C#/.NET

  • java: A representação legada de UUID em Java

--preJoined

Gere tabelas desenroladas, incluindo colunas principais, resultando em uma tabela "pré-unida ".

--schema <db-id>

Novidades na versão 2.11.

Obrigatório. Especifica a representação de string do ObjectId do esquema.

--name <db-name>

Novidades na versão 2.11.

Especifica o nome do esquema.

Importante

If you upload a custom schema, you must store it with its specified name, using name-schema, and then specify this name to the mongosqld with --schemaName. If you don't store the schema's name when you upload it, the schema name defaults to defaultSchema. If the schema's name doesn't exist, this results in an error from mongosqld similar to the following: MongoDB schema not yet available. Error initializing schema: no schema found for name.

--schemaSource <db-name>

Novidades na versão 2.11.

Specifies the database where the schema information is stored. This option is not used by the sample command.

--ssl

Padrão: falso

Instrui o para usar TLS/SSL ao conectar a uma instância MongoDB mongodrdl .

--sslCAFile <filename>

Especifica o arquivo .pem da instância MongoDB contendo a cadeia de certificado raiz da Autoridade de certificação. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

Aviso

Para conexões SSL ( --ssl ) paramongodemongos, se omongodrdlexecutar sem o--sslCAFile, mongodrdlnão tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongodemongosexpirados, bem como para processos externos que se fazem passar por instânciasmongodoumongosválidas. Certifique-se de sempre especificar o arquivo de autoridade de certificação para validar os certificados do servidor nos casos em que a intrusão é uma possibilidade.

--sslPEMKeyFile <filename>

Especifica o arquivo .pem que contém o certificado TLS/SSL e a chave para mongosqld a serem usados na conexão com o MongoDB. Você pode especificar o nome do arquivo .pem utilizando um caminho relativo ou absoluto.

This option is required when using the --ssl option to connect to a mongod or mongos that has CAFile enabled without allowConnectionsWithoutCertificates.

--sslPEMKeyPassword <password>

Especifica o caminho para um arquivo que contém o certificado e a chave privada para se conectar ao MongoDB.

--sslCRLFile <filename>

Especifica o arquivo .pem que contém a lista de certificados revogados. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

--sslAllowInvalidCertificates

Permite que a instância MongoDB apresente um certificado SSL/TLS de servidor inválido. Ao usar a configuração allowInvalidCertificates, o MongoDB registra o uso do certificado inválido como um aviso.

--sslAllowInvalidHostnames

Disables the validation of the hostnames in TLS/SSL certificates. Allows mongodrdl to connect to MongoDB instances if the hostname their certificates do not match the specified hostname.

--sslFIPSMode

Directs the mongodrdl to use the FIPS mode of the installed OpenSSL library. Your system must have a FIPS compliant OpenSSL library to use the --sslFIPSMode option.

--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Padrão: TLS1_1

Specifies the minimum required TLS version for mongodrdl to connect to a mongod or mongos instance. The default value TLS1_1 corresponds to TLS version 1.1.

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

Especifica um nome de usuário com o qual autenticar em um banco de dados MongoDB que usa autenticação. Use em conjunto com as opções --password e --authenticationDatabase.

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

Especifica uma senha com a qual autenticar em um banco de dados MongoDB que usa autenticação. Use em conjunto com as opções --username e --authenticationDatabase.

--authenticationDatabase <dbname>

Especifica o banco de dados no qual o usuário é criado. Consulte o Banco de dados de autenticação.

--authenticationMechanism <name>

Padrão: SCRAM-SHA-1

Especifica o mecanismo de autenticação que a instância do utiliza para autenticar mongodrdl no mongod mongosou.

Valor
Descrição

RFC 5802 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a1 função de hash SHA.

Novidades na versão 2.6: RFC 7677 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a2 função de hash SHA.

PLAIN (LDAP SASL)

Autenticação externa usando LDAP. Você também pode utilizar o PLAIN para autenticar usuários do banco de dados. PLAIN transmite senhas em texto simples. Esse mecanismo está disponível somente no MongoDB Enterprise.

GSSAPI (Kerberos)

Autenticação externa usando Kerberos. Esse mecanismo está disponível somente no MongoDB Enterprise.

--gssapiServiceName <service-name>

Padrão: mongodb

Nome do serviço a ser usado ao autenticar usando GSSAPI/Kerberos.

--gssapiHostName <hostname>

Padrão: endereço do servidor remoto

Nome de host a ser usado ao autenticar usando GSSAPI/Kerberos.

O connector BI usa um pipeline de agregação do MongoDB para executar queries em um banco de dados do MongoDB. Você pode adicionar um campo especial ao seu esquema para passar uma string da query personalizada do MongoDB $match para sua instância do MongoDB.

Use the --customFilterField option with mongodrdl to name a custom filter field. This field passes a native MongoDB $match stage to use as the first stage of the aggregation pipeline, which filters any results returned from MongoDB. The BI Connector applies this stage before any additional stages pushed down from SQL.

A query pode referir-se a qualquer campo da collection, mesmo que os campos não estejam expostos no esquema relacional.

Para ver um exemplo de uso de filtro personalizado, consulte Exemplo de filtro personalizado.

Documentos fornecidos da seguinte forma na coleção abc no banco de dados test:

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

Run mongodrdl to generate a schema based on this collection:

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

O arquivo de esquema gerado (schema.drdl) parece semelhante ao seguinte:

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 a bandeira --customFilterField com o nome que pretende que este campo tenha:

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

Seu arquivo DRDL schema.drdl incluirá o seguinte campo em cada tabela gerada:

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

Para adicionar o estágio de query MongoDB especial ao seu SQL padrão, use a seguinte sintaxe 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"}}}'

O BI Connector traduzirá o SQL acima para a seguinte expressão de agregação MongoDB:

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

Você pode usar esse filtro personalizado em qualquer ferramenta de business intelligence filtrando seu campo especial e fornecendo o valor a ser correspondido como uma única string entre aspas representando um JSON válido. Todas as aspas dentro do JSON devem ser aspas duplas.

If your MongoDB server is running with authentication enabled, you must specify a username, password, and authentication database as options to your mongodrdl command.

Para criar um arquivo .drdl de uma instância do mongod com a autenticação ativada, use o seguinte formato de comando:

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

O MongoDB Atlas é um serviço de nuvem para executar, monitorar e manter implantações do MongoDB, incluindo o provisionamento de servidores dedicados para instâncias do MongoDB.

Observação

O MongoDB Atlas oferece um BI Connector hospedado. Você não pode usar a saída de arquivo .drdl mongodrdl no BI Connector hospedado no Atlas. O Atlas BI Connector requer amostragem que tenha um intervalo de atualização de amostra e tamanho de amostra ajustáveis.

Para obter mais informações sobre o BI Connector hospedado no Atlas, consulte Conectar-se a um cluster por meio do BI Connector.

Se você estiver executando o Connector BI localmente e desejar criar um .drdl de um banco de dados do Atlas, utilize o seguinte 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