El conector de MySQL permite consultar y crear tablas en una instancia externa de MySQL, así como ejecutar operaciones JOIN entre distintos sistemas (como MySQL y Hive) o entre dos instancias de MySQL.
Contexto
El conector de MySQL abarca los siguientes temas:
Requisitos previos
Debe contar con un clúster DataLake, un clúster Hadoop con el servicio Trino o un clúster independiente de Trino. Para más detalles, consulte Create a cluster.
Debe disponer de una instancia de ApsaraDB RDS for MySQL. Para más detalles, consulte Quickly create an ApsaraDB RDS for MySQL instance.
Limitaciones
El conector de MySQL es compatible con clústeres Hadoop y clústeres Trino que ejecutan EMR V3.38.0 o versiones posteriores.
Se requiere MySQL 5.7, 8.0 o una versión posterior.
El coordinador de Trino y todos los nodos worker necesitan acceso de red a la instancia de MySQL. El puerto predeterminado es 3306.
-
Las siguientes sentencias SQL no son compatibles:
DELETE
GRANT
REVOKE
SHOW GRANTS
SHOW ROLES
SHOW ROLE GRANTS
Configurar el conector de MySQL
Para modificar la configuración del conector de MySQL, consulte Configure a connector.
Configuración predeterminada del conector
En la página Configure del servicio Trino dentro de la consola de EMR, vaya a la sección Service Configuration, haga clic en la pestaña mysql.properties y configure los siguientes parámetros.
|
Parámetro |
Descripción |
|
connection-url |
Cadena de conexión JDBC para la base de datos. Para más detalles, consulte View and manage instance endpoints and ports. Por ejemplo, jdbc:mysql://rm-2ze5ipacsu8265q****.mysql.rds.aliyuncs.com:3306. |
|
connection-user |
Nombre de usuario de la base de datos. Este usuario debe tener permiso para acceder a las tablas en la base de datos de ApsaraDB RDS for MySQL. |
|
connection-password |
Contraseña correspondiente a connection-user. |
Configurar varios servicios de MySQL
Si cuenta con varios servicios de MySQL, cree un archivo de configuración único para cada servicio en el directorio etc/catalog. Cada archivo debe tener la extensión .properties. Por ejemplo, un archivo de configuración llamado sales.properties crea un catálogo denominado sales en Trino.
Ejemplo de configuración
Para configurar varios servicios de MySQL en un clúster EMR, agregue elementos de configuración personalizados mediante connector[x].properties, donde x representa 1, 2, 3, etc. Siga estos pasos:
-
En la página de configuración del servicio Trino dentro de la consola de EMR, diríjase a la sección Service Configuration, seleccione la pestaña mysql.properties y modifique los parámetros connection-user, connection-password y connection-url.
Haga clic en Add Configuration Item en la parte superior para agregar los elementos de configuración necesarios. Para más detalles, consulte Add configuration items.
-
Guarde la configuración.
En la sección Service Configuration, haga clic en Save.
En el cuadro de diálogo que aparece, introduzca un Execution Reason y haga clic en Save.
-
Reinicie el servicio.
En la esquina superior derecha, seleccione .
En el cuadro de diálogo que aparece, introduzca un Execution Reason y haga clic en OK.
En el cuadro de diálogo Confirm, haga clic en OK.
Mapeo de tipos
Tipos DECIMAL
Es posible mapear tipos DECIMAL con precisión mayor a 38 al tipo DECIMAL de Trino si se establece el elemento de configuración decimal_mapping o la propiedad de sesión decimal_mapping en allow_overflow. El rango del tipo resultante se controla mediante el elemento de configuración decimal-default-scale o decimal-rounding-mode, y su precisión se fija en 38.
De forma predeterminada, los valores que requieren redondeo o truncamiento generan un error en tiempo de ejecución. Este comportamiento se controla con el elemento de configuración decimal-rounding-mode o la propiedad de sesión decimal-rounding-mode. Valores válidos: UNNECESSARY (predeterminado), UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN y HALF_EVEN.
Propiedades generales
Las siguientes propiedades controlan el mapeo de tipos de datos y el almacenamiento en caché de metadatos en Trino.
|
Parámetro |
Descripción |
|
unsupported-type-handling |
Determina cómo se gestionan los tipos de datos de columna no compatibles. Valores válidos:
|
|
jdbc-types-mapped-to-varchar |
Mapea una lista de tipos de datos separados por comas a VARCHAR sin límite de longitud. |
|
case-insensitive-name-matching |
Especifica si se deben coincidir los nombres remotos de bases de datos y esquemas sin distinguir mayúsculas de minúsculas. Valores válidos:
|
|
case-insensitive-name-matching.cache-ttl |
Duración de la caché para la coincidencia de nombres remotos sin distinción de mayúsculas y minúsculas. El valor predeterminado es 1m. |
|
metadata.cache-ttl |
Duración de la caché para metadatos, como estadísticas de tablas y columnas. El valor predeterminado 0 deshabilita la caché. |
|
metadata.cache-missing |
Especifica si se deben almacenar en caché los resultados de búsquedas de metadatos fallidas, incluidas las estadísticas de tablas y columnas. Valores válidos:
|
Ejemplo: Consultar MySQL
-
Consulte la base de datos RDS.
Conéctese al clúster mediante SSH. Para más información, consulte Log on to a cluster.
-
Ejecute el siguiente comando para conectarse al cliente de Trino.
-
Clúster DataLake
trino --server master-1-1:9090 --catalog iceberg --schema default -
Clúster Hadoop o clúster independiente de Trino
trino --server emr-header-1:9090 --catalog iceberg --schema default
-
-
Ejecute el siguiente comando para ver el esquema.
SHOW schemas FROM mysql;Notamysql es el nombre del archivo de configuración de propiedades.
-
Ejecute el siguiente comando para ver la base de datos.
SHOW tables FROM mysql.web;NotaEn los ejemplos de este artículo, web es la base de datos que creó en MySQL.
-
Consulte los datos de la tabla.
-
Consulte datos de la tabla mysql.web.clicks.
SELECT * FROM mysql.web.clicks; -
Consulte la información de columnas de la tabla mysql.web.clicks.
SHOW columns FROM mysql.web.clicks;Alternativamente, ejecute el siguiente comando para describir la tabla.
DESCRIBE mysql.web.clicks;
-
Pushdown
Para obtener detalles sobre pushdown, consulte Pushdown en la documentación de Trino.
El conector de MySQL aplica pushdown a los siguientes operadores y funciones:
-
Operadores
Join
Limit
Top-N
-
Funciones
avg()
count()
max()
min()
sum()
stddev()
stddev_pop()
stddev_samp()
variance()
var_pop()
var_samp()