Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Modos de conversión de tipos

Novedad en la versión 2.6.

El Connector de MongoDB para BI intenta convertir consultas SQL en pipelines de agregación de MongoDB. Cuando el BI Connector no puede traducir una query a un pipeline de agregación, ejecuta la query en memoria, lo que da como resultado un aumento de la latencia. Previo a la versión 2.6, mongosqld no se pudieron traducir las conversiones de tipo a expresiones de agregación, lo que impidió la traducción de cualquier query que dependiera de conversiones de tipo.

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

Modo
Descripción

mongosql

por defecto. Traslada todas las conversiones de tipos a los servidores de MongoDB que ejecutan la versión 4.0 o posterior. Para versiones de MongoDB anteriores a la 4.0, el BI Connector realiza conversiones de tipo en memoria.

mysql

Instruye al BI Connector para que iguale la conversión de tipo de MySQL lo más exactamente posible. Si el BI Connector puede reproducir el comportamiento de conversión de tipos de MySQL en el lenguaje de agregación, la expresión se enviará al servidor MongoDB para ejecución. De lo contrario, mongosqld ejecuta la expresión en memoria.

El siguiente ejemplo establece la variable type_conversion_mode a mysql:

SET SESSION type_conversion_mode = 'mysql';

Importante

mongosql es el modo de conversión de tipos recomendado a menos que requieras una replicación exacta del comportamiento de MySQL. El ejemplo anterior establece el modo de conversión de tipo mysql porque mongosql es el valor por defecto y no necesita configurarse explícitamente.

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

  • Conversiones explícitas de tipos. Por ejemplo:

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

La siguiente tabla proporciona una visión general de cómo el comportamiento de conversión de tipos de MySQL difiere del comportamiento por defecto de conversión de tipos del BI Connector (moda mongosql):

Del tipo
Para escribir
Comportamiento de MySQL
mongosql-modo Comportamiento

Varchar

Numeric

Analiza el número de una string en una variedad de formatos diferentes. Para obtener más información, consulta los MySQL Literales numéricos documentación.

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

Varchar

Marca de tiempo

Analiza la fecha desde una string en una variedad de formatos diferentes. Para obtener más información, consulte el Letras de fecha y hora de MySQL.

Analizar la fecha a partir de una string en el formato "%Y-%m-%dT%H:%M:%S.%LZ".

Int

Marca de tiempo

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

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

Marca de tiempo

Long

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

Analiza la marca de tiempo como un tipo long que representa los milisegundos transcurridos desde la Unix epoch. 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