Menu Docs
Página inicial do Docs
/
BI Connector
/

Modos de conversão de tipos

Nesta página

  • Tabela de comparação de modos

Novidades na versão 2,6.

O MongoDB Connector for BI tenta converter queries SQL emagregação pipelines do MongoDB . Quando o BI Connector não pode converter uma query em um pipeline de agregação , ele executa a query na memória, resultando em maior latência. Antes da versão 2.6, mongosqld não conseguia converter conversões de tipo em expressões de agregação , o que impedia a tradução de qualquer query que dependesse de conversões de tipo.

A partir da versão 2.6, o modo de conversão de tipo mongosql envia todas as conversões de tipo para o MongoDB Server que executam a versão 4.0 ou posterior para melhorar a expressão de desempenho. Esse modo é habilitado por padrão, mas você pode configurá-lo por sessão definindo a variável de sessão type_conversion_mode para um dos seguintes valores:

Modo
Descrição
mongosql
Padrão. Envia todas as conversões de tipo para o MongoDB Server executando a versão 4.0 ou posterior. Para versões do MongoDB anteriores à 4.0, o BI Connector executa conversões de tipos na memória.
mysql
Instrui o BI Connector a corresponder à semântica de conversão de tipo do MySQL o mais próximo possível. Se o BI Connector puder reproduzir o comportamento de conversão de tipo do MySQL na linguagem de aggregation, ele enviará a expressão para o MongoDB Server para execução. Caso contrário, mongosqld executa a expressão na memória.

O exemplo a seguir define a variável type_conversion_mode como mysql:

SET SESSION type_conversion_mode = 'mysql';

Importante

mongosql é o modo de conversão de tipo recomendado, a menos que você exija uma replicação próxima do comportamento do MySQL. O exemplo acima define o modo de conversão do tipo mysql porque mongosql é o padrão e não precisa ser explicitamente definido.

O modo de conversão de tipo se aplica a ambos:

  • Conversões de tipo explícitas. Por exemplo:

    CAST("123" AS unsigned)
  • Conversões de tipo implícitas. Por exemplo, "123" + 456

A tabela a seguir fornece uma visão geral de como o comportamento de conversão de tipo do MySQL difere do comportamento de conversão de tipo padrão do Connector BI (modo mongosql ):

Do tipo
Para digitar
Comportamento do MySQL
mongosql-mode Comportamento
Varchar
Numérico
Analise o número de uma string em uma variedade de formatos diferentes. Para obter mais informações, consulte os literais numéricos do MySQL documentação.
Analise o número de uma string no formato decimal com o caractere de sinal opcional opcional.
Varchar
Timestamp
Analise a data de uma string em uma variedade de formatos diferentes. Para obter mais informações, consulte os literais de data e hora MySQL .
Analise a data de uma string no formato "%Y-%m-%dT%H:%M:%S.%LZ" .
Int
Timestamp
Tenta analisar a data a partir da representação varchar do int. Por exemplo, o número inteiro 20180809183456 se torna a data 2018-08-09 18:34:56.000000.
Trata a entrada como milissegundos desde a Era UNIX. Por exemplo, 1533839696000.
Timestamp
Long
Analise o carimbo de data/hora como um longo no formato YYYYMMDDHHMMSS . Por exemplo, 20180701123400.
Analise o carimbo de data/hora como um longo representando os milissegundos desde a Era UNIX. Por exemplo, 1530448440000.
Timestamp
Varchar
Analise o carimbo de data/hora como um varchar no formato YYYY-MM-DD HH:MM:SS.MMMMMM . Por exemplo, “2018-07-01 12:34:00.000000”.
Analise o carimbo de data/hora como um varchar no formato YYYY-MM-DDTHH:MM:SS:MMMZ . Por exemplo, “2018-07-01T12:34:00.000Z”.

Observação

mongosql é o modo de conversão de tipo recomendado, a menos que seja necessária uma replicação próxima do comportamento do MySQL.

Voltar

Mensagens de registro