mongosqld
Nesta página
- Descrição
- Uso
- Como iniciar o
mongosqld
com um arquivo de esquema - Iniciando o
mongosqld
com um Banco de Dados de Esquema - Iniciando
mongosqld
com namespaces especificados - Permissões de usuário do MongoDB
- Versão mínima padrão do TLS
- Opções de linha de comando
- Opções principais
- Opções de esquema
- Opções de log
- Opções de TLS/SSL do MongoDB
- Opções TLS/SSL do cliente
- Opções de serviço
- Kerberos Options
- Opções de soquete
- Definir opção de parâmetro
- Arquivo de configuração
- Opções de registro
- Opções de esquema
- Opções de amostragem de dados
- Opções de tempo de execução
- Opções de rede
- Opções de segurança
- Opções de host do MongoDB
- Opções de gerenciamento de processos
- Definir opções de parâmetros
- Carregar valores de configuração externa
- Exemplo de arquivo de configuração
- Exemplos de uso
mongosqld
com um Arquivo de esquema- Especificar uma Coleção para Amostragem
- Especificar Múltiplas Coleções para Amostragem
- Excluir Bancos de Dados e Coleções da Amostragem
- Amostra de Todos Documentos de uma Coleção
- Especifique um banco de dados para persistir um esquema
- Especifique um intervalo de reamostragem de dados
mongosqld
com Autenticação Ativadamongosqld
com um arquivo de configuração- Uso com Atlas
- Gráfico de Referência do Modo de Amostragem
- Configurações inválidas
Descrição
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
.
Uso
Novidade na versão 2.3:
Você pode iniciar com um arquivo de esquema mongosqld
no formato .drdl usando a opção ou amostrando dados de uma instância do MongoDB para criar o --schema
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.
Como iniciar o mongosqld
com um arquivo de esquema
Utilize 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.
Iniciando o mongosqld
com um Banco de Dados de Esquema
Use a opção --schemaSource
para especificar um banco de dados para armazenar informações de esquema.
mongosqld --schemaSource sampleDb
Iniciando mongosqld
com namespaces especificados
Use a opção --sampleNamespaces
para especificar bancos de dados e coleções para que o mongosqld
obtenha amostras de dados para criar o esquema.
mongosqld --sampleNamespaces contacts.addresses
Veja exemplos de uso adicionais abaixo.
Permissões de usuário do MongoDB
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 você 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 funções do MongoDB, consulte Controle de acesso baseado em funções.
Versão mínima padrão do TLS
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
.
Opções de linha de comando
Opções principais
--help
Retorna informações sobre as opções e uso do
mongosqld
.
--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 preferência de leitura 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 domongosqld
, consulte Opções de linha de comando.Observação
Em vez de especificar um
username
epassword
em sua string de conexão, execute omongosqld
com a opção--auth
para direcionar omongosqld
para passar as credenciais de autenticação fornecidas pelo cliente SQL para o servidor MongoDB.Da mesma forma, em vez de habilitar
ssl
na string de conexão, executemongosqld
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
mongosqld
têm compatibilidade.
--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. Compatível apenas com a versão do MongoDB 3.2 ou posterior.Por exemplo, se o seu conjunto de réplicas contiver membros que executam o MongoDB 3.2 e outros membros que executam o MongoDB 3.4, defina a seguinte opção para restringir
mongosqld
a usar somente os recursos compatíveis com o 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 somente se o
--auth
estiver habilitado. O usuário especificado pelo--mongo-username
deve ser um usuário MongoDB válido com o privilégio dolistDatabases
. 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 somente se
--auth
estiver habilitado. 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. Utilize 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. Utilize em conjunto com as opções de credenciais--mongo-username
e--mongo-password
.ValorDescriçãoRFC 5802 Mecanismo de Autenticação de Resposta do Desafio Salgado padrão usando a função com hash SHA1.Novidades na versão 2.6: Salted Challenge Response Authentication Mechanism RFC 7677 padrão usando a função de hash SHA2.PLAIN (LDAP SASL)Autenticação externa usando LDAP. Você também pode utilizar oPLAIN
para autenticar usuários do banco de dados.PLAIN
transmite senhas em texto simples. 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.
Opções 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 usa a opção
--sampleNamespaces
ou a opção--schema
, omongosqld
obtém amostras de dados de todas as bases de dados e coleções disponíveis do MongoDB, exceto as bases de dadosadmin
elocal
.
--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
Comportamentocustom
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 do 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
tiverauthentication
habilitado, 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çãoreadWrite
.
--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 para carregar ou gravar no banco de dados
--schemaSource
. A especificação de nomes de esquema permite armazenar vários esquemas no banco de dados--schemaSource
. O comportamento depende do valor de--schemaMode
:--schemaMode
Valor--schemaName
Comportamentocustom
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 carregar um esquema personalizado, você deverá armazená-lo com seu nome especificado, utilizando
name-schema
e, em seguida, especificar esse nome para omongosqld
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, isso resultará em um erro demongosqld
semelhante ao seguinte: esquema do 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.
Defina
--sampleSize
como0
para incluir todos os documentos no namespace especificado ao criar o esquema. Se você não especificar um namespace, definir--sampleSize
como0
fará com quemongosqld
considere todos os documentos em todos os bancos de dados (excetolocal
,admin
esystem
) 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, nenhuma reamostragem automática ocorre. 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 BSONcsharp
: A representação legada de UUID em C#/.NETjava
: 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 colunaa
sejam incluídos na tabelatest_b
:mysql> select * from test_b; +------+------+--------+-------+ | _id | a | b | b_idx | +------+------+--------+-------+ | 1 | 3 | orange | 0 | | 1 | 3 | apple | 1 | | 1 | 3 | pear | 2 | +------+------+--------+-------+
Opções de log
--logAppend
Acrescenta nova saída de log a um arquivo de log existente especificado por
--logPath
.Requer
--logRotate
.
--logPath <filename>
Default: 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 omongosqld
.- Se você configurar
--logRotate
pararename
: - O arquivo de log existente é fechado. Um carimbo de data/hora formatado em RFC3339é anexado ao arquivo de log fechado. Um novo arquivo de log é criado.
- Se você configurar
--logRotate
parareopen
: - 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 domongosqld
e girar os logs.- Se você configurar
--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 log mais detalhada.A tabela a seguir descreve as informações fornecidas em cada nível de log:
Opção de CartaNível de registroConteúdo da mensagem--quiet
noneNão registre nada.No flagDefaultMensagens de log que notificam o usuário sobre eventos básicosmongosqld
e alterações de estado.-v
AdministradorMensagens de log que fornecem informações aos administradoresmongosqld
.-vv
DesenvolvedorMensagens de log úteis para suporte e desenvolvimento do MongoDB.
Opções de TLS/SSL do MongoDB
--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 paramongosqld
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 ummongod
oumongos
que temCAFile
habilitado semnet.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 no 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
) paramongod
emongos
, se omongosqld
executar sem o--mongo-sslCAFile
,mongosqld
não tentará validar os certificados do servidor. Isso cria uma vulnerabilidade para certificadosmongod
emongos
expirados, bem como para processos externos que se fazem passar por instânciasmongod
oumongos
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.
Opções TLS/SSL do cliente
--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:
--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 usada 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 estiver habilitada, as credenciais de administrador deverão ser fornecidas com as opções
--mongo-username
e--mongo-password
ou as configuraçõesmongodb.net.auth.username
emongodb.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. Defina este valor para especificar uma origem padrão que o
mongosqld
usa ao autenticar com um banco de dados MongoDB. Os mecanismos de autenticaçãoGSSAPI
ePLAIN
usam a fonte$external
, enquantoSCRAM-SHA-1
eSCRAM-SHA-256
usam um banco de dados do MongoDB como fonte.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 com o
mongosqld
. Qualquer conexão que use esse valor padrão especificado poderá omitir o valormechanism
do seu nome de usuário MySQL ou Tableau.ValorDescriçãoSalted Challenge Response Authentication Mechanism RFC 5802 padrão usando a função de hash SHA1.Novidades na versão 2.6: Salted Challenge Response Authentication Mechanism RFC 7677 padrão usando a função de hash SHA2.PLAIN (LDAP SASL)Autenticação externa usando LDAP. Você também pode utilizar oPLAIN
para autenticar usuários do banco de dados.PLAIN
transmite senhas em texto simples. 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 clientes se conectem a
mongosqld
. O valor padrãoTLS1_1
corresponde à versão do TLS 1.1.
Opções de serviço
--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
.
Kerberos Options
--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.
Usa credenciais proxy para autorização Kerberos, habilitando a 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.
Opções de soquete
--filePermissions <mode>
Padrão: 0700
Especifique as permissões para o arquivo de soquete do 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 chamadomysql.sock
abaixo desse caminho. Se você não especificar--unixSocketPrefix
, o soquete existirá em/tmp/mysql.sock
.
Definir opção de parâmetro
--setParameter <parameter>
- ParâmetroTipoCorresponde a
"polymorphic_type_conversion_mode=<value>"
stringDetermina como
mongosqld
avalia os campos de documento especificados com vários tipos de dados. Os valores aceitos sãooff
,fast
esafe
. Para saber mais sobre esses valores, consulte Variáveis do sistema."type_conversion_mode=<value>"
stringEspecifica 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ãomongosql
emysql
. 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"
Arquivo de configuração
Você pode configurar o mongosqld
utilizando um arquivo de configuração YAML. 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.
Opções de registro
systemLog: logAppend: <boolean> logRotate: "rename"|"reopen" path: <string> quiet: <boolean> verbosity: <integer>
Nome | Tipo | Corresponde a |
---|---|---|
booleano | ||
string | ||
string | ||
booleano | ||
inteiro |
Opções de esquema
schema: path: <string> maxVarcharLength: <integer>
Nome | Tipo | Corresponde a |
---|---|---|
string | ||
inteiro |
Opções de amostragem de dados
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 |
---|---|---|
string | ||
string | ||
string | ||
inteiro | ||
booleano | ||
cadeia de caracteres ou matriz de cadeias de caracteres | ||
inteiro | ||
string |
Opções de tempo de execução
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 queries ao MongoDB. Esses limites não incluem a memória que o BI Connector usa para outras finalidades, como sobrecarga de estrutura de dados, portanto, a quantidade total de memória que o BI Connector usa será maior que os limites definidos com essas opções.
runtime.memory.maxPerStage
Tipo: inteiro
Default: unlimited
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
Default: unlimited
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
Default: unlimited
Novidades na versão 2.5.
Especifica a quantidade máxima de memória em bytes que uma conexão de cliente
mongosqld
pode utilizar.
Opções de rede
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 | |
---|---|---|---|
string | O componente hostname de Alterado na versão 2.2: para vincular a vários endereços IP, insira uma lista de valores separados por vírgula. Por exemplo:
| ||
inteiro | O componente de porta do --addr | ||
booleano | Inverso de --noUnixSocket | ||
string | |||
string | |||
booleano | |||
string | |||
string | |||
string | |||
string | |||
string |
Opções de segurança
security: enabled: <boolean> defaultMechanism: <string> defaultSource: <string> gssapi: hostname: <string> serviceName: <string>
Nome | Tipo | Corresponde a |
---|---|---|
booleano | ||
string | ||
string | ||
string | ||
string | ||
string |
Opções de host do 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>
Nome | Tipo | Corresponde a |
---|---|---|
string | ||
string | ||
booleano | ||
booleano | ||
booleano | ||
string | ||
string | ||
string | ||
string | ||
booleano | ||
string | ||
string | ||
string | ||
string | ||
string | ||
string |
Opções de gerenciamento de processos
processManagement: service: name: <string> displayName: <string> description: <string>
Nome | Tipo | Corresponde a |
---|---|---|
string | ||
string | ||
string |
Definir opções de parâmetros
setParameter: polymorphic_type_conversion_mode: <string> type_conversion_mode: <string>
Nome | Tipo | Corresponde a |
---|---|---|
string | Determina como | |
string | Especifica qual modo |
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.
Carregar valores de configuração externa
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.
Exemplo de arquivo de configuração
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"
Exemplos de uso
mongosqld
com um Arquivo de esquema
Utilize a opção --schema
para especificar um arquivo de esquema para mongosqld
para utilizar.
mongosqld --schema /path/to/schema-file.drdl
Especificar uma Coleção para Amostragem
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
Especificar Múltiplas Coleções para Amostragem
Para obter amostras de dados de todas as coleções 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 coleções em um banco de dados ou de diversas coleções 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 coleções 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.
Excluir Bancos de Dados e Coleções da Amostragem
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.*'
Amostra de Todos Documentos de uma Coleção
Se você tiver uma coleção 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
Especifique um banco de dados para persistir um esquema
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
tiver authentication
habilitado, 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
.
Especifique um intervalo de reamostragem de dados
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 essa opção é 0
, o que significa que mongosqld
nunca reaprova dados.
Se você configurar um intervalo de reamostragem com --schemaRefreshIntervalSecs
e especificar um banco de dados de esquema com --schemaSource
, você não poderá configurar --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. Ele usa --schemaRefreshIntervalSecs
para especificar um intervalo de reamostragem de dados de 3600 segundos.
mongosqld --schemaRefreshIntervalSecs 3600
mongosqld
com Autenticação Ativada
Para conectar o mongosqld
a uma instância do MongoDB que está sendo executada com a 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
.
mongosqld
com um arquivo de configuração
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.
Uso com Atlas
O 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.
O Atlas usa TLS/SSL para criptografar conexões e impõe autenticação por padrão.
Observação
Com a camada grátis 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 gravem dados como arquivos temporários em disco. Para revisar as restrições de camada grátis 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, usar mysql
sem verificar o certificado do 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.
Gráfico de Referência do Modo de Amostragem
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 |
|
Por exemplo:
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 Por exemplo:
| |||
Auto Schema |
| Amostra e dados de esquema persistentes em um banco de dados de esquema especificado pelo usuário. Por exemplo:
Para obter mais informações, consulte Modo de Esquema Automático (Persistir um Esquema no MongoDB). |
Configurações inválidas
As seguintes configurações da opção mongosqld
são inválidas e causam um erro na inicialização.
Modo | mongosqld Opções | Comportamento |
---|---|---|
Gravador autônomo (inválido) |
| |
Leitor de Amostragem em Agrupamento (inválido) |
| Quando usada em um conjunto de réplicas ou cluster fragmentado do MongoDB, 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 a partir do primário para manter a consistência em todo o cluster. |