Novedades 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 tipos mongosql transfiere todas las conversiones de tipos a 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 configurarse por sesión estableciendo la variable de sesión type_conversion_mode con uno de los siguientes valores:
Modo | Descripción |
|---|---|
| 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 la 4.0, el Conector de BI realiza las conversiones de tipos en memoria. |
| 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, |
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 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 tipos se aplica a ambos:
Conversiones de tipos explícitas. Por ejemplo:
CAST("123" AS unsigned) Conversiones de tipo implícitas. Por ejemplo,
"123" + 456
Tabla de comparación de modos
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 cadena en diversos formatos. Para más información, consulte Literales numéricos de MySQL. 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 |
Int | Marca de tiempo | Intentos de analizar la fecha a partir de la representación varchar del int. Por ejemplo, el número entero | Trata la entrada como milisegundos desde la Unix epoch. Por ejemplo, |
Marca de tiempo | Long | Analiza la marca de tiempo como un valor largo en el formato | Analiza la marca de tiempo como un tipo long que representa los milisegundos transcurridos desde la Unix epoch. Por ejemplo, |
Marca de tiempo | Varchar | Analiza la marca de tiempo como un varchar en el formato | Analiza la marca de tiempo como un varchar en el formato |
Nota
mongosql es el modo de conversión de tipos recomendado, a menos que se requiera una replicación cercana del comportamiento de MySQL.