Menu Docs

Página inicial do DocsVisualizar & analisar dadosBI Connector

mongosqld

Nesta página

Observação

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

mongosqld aceita solicitações recebidas de um cliente SQL e faz proxy dessas solicitações para uma instância mongod ou mongos .

Novidade na versão 2.3:

Você pode iniciar mongosqld com um arquivo de esquema no formato .drdl usando a opção --schema ou amostrando dados de uma instância do MongoDB para criar o esquema.

Você pode especificar de qual namespace ou namespaces os dados serão amostrados com a opção --sampleNamespaces . Se você não especificar nenhum namespace ou arquivo de esquema, mongosqld fará amostras de dados de todos os bancos de dados na instância de destino do MongoDB, exceto os bancos de dados admin e local .

Você pode especificar um banco de dados no qual armazenar informações de esquema com a opção --schemaSource . Caso contrário, mongosqld mantém o esquema na memória.

Use a opção --schema para especificar um arquivo de esquema ao iniciar mongosqld.

mongosqld --schema /path/to/schema-file.drdl

Use mongodrdl para criar um arquivo de esquema a partir de uma instância do MongoDB.

Use a opção --schemaSource para especificar um banco de dados para armazenar informações de esquema.

mongosqld --schemaSource sampleDb

Use a opção --sampleNamespaces para especificar bancos de dados e coleções para mongosqld obter amostras de dados para criar o esquema.

mongosqld --sampleNamespaces contacts.addresses

Veja exemplos de uso adicionais abaixo.

Se a instância do MongoDB usa autenticação, a instância do BI Connector também deve usar autenticação. O usuário que se conecta ao MongoDB por meio do programa mongosqld deve ter permissão para ler de todos os namespaces dos quais deseja obter amostras de dados.

Para obter mais detalhes sobre as permissões de usuário MongoDB no BI Connector, consulte Permissões de usuário para amostragem em cache.

Para obter mais informações sobre usuários e roles do MongoDB, consulte Controle de acesso baseado em funções.

Veja o exemplo abaixo de mongosqld com autenticação.

Novidades na versão 2,6.

A versão mínima padrão do TLS é 1.1 para todas as conexões de cliente. Isso inclui conexões de cliente de entrada para mongosqld e conexões de saída para MongoDB.

Você pode ajustar esta configuração para conexões de entrada com a opção --minimumTLSVersion e para conexões de saída com a opção --mongo-minimumTLSVersion .

--help

Retorna informações sobre as opções e uso do mongosqld.

--addr

Padrão: 127.0.0.1:3307

Especifica o endereço do host para escutar.

--version

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

--config <path>

Especifica o caminho para um arquivo de configuração.

--mongo-uri <uri>

Padrão: mongodb://localhost:27017

Especifica uma cadeia de conexão do MongoDB à qual se conectar.

A opção --mongo-uri suporta as seguintes opções dentro da string de conexão:

Para obter mais informações sobre essas opções de URI, consulte Opções de read preference e Opção de conjunto de réplicas

Para opções definidas na URI do Mongo não incluídas na lista acima, utilize a opção mongosqld equivalente. Para a lista completa de opções do mongosqld , consulte Opções de linha de comando.

Observação

Em vez de especificar um username e password em sua connection string, execute o mongosqld com a opção --auth para direcionar o mongosqld para passar as credenciais de autenticação fornecidas pelo cliente SQL para o servidor MongoDB.

Da mesma forma, em vez de ativar ssl na connection string, execute mongosqld com --mongo-ssl.

Para desativar a lógica de descoberta automática do servidor de conjunto de réplicas e forçar uma conexão com o servidor especificado, use a opção connect=direct.

mongosqld --mongo-uri "mongodb://<hostname>:<port>/?connect=direct"

As opções de URI que não estão na lista acima nem na lista de opções suportadas mongosqld não são suportadas.

--mongo-versionCompatibility <version-number>

Restringe mongosqld ao uso de recursos compatíveis com a versão especificada do MongoDB. Necessário apenas quando usado com conjuntos de réplicas nos quais os membros usam versões diferentes do MongoDB ou ao realizar uma atualização contínua do MongoDB. Suporta apenas a versão 3 do MongoDB.2 ou posterior.

Por exemplo, se seu conjunto de réplicas contiver membros executando MongoDB 3.2 e outros membros que executam o MongoDB 3.4, defina a seguinte opção para restringir mongosqld a usar apenas recursos suportados pelo MongoDB 3.2:

mongosqld --mongo-versionCompatibility 3.2
--maxVarcharLength <length>

Novidades na versão 2.2.

Especifica o tamanho máximo, em caracteres, para todos os campos varchar. Se mongosqld encontrar uma string maior que o tamanho máximo, mongosqld a reduzirá até o tamanho máximo e registrará um aviso.

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

Novidades na versão 2.3.

Especifica o nome de usuário de autenticação a ser usado na descoberta do esquema. Necessário apenas se --auth estiver ativado. O usuário especificado pelo --mongo-username deve ser um usuário MongoDB válido com o privilégio do listDatabases . Consulte Permissões de usuário mongosqld.

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

Novidades na versão 2.3.

Especifica a senha de autenticação a ser usada na descoberta do esquema. Necessário apenas se --auth estiver ativado. Use em conjunto com --mongo-username.

--mongo-authenticationSource <auth-db-name>

Padrão: admin

Novidades na versão 2.3.

Especifica o banco de dados que contém as credenciais do usuário de descoberta de esquema. Disponível apenas se --auth estiver ativado. Use em conjunto com as opções de credenciais --mongo-username e --mongo-password.

--mongo-authenticationMechanism <authMechanism>

Padrão: SCRAM-SHA-1

Novidades na versão 2.3.

Especifica o mecanismo de autenticação a ser usado na descoberta do esquema. Disponível apenas se --auth estiver ativado. Use em conjunto com as opções de credenciais --mongo-username e --mongo-password.

Valor
Descrição
SCRAM-SHA-1
RFC 5802 Mecanismo de autenticação de resposta de desafio1 salgado padrão usando a função de hash SHA .
Novidades 2 na versão .6: RFC 7677 Mecanismo de autenticação de resposta de desafio2 salgado padrão usando a 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 sem formatação. Esse mecanismo está disponível apenas no MongoDB Enterprise.
GSSAPI (Kerberos)
Autenticação externa usando Kerberos. Esse mecanismo está disponível somente no MongoDB Enterprise.
--schema <filename>

Especifica o caminho para um arquivo de esquema ou o diretório de esquema.

--schemaDirectory <directoryname>

Obsoleto desde a versão 2.2.

Em vez disso, use --schema .

--sampleNamespaces <db.collection>

Novidades na versão 2.5.

--sampleNamespaces especifica um banco de dados e uma coleção para inclusão ou exclusão do processo de amostragem de dados que cria o esquema. Também é possível especificar várias coleções de um único banco de dados ou várias coleções de vários bancos de dados. Consulte os exemplos abaixo.

Se você não usar a opção --sampleNamespaces ou a opção --schema , mongosqld amostras de dados de todos os bancos de dados e coleções MongoDB disponíveis, exceto os bancos de dados admin e local .

--schemaMode <[custom|auto]>

Padrão: custom

Novidades na versão 2,11.

Configura o modo de amostragem do mongosqld. Deve ser utilizado com a opção --schemaSource . Os seguintes valores determina a forma de amostragem:

Valor
--schemaMode Comportamento
custom
mongosqld lê um esquema armazenado do banco de dados MongoDB especificado pela opção --schemaSource .
auto
mongosqld faz uma amostra do esquema e grava os dados do esquema no Banco de dados MongoDB especificado pela opção --schemaSource .

Para obter mais informações sobre como configurar o modo de amostra, consulte o Gráfico de referência do modo de amostragem.

Importante

Se mongosqld estiver authentication ativado, o usuário autenticado deverá ter o privilégio de gravação no banco de dados --schemaSource especificado. Consulte Funções Integradas para obter mais informações sobre a função readWrite .

--schemaSource <db-name>

Novidades na versão 2,11.

Obrigatório sempre que --schemaMode estiver definido. Especifica o banco de dados onde as informações do esquema são armazenadas.

Observação

Se você não especificar nenhuma das opções --schema, --schemaMode e --schemaSource , mongosqld manterá seu esquema na memória.

Para saber mais sobre os modos de amostragem, consulte o Gráfico de referência do modo de amostragem.

--schemaName <db-name>

Padrão: defaultSchema

Novidades na versão 2,11.

Opcional. O nome do esquema a ser carregado ou gravado no banco de dados --schemaSource . A especificação de nomes de esquema permite armazenar vários esquemas no banco de dados --schemaSource . A forma depende do valor de --schemaMode:

--schemaName Comportamento
custom
O nome do esquema para carregar a partir do banco de dados especificado pela opção --schemaSource .
auto
O nome do esquema a ser gravado no banco de dados --schemaSource após o BI Connector fazer uma amostra do esquema na inicialização.

Importante

Se você carregar um esquema personalizado, deverá armazená-lo com seu nome especificado, usando name-schema e, em seguida, especificar esse nome para o mongosqld com --schemaName. Se você não armazenar o nome do esquema ao carregá-lo, o nome do esquema padrão será defaultSchema. Se o nome do esquema não existir, isto resultará em um erro de mongosqld semelhante ao seguinte: Esquema MongoDB ainda não disponível. Erro ao inicializar esquema: nenhum esquema encontrado para o nome.

Para saber mais sobre os modos de amostragem, consulte o Gráfico de referência do modo de amostragem.

--sampleSize <number>

Padrão: 1000

Novidades na versão 2.3.

O número de documentos por namespace a serem amostrados ao coletar o esquema informação.

Configure --sampleSize para 0 para incluir todos os documentos no namespace especificado ao construir o esquema. Se você não especificar um namespace, definir --sampleSize como 0 fará com que mongosqld considere todos os documentos em todos os bancos de dados (exceto local, admin e system) ao criar o esquema. Veja um exemplo abaixo.

--schemaRefreshIntervalSecs <number>

Padrão: 0

Alterado na versão 2.11: renomeado --sampleRefreshIntervalSecs para --schemaRefreshIntervalSecs

O intervalo, em segundos, no qual mongosqld faz uma nova amostragem dos dados para criar seu esquema. O valor padrão é 0, o que significa que, após a amostragem inicial, não haverá reamostragem durante a duração da conexão. O valor especificado deve ser um número inteiro positivo.

Para forçar uma atualização única do esquema, use o comando FLUSH SAMPLE do seu cliente SQL.

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

--prejoin

Novidades na versão 2,6.

Opção de esquema para combinar dados de matriz e não matriz em uma única tabela.

Documentos MongoDB que contêm arrays são normalmente traduzidos em formato tabular com tabelas separadas para dados de array e dados não-matriz. Considere uma collection MongoDB chamada test com o seguinte documento:

{ "_id" : 1, "a" : 3, "b" : [ "orange", "apple", "pear" ] }

A coleção acima se traduz nas duas tabelas a seguir em 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 |
+------+--------+-------+

O sinalizador --prejoin faz com que os dados da coluna a sejam incluídos na tabela test_b :

mysql> select * from test_b;
+------+------+--------+-------+
| _id | a | b | b_idx |
+------+------+--------+-------+
| 1 | 3 | orange | 0 |
| 1 | 3 | apple | 1 |
| 1 | 3 | pear | 2 |
+------+------+--------+-------+
--logAppend

Acrescenta nova saída de log a um arquivo de log existente especificado por --logPath.

Exige --logRotate.

--logPath <filename>

Padrão: stderr

Especifica um caminho para um arquivo de registro para armazenar saída de registro.

--logRotate reopen | rename

Padrão: renomear

Especifica que você deseja girar logs e como eles devem ser girados.

Quando esta opção estiver definida, os logs giram quando você emite um comando FLUSH LOGS para o Conector MongoDB para BI ou quando você reiniciar o mongosqld.

Se você configurar --logRotate para rename:
O arquivo de log existente é fechado. Um RFC3339-o carimbo de data/hora formatado é anexado ao arquivo de log fechado. Um novo arquivo de log é criado.
Se você configurar --logRotate para reopen:
O arquivo de registro existente é fechado e reaberto.

Observação

Em plataformas UNIX e macOS, você pode emitir um sinal do SIGUSR1 para reiniciar o processo do mongosqld e girar os logs.

--usageLogInterval <number>

Padrão: 60

Novidades na versão 2.14.

O intervalo, em segundos, no qual as estatísticas de uso são escritas no log. Defina como 0 para desativar o registro de uso.

Observação

O registro de uso não está habilitado para Windows.

--verbose, -v

Especifica que mongosqld deve fornecer uma saída de registro mais detalhada.

A tabela a seguir descreve as informações fornecidas em cada nível de log:

Opção de Carta
Nível de registro
Conteúdo da mensagem
--quiet
none
Não registre nada.
Sem sinalizador
default
Mensagens de registro que notificam o usuário sobre eventos básicos mongosqld e alterações de estado.
-v
Administrador
Mensagens de registro que fornecem informações aos administradores mongosqld .
-vv
Desenvolvedor
Mensagens de log úteis para suporte e desenvolvimento do MongoDB.
--quiet

Oculta todas as saídas de registro.

--mongo-ssl

Padrão: falso

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

--mongo-sslPEMKeyFile <filename>

Especifica o arquivo .pem contendo o certificado TLS/SSL e a chave para mongosqld usar ao se conectar ao MongoDB. Você pode especificar o nome do arquivo .pem utilizando um caminho relativo ou absoluto.

Esta opção é exigida ao utilizar a opção --mongo-ssl para conectar a um mongod ou mongos que tenha CAFile habilitado sem net.ssl.allowConnectionsWithoutCertificates.

--mongo-sslPEMKeyPassword <password>

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

--mongo-sslAllowInvalidHostnames

Permite que mongosqld se conecte a um servidor MongoDB cujo nome de host seja diferente do nome do host em seu certificado TLS/SSL.

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

--mongo-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 (--mongo-ssl) para mongod e mongos, se o mongosqld executar sem o --mongo-sslCAFile, mongosqld não tentará validar os certificados do servidor. Isso cria uma vulnerabilidade para certificados mongod e mongos expirados, bem como para processos externos que se fazem passar por instâncias mongod ou mongos vá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.

--mongo-sslCRLFile <filename>

Especifica o arquivo .pem da instância MongoDB contendo a lista de revogação de certificado.

--mongo-sslFIPSMode

Habilita o modo FIPS na biblioteca OpenSSL instalada.

--mongo-minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Padrão: TLS1_1

Especifica a versão mínima exigida de TLS para conexões de saída para um mongod ou mongos. instância. O valor padrão TLS1_1 corresponde à versão 1 do TLS .1.

--sslMode <mode>

Padrão: desabilitado

Novidades na versão 2.3.

Habilite ou desabilite o TLS/SSL para conexões com mongosqld. O argumento para a opção sslMode pode ser um dos seguintes:

Valor
Descrição
disabled
mongosqld não pode aceitar conexões seguras usando TLS/SSL.
allowSSL
mongosqld pode aceitar conexões seguras usando TLS/SSL.
requireSSL
mongosqld só pode aceitar conexões protegidas usando TLS/SSL.
--sslPEMKeyFile <filename>

Especifica o arquivo .pem contendo o certificado TLS/SSL e chave para clientes MySQL. Especificar o nome do arquivo .pem usando caminhos relativos ou absolutos.

--sslPEMKeyPassword <password>

Especifica a senha utilizada para descriptografar a chave privada especificada por --sslPEMKeyFile.

--sslAllowInvalidCertificates

Permite que os clientes MySQL apresentem certificados TLS/SSL de cliente inválidos.

--sslAllowInvalidHostnames

Permite que os clientes SQL se conectem a um mongosqld cujo nome de host seja diferente do nome do host em seu certificado TLS/SSL.

--sslCAFile <filename>

Especifica o arquivo mongosqld .pem contendo a cadeia de certificados raiz da Autoridade de Certificação. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

--sslCRLFile <filename>

Especifica o arquivo mongosqld .pem contendo a lista de revogação do certificado.

--auth

Requer autenticação para solicitações de clientes recebidas.

Importante

Alterado na versão 2,4,0.

Quando a autenticação está ativada, as credenciais de administrador devem ser fornecidas com as opções --mongo-username e --mongo-password ou as configurações mongodb.net.auth.username e mongodb.net.auth.password no arquivo de configuração.

mongosqld usa as credenciais de administrador para coletar metadados nos namespaces de exemplo e usa as credenciais do cliente de conexão para restringir os dados apenas ao que o cliente está autorizado a ler. Para obter mais informações sobre as permissões necessárias para o usuário administrador, consulte Permissões de usuário para amostragem em cache.

--defaultAuthSource <authSource>

Padrão: admin

Especifica a origem de autenticação MongoDB padrão. Configure este valor para especificar uma origem padrão que o mongosqld utiliza ao autenticar com um banco de dados MongoDB. Os mecanismos de autenticação GSSAPI e PLAIN usam a origem $external , enquanto SCRAM-SHA-1 e SCRAM-SHA-256 usam um banco de dados MongoDB como origem.

Se nenhum valor for fornecido para esta opção, o padrão será o banco de dados MongoDB admin.

A origem de autenticação do $external armazena uma referência aos usuários do sistema em um banco de dados MongoDB chamado $external, mas as credenciais são armazenadas em um sistema externo, não MongoDB, como um servidor LDAP.

Qualquer conexão que use o valor padrão pode omitir o parâmetro source de seu nome de usuário MySQL ou Tableau .

--defaultAuthMechanism <authMechanism>

Padrão: SCRAM-SHA-1

Especifica o mecanismo de autenticação padrão. Defina esse valor para especificar um mecanismo padrão para se conectar ao mongosqld. Qualquer conexão que use esse valor padrão especificado pode omitir o valor mechanism de seu nome de usuário MySQL ou Tableau .

Valor
Descrição
RFC 5802 Mecanismo de autenticação de resposta de desafio1 salgado padrão usando a função de hash SHA .
Novidades 2 na versão .6: RFC 7677 Mecanismo de autenticação de resposta de desafio2 salgado padrão usando a 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 sem formatação. Esse mecanismo está disponível apenas no MongoDB Enterprise.
GSSAPI (Kerberos)
Autenticação externa usando Kerberos. Esse mecanismo está disponível somente no MongoDB Enterprise.
--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

Padrão: TLS1_1

Especifica a versão mínima exigida de TLS para que os consumidores se conectem a mongosqld. O valor padrão TLS1_1 corresponde à versão 1 do TLS .1.

--serviceName <service-name>

Nome do serviço do sistema que executa o mongosqld.

--serviceDisplayName <service-name>

Nome de exibição do serviço do sistema que executa o mongosqld.

--serviceDescription <service-name>

Descrição do serviço do sistema que executa o mongosqld.

--gssapiHostname <hostname>

Padrão: primeiro endereço IP para net.bindIp.

Novidades na versão 2.5.

Um FQDN com a finalidade de configurar a autenticação Kerberos. O nome de host Kerberos substitui o nome de host somente para a configuração de Kerberos.

--gssapiServiceName <service-name>

Padrão: mongosql

Novidades na versão 2.5.

Nome registrado do serviço usando Kerberos. Esta opção permite que você substitua o componente padrão de nome de serviço Kerberos do Kerberos SPN, por instalação. Se não especificado, o valor padrão será usado.

--mongo-gssapiServiceName <service-name>

Padrão: mongodb

Novidades na versão 2.5.

Defina o SPN Kerberos ao se conectar a instâncias do MongoDB Kerberizado. Este valor deve corresponder ao nome do serviço definido nas instâncias do MongoDB.

--gssapiConstrainedDelegation

Padrão: falso

Novidades na versão 2,11.

Utilize credenciais proxy para autorização Kerberos, habilitando delegação restrita. Requer que as credenciais de serviço mongosqld estejam presentes no keytab do cliente e no keytab do serviço. Consulte Configurar Kerberos para BI Connector para obter mais informações sobre a configuração do Kerberos.

--filePermissions <mode>

Padrão: 0700

Especifique as permissões para o arquivo de soquete do domínio Unix.

--noUnixSocket

Desative a escuta em soquetes de domínio Unix.

--unixSocketPrefix <path>

Padrão: /tmp

Especifica um diretório alternativo para o soquete de domínio Unix do mongosqld .

mongosqld criará um arquivo de soquete chamado mysql.sock abaixo desse caminho. Se você não especificar --unixSocketPrefix, o soquete existirá em /tmp/mysql.sock.

--setParameter <parameter>
Parâmetro
Tipo
Corresponde a
"polymorphic_type_conversion_mode=<value>"
string

Determina como mongosqld avalia os campos de documento especificados com vários tipos de dados. Os valores aceitos são off, fast e safe. Para saber mais sobre esses valores, consulte Variáveis do sistema.

"type_conversion_mode=<value>"
string

Especifica qual modo mongosqld usa para converter tipos de dados. O BI Connector usa seu próprio modo (mongosql) por padrão. Os valores aceitos são mongosql e mysql. Para saber mais sobre esses valores, consulte Variáveis do sistema.

O exemplo a seguir inicia mongosqld e usa a opção --setParameter para especificar o modo de conversão de tipo:

mongosqld --setParameter "type_conversion_mode=mongosql"

Você pode configurar o mongosqld utilizando um YAML arquivo de configuração. Este arquivo pode conter as configurações listadas nas seções a seguir.

Observação

Você pode usar diretivas de expansão em seu arquivo de configuração para carregar valores de configuração de origem externa. As diretivas de expansão ocultam informações confidenciais, como certificados de segurança e senhas.

Para saber mais sobre o uso de diretivas de expansão, consulte Valores de arquivo de configuração de origem externa no manual do MongoDB.

systemLog:
logAppend: <boolean>
logRotate: "rename"|"reopen"
path: <string>
quiet: <boolean>
verbosity: <integer>
Nome
Tipo
Corresponde a
systemLog.logAppend
booleano
systemLog.logRotate
string
systemLog.path
string
systemLog.quiet
booleano
systemLog.verbosity
inteiro
schema:
path: <string>
maxVarcharLength: <integer>
Nome
Tipo
Corresponde a
schema.path
string
schema.maxVarcharLength
inteiro
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>
Nome
Tipo
Corresponde a
schema.stored.mode
string
schema.stored.source
string
schema.stored.name
string
schema.sample.size
inteiro
schema.sample.prejoin
booleano
schema.sample.namespaces
cadeia de caracteres ou matriz de cadeias de caracteres
schema.refreshIntervalSecs
inteiro
schema.sample.uuidSubtype3Encoding
string
runtime:
memory:
maxPerStage: <integer>
maxPerServer: <integer>
maxPerConnection: <integer>

Importante

O BI Connector fornece as seguintes opções para controlar a quantidade de memória do sistema que o processo mongosqld pode usar para enviar consultas ao MongoDB. Esses limites não incluem a memória que o connector BI usa para outros fins, como sobrecarga de estrutura de dados, portanto, a quantidade total de memória que o connector BI usa será maior do que os limites definidos com essas opções.

runtime.memory.maxPerStage

Tipo: inteiro

Padrão: ilimitado

Especifica a quantidade máxima de memória em bytes que um estágio de execução de consulta pode usar.

runtime.memory.maxPerServer

Tipo: inteiro

Padrão: ilimitado

Novidades na versão 2.5.

Especifica a quantidade máxima de memória em bytes que um processo do mongosqld pode utilizar.

runtime.memory.maxPerConnection

Tipo: inteiro

Padrão: ilimitado

Novidades na versão 2.5.

Especifica a quantidade máxima de memória em bytes que um consumidor mongosqld pode utilizar.

net:
bindIp: <string>
port: <integer>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <string>
ssl:
mode: <string>
allowInvalidCertificates: <boolean>
PEMKeyFile: <string>
PEMKeyPassword: <string>
CAFile: <string>
Nome
Tipo
Corresponde a
net.bindIp
string

O componente hostname de --addr

Alterado na versão 2.2: para vincular a vários endereços IP, insira uma lista de valores separados por vírgula.

Exemplo

"72.198.41.200,72.198.41.201,72.198.41.202"

net.port
inteiro
O componente de porta do --addr
net.unixDomainSocket.enabled
booleano
Inverso de --noUnixSocket
net.unixDomainSocket.pathPrefix
string
net.unixDomainSocket.filePermissions
string
net.ssl.allowInvalidCertificates
booleano
net.ssl.mode
string
net.ssl.PEMKeyFile
string
net.ssl.PEMKeyPassword
string
net.ssl.CAFile
string
net.ssl.minimumTLSVersion
string
security:
enabled: <boolean>
defaultMechanism: <string>
defaultSource: <string>
gssapi:
hostname: <string>
serviceName: <string>
Nome
Tipo
Corresponde a
security.enabled
booleano
security.defaultMechanism
string
security.defaultSource
string
security.gssapi.hostname
string
security.gssapi.serviceName
string
security.gssapi.constrainedDelegation
string
mongodb:
versionCompatibility: <string>
net:
uri: <string>
ssl:
enabled: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
PEMKeyFile: <string>
PEMKeyPassword: <string>
CAFile: <string>
CRLFile: <string>
FIPSMode: <boolean>
auth:
username: <username>
password: <password>
source: <auth-db-name>
mechanism: <auth-mechanism>
gssapiServiceName: <service>
Nome
Tipo
Corresponde a
mongodb.versionCompatibility
string
mongodb.net.uri
string
mongodb.net.ssl.enabled
booleano
mongodb.net.ssl.allowInvalidCertificates
booleano
mongodb.net.ssl.allowInvalidHostnames
booleano
mongodb.net.ssl.PEMKeyFile
string
mongodb.net.ssl.PEMKeyPassword
string
mongodb.net.ssl.CAFile
string
mongodb.net.ssl.CRLFile
string
mongodb.net.ssl.FIPSMode
booleano
mongodb.net.ssl.minimumTLSVersion
string
mongodb.net.auth.username
string
mongodb.net.auth.password
string
mongodb.net.auth.source
string
mongodb.net.auth.mechanism
string
mongodb.net.auth.gssapiServiceName
string
processManagement:
service:
name: <string>
displayName: <string>
description: <string>
Nome
Tipo
Corresponde a
processManagement.service.name
string
processManagement.service.displayName
string
processManagement.service.description
string
setParameter:
polymorphic_type_conversion_mode: <string>
type_conversion_mode: <string>
Nome
Tipo
Corresponde a
setParameter.polymorphic_type_conversion_mode
string

Determina como mongosqld avalia os campos de documento especificados com vários tipos de dados. Os valores aceitos são off, fast e safe. Para saber mais sobre esses valores, consulte Variáveis do sistema.

setParameter.type_conversion_mode
string

Especifica qual modo mongosqld usa para converter tipos de dados. O BI Connector usa seu próprio modo (mongosql) por padrão. Os valores aceitos são mongosql e mysql. Para saber mais sobre esses valores, consulte Variáveis do sistema.

Essas opções de arquivo de configuração também estão disponíveis como variáveis do sistema. Para mais informações, consulte Variáveis do sistema.

Você pode usar diretivas de expansão em seu arquivo de configuração para carregar valores de configuração de origem externa. As diretivas de expansão ocultam informações confidenciais, como certificados de segurança e senhas.

Para saber mais sobre o uso de diretivas de expansão, consulte Valores de arquivo de configuração de origem externa no manual do MongoDB.

Observação

Os caminhos usados neste arquivo de configuração de exemplo são específicos do Linux. Verifique a documentação do sistema local para determinar os caminhos corretos para o 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"

Use a opção --schema para especificar um arquivo de esquema para mongosqld usar.

mongosqld --schema /path/to/schema-file.drdl

Use a opção --sampleNamespaces para especificar um banco de dados e uma collection para mongosqld para obter dados de amostra. Se você iniciar o mongosqld sem a opção --sampleNamespaces , ele coletará amostras de dados de todos os bancos de dados disponíveis, exceto os bancos de dados admin e local .

Os seguintes exemplos de dados de amostras de uma collection denominada addresses em um banco de dados denominado contacts:

mongosqld --sampleNamespaces contacts.addresses

Para obter amostras de dados de toda a collection em um banco de dados, use a opção --sampleNamespaces com um curinga (*).

Os seguintes exemplos de dados de amostras de todas as coleções em um banco de dados chamado inventory:

mongosqld --sampleNamespaces 'inventory.*'

Você pode repetir --sampleNamespaces na linha de comando para obter amostras de dados de diversas collections em um banco de dados ou de diversas collections em diversos bancos de dados.

Os seguintes exemplos de dados de amostras de todas as collections em bancos de dados denominados cars e boats:

mongosqld --sampleNamespaces 'cars.*' \
--sampleNamespaces 'boats.*' \

Você pode misturar e combinar curingas e collections específicas com várias opções --sampleNamespaces .

O exemplo a seguir mostra dados de todas as collections em um banco de dados chamado orders, bem como as collections FY2015 e FY2016 do banco de dados expenses:

mongosqld --sampleNamespaces 'orders.*' \
--sampleNamespaces expenses.FY2015 \
--sampleNamespaces expenses.FY2016 \

Observação

Só é necessário colocar o namespace entre aspas simples quando você usa um curinga.

Para excluir namespaces especificados do processo de amostragem de dados, preceda o namespace com um caractere ~ (tilde). O exemplo a seguir inclui todos os bancos de dados e collections , exceto a collection apples no banco de dados fruit:

mongosqld --sampleNamespaces ~fruit.apples

Use o caractere curinga * para indicar todas as collections em um banco de dados. O exemplo seguinte exclui todo o banco de dados do vehicles da amostragem de dados:

mongosqld --sampleNamespaces '~vehicles.*'

Se você tiver uma collection na qual alguns documentos tenham campos diferentes de outros e quiser garantir que o esquema leve todos eles em consideração, defina a opção --sampleSize como 0. Isso faz com que mongosqld examine todos os documentos no namespace especificado ao criar seu esquema.

O exemplo a seguir instrui mongosqld a criar o esquema com base em todos os documentos no namespace inventory.electronics .

mongosqld --sampleNamespaces inventory.electronics \
--sampleSize 0

Utilize a opção --schemaSource para especificar um banco de dados no qual armazenar informações de esquema. Utilize a opção --schemaMode para especificar se o mongosqld pode gravar no banco de dados do esquema ou somente ler a partir dele.

O comando de exemplo a seguir usa um banco de dados chamado sampleDb para armazenar informações de esquema e define --schemaMode como auto.

mongosqld --schemaSource sampleDb --schemaMode auto

Importante

Se mongosqld estiver authentication ativado, o usuário autenticado deverá ter o privilégio de gravação no banco de dados --schemaSource especificado. Consulte Funções Integradas para obter mais informações sobre a função readWrite .

Use a opção --schemaRefreshIntervalSecs para especificar um intervalo em segundos para mongosqld redefinir a amostra de dados e gerar novamente o esquema. O valor padrão para esta opção é 0, o que significa que mongosqld nunca reamostra de dados.

Se você definir um intervalo de reamostragem com --schemaRefreshIntervalSecs e especificar um banco de dados de esquema com --schemaSource, não poderá definir --schemaMode como custom.

O exemplo a seguir não especifica um banco de dados de esquema ou um arquivo de esquema, portanto, ele mantém seu esquema na memória. Utiliza --schemaRefreshIntervalSecs para especificar um intervalo de reamostragem de dados de 3600 segundos.

mongosqld --schemaRefreshIntervalSecs 3600

Para conectar o mongosqld a uma instância MongoDB executando com autenticação habilitada, utilize a opção --auth e forneça credenciais de usuário MongoDB.

O exemplo a seguir começa mongosqld com as credenciais de um usuário chamado reportsUser com a senha reportsPass, que tem acesso ao namespace reports.inventory .

mongosqld --auth \
--mongo-username reportsUser \
--mongo-password reportsPass \
--sampleNamespaces reports.inventory

Este exemplo não especifica um banco de dados de autenticação com a opção --mongo-authenticationSource , portanto, o padrão é admin. Ele não especifica um mecanismo de autenticação com a opção --mongo-authenticationMechanism , então o padrão é SCRAM-SHA-1.

Se você deseja especificar um arquivo de configuração que salva logs em /var/log/mongosqld.log e carrega um esquema de /var/schema.drdl, Você pode salvar um arquivo como o seguinte para /etc/mongosqld.conf

Aviso

Todos os caminhos especificados no arquivo de configuração devem ser absolutos, por exemplo, eles devem começar com /.

systemLog:
path: /var/log/mongosqld.log
schema:
path: /var/schema.drdl

Você pode então iniciar mongosqld com a opção --config :

mongosqld --config /etc/mongosqld.conf

Para obter mais informações sobre como iniciar mongosqld como um serviço do sistema, consulte o Guia de instalação do seu sistema operacional.

O Atlas é um serviço de nuvem para executando, monitorando e mantendo implantações do MongoDB, incluindo o provisionamento de servidores dedicados para as instâncias do MongoDB.

O Atlas usa TLS/SSL para criptografar conexões e impõe autenticação por padrão.

Observação

Com a camada gratuita do MongoDB Atlas, o BI Connector não pode executar pipelines de agregação usando a opção allowDiskUse . Esta opção permite que as etapas de agregação escrevam dados como arquivos temporários em disco. Para revisar as restrições de camada gratuita do MongoDB Atlas, consulte o manual do MongoDB Atlas.

mongosqld pode usar qualquer certificado TLS válido emitido por um autoridade de certificação ou um certificado autoassinado. Se você usa um certificado autoassinado, embora o canal de comunicação seja criptografado, não haverá validação da identidade do servidor. Embora essa situação impeça a espionagem da conexão, ela o deixa vulnerável a um ataque man-in-the-middle. O uso de um certificado assinado por uma autoridade de certificação confiável permitirá que seu cliente MySQL verifique a identidade do servidor.

Para fins de teste, você pode criar um arquivo de chave .pem denominado test.pem usando a ferramenta 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

Inicie o mongosqld com as seguintes opções:

Se você tiver nomeado o arquivo de chave test.pem como no exemplo anterior, poderá executar o seguinte, substituindo o URI do cluster e as credenciais de login:

mongosqld --mongo-ssl \
--auth \
--sslPEMKeyFile test.pem \
--mongo-uri <uri> \
--sslMode allowSSL \
--mongo-username <username> \
--mongo-password <password>

Passe seu nome de usuário, senha e banco de dados de autenticação para seu cliente SQL. Por exemplo, usando mysql sem verificar seu certificado de servidor mongosqld :

mysql --host <mongosqld-host> --port <mongosqld-port> -u <username>?source=admin -p --ssl-mode required --enable-cleartext-plugin

Consulte Conectar a partir do cliente MySQL para obter mais detalhes sobre como usar o cliente mysql com o BI Connector.

O gráfico abaixo descreve os tipos de configurações de inicialização do mongosqld e as opções usadas com cada uma.

Modo
mongosqld Opções
Comportamento
Esquema autônomo

mongosqld coleta amostras de dados na inicialização. Se --schemaRefreshIntervalSecs > 0, refaça a amostragem no intervalo especificado.

Exemplo

mongosqld --schemaRefreshIntervalSecs 3600

Para mais informações, consulte Modo de Esquema Standalone (Amostragem em Cache).

Esquema personalizado

Leia os dados do esquema do banco de dados especificado pelo --schemaSource.

Exemplo

mongosqld --schemaMode custom \
--schemaSource schemaDb
Esquema automático

Amostra e dados de esquema persistentes em um banco de dados de esquema especificado pelo usuário.

Exemplo

mongosqld --schemaMode auto \
--schemaSource schemaDb \
--schemaRefreshIntervalSecs 3600

Para obter mais informações, consulte Modo de Esquema Automático (Persistir um Esquema no MongoDB).

As seguintes configurações de opção mongosqld são inválidas e causam um erro na inicialização.

Modo
mongosqld Opções
Comportamento
Gravador autônomo (inválido)
Esta configuração é inválida para uma instância independente mongod porque no modo auto deve haver um banco de dados gravável especificado.
Leitor de Amostragem em Agrupamento (inválido)
Quando usada em um conjunto de réplicas do MongoDB ou em um cluster fragmentado, essa configuração é inválida. Quando um banco de dados é especificado para armazenar dados do esquema com --schemaSource, --schemaMode deve ser definido como auto para que o esquema possa ser atualizado do primário para manter a consistência em todo o cluster.
← Conector MongoDB para componentes de BI