Docs Menu
Docs Home
/ /

Modos de conversión de tipos

Nuevo en la versión 2.6.

El Conector MongoDB para BI intenta convertir consultas SQL en canales de agregación de MongoDB. Cuando el Conector de BI no puede convertir una consulta en un canal de agregación, la ejecuta en memoria, lo que aumenta la latencia. Antes de la 2.6 versión, mongosqld No se pudieron traducir las conversiones de tipo a expresiones de agregación, lo que impidió la traducción de cualquier consulta que dependiera de conversiones de tipo.

A partir de la versión 2.6, el modo de conversión de tipos mongosql transfiere todas las conversiones de tipos a los servidores MongoDB con la versión 4.0 o posterior para mejorar el rendimiento de las expresiones. Este modo está habilitado por defecto, pero puede configurarlo por sesión estableciendo la variable de sesión type_conversion_mode con uno de los siguientes valores:

Modo
Descripción

mongosql

Predeterminado. Envía todas las conversiones de tipos a los servidores MongoDB con la versión 4.0 o posterior. Para versiones de MongoDB anteriores a 4.0 la, el Conector de BI realiza las conversiones de tipos en memoria.

mysql

Indica al Conector de BI que se ajuste lo más posible a la semántica de conversión de tipos de MySQL. Si el Conector de BI puede reproducir el comportamiento de conversión de tipos de MySQL en el lenguaje de agregación, enviará la expresión al servidor MongoDB para su ejecución. De lo contrario, la ejecuta enmongosqld memoria.

El siguiente ejemplo establece la variable type_conversion_mode en mysql:

SET SESSION type_conversion_mode = 'mysql';

Importante

mongosql Es el modo de conversión de tipos recomendado, a menos que se requiera una réplica exacta del comportamiento de MySQL. El ejemplo anterior establece el modo de conversión de tipos mysql porque mongosql es el predeterminado y no necesita configurarse explícitamente.

El modo de conversión de tipos se aplica a ambos:

  • Conversiones de tipos explícitas. Por ejemplo:

    CAST("123" AS unsigned)
  • Conversiones de tipos implícitas. Por ejemplo, "123" + 456

La siguiente tabla proporciona una descripción general de cómo el comportamiento de conversión de tipo de MySQL difiere del comportamiento de conversión de tipo predeterminado del Conector de BI (modo mongosql):

Del tipo
Para escribir
Comportamiento de MySQL
mongosql-modo Comportamiento

Varchar

Numeric

Analizar el número de una cadena en formato decimal con un carácter de signo inicial opcional.

Varchar

Marca de tiempo

Analiza la fecha de una cadena en diversos formatos. Para más información, consulta los literales de fecha y hora de MySQL.

Analizar la fecha de una cadena en formato "%Y-%m-%dT%H:%M:%S.%LZ".

Int

Marca de tiempo

Intenta analizar la fecha a partir de la representación varchar del entero. Por ejemplo, el entero 20180809183456 se convierte en la fecha 2018-08-09 18:34:56.000000.

Trata la entrada como milisegundos desde la época Unix. Por ejemplo, 1533839696000.

Marca de tiempo

Long

Analiza la marca de tiempo como un valor largo en formato YYYYMMDDHHMMSS. Por ejemplo, 20180701123400.

Analiza la marca de tiempo como un valor long que representa los milisegundos transcurridos desde la época Unix. Por ejemplo, 1530448440000.

Marca de tiempo

Varchar

Analiza la marca de tiempo como un varchar en el formato YYYY-MM-DD HH:MM:SS.MMMMMM. Por ejemplo, “2018-07-01 12:34:00.000000”.

Analiza la marca de tiempo como un varchar en el formato YYYY-MM-DDTHH:MM:SS:MMMZ. Por ejemplo, “2018-07-01T12:34:00.000Z”.

Nota

mongosql es el modo de conversión de tipos recomendado a menos que se requiera una replicación cercana del comportamiento de MySQL.

Volver

Mensajes de registro

En esta página