Conexión Fuente MySQL
Requisitos Previos
Antes de configurar la conexión de origen MySQL en Crestone, asegúrese de contar con lo siguiente:
Requisito Principal: Una instancia activa y accesible de MySQL, versión 5.7 o superior, con un usuario que posea privilegios de lectura en la base de datos de destino. Las siguientes versiones son totalmente compatibles:
| Versión | Compatibilidad |
|---|---|
| MySQL 5.7 | Compatible |
| MySQL 8.0 | Compatible (recomendado) |
| MySQL 8.4 LTS | Compatible (recomendado) |
| MySQL 9.x Innovation | Compatible |
| MariaDB | No compatible |
| Amazon Aurora MySQL | Compatible (compatible con 5.7 y 8.0) |
| Google Cloud SQL for MySQL | Compatible (5.7 y 8.0) |
| Azure Database for MySQL | Compatible (5.7 y 8.0 Flexible Server) |
Nota: Crestone utiliza
mysql-connector-pythonen modo pure-Python. No se requieren bibliotecas cliente adicionales ni controladores nativos en el servidor donde se ejecuta Crestone.
Información Requerida:
| Campo | Descripción |
|---|---|
| Server / Host | Dirección IP o nombre de host del servidor MySQL (ej. 192.168.1.100 o db.example.com) |
| Port | Puerto TCP donde escucha MySQL. El valor predeterminado es 3306. |
| Database | Nombre de la base de datos MySQL a la que conectarse (ej. my_database) |
| Username | Usuario con privilegios de lectura sobre las tablas que desea extraer |
| Password | Contraseña del usuario especificado |
Consejo: Si se está conectando a una instancia local de MySQL para pruebas, utilice los siguientes valores:
- Server:
localhost- Port:
3306- Database:
crestone_test- Username / Password:
crestone/crestone123
Paso de Pre-Verificación
Antes de configurar la conexión en Crestone, recomendamos verificar sus credenciales utilizando cualquier cliente MySQL de su preferencia (ej. DBeaver, MySQL Workbench, TablePlus o la CLI mysql). Esto garantiza que las credenciales sean correctas y que el servidor sea accesible antes de proceder con la configuración.
Consejo para DBeaver: Si recibe el error
Public Key Retrieval is not allowedal conectarse con DBeaver a MySQL 8.x, vaya a Driver properties y establezcaallowPublicKeyRetrievalentrueyuseSSLenfalse. Esta es una restricción del controlador JDBC y no afecta la conexión de Crestone.
Pasos de Configuración
Siga estos pasos para crear una nueva conexión de origen MySQL en Crestone:
-
Navegue a Connections en la barra de navegación superior.
-
Seleccione la pestaña Source.
-
Haga clic en el botón + para crear una nueva conexión.
-
Complete el campo Connection Name con un nombre descriptivo (ej.
Mi Fuente MySQL). -
En el menú desplegable Source Type, seleccione MySQL.
-
Complete el formulario de credenciales con los campos requeridos:
- Server — host o dirección IP de su instancia MySQL
- Port — predeterminado
3306 - Database — nombre de la base de datos MySQL a la que conectarse
- Username — usuario de la base de datos
- Password — contraseña del usuario
-
Haga clic en Test Connection para validar que Crestone pueda comunicarse exitosamente con la base de datos.
-
Una vez superada la prueba, haga clic en Create Source para guardar la conexión.
Edición de una Conexión Existente
Para actualizar las credenciales de una conexión de origen MySQL existente:
- Navegue a Connections y localice su origen MySQL.
- Haga clic en Edit.
- Modifique los campos deseados en el formulario de credenciales.
- Haga clic en Test Connection para verificar las nuevas credenciales.
- Haga clic en Confirm para guardar los cambios.
Uso de MySQL como Fuente en un Nodo de Extracción
Una vez creada la conexión, puede utilizarla como origen de un Extraction Node. Hay dos modos de extracción disponibles:
Modo Visual
Configure la extracción sin necesidad de escribir código SQL:
- Abra o cree un Extraction Node y vaya a la pestaña Source.
- En Select Source, elija su conexión MySQL.
- En Select Schema, elija la base de datos/esquema que contiene los datos.
- En Select Table, elija la tabla a extraer.
- En Select Fields, seleccione las columnas específicas que desea, o déjelo vacío para extraer todas las columnas.
- Opcionalmente, agregue una condición WHERE para filtrar filas.
- El panel de Preview muestra una muestra de los datos que se extraerán.
Modo SQL Script
Escriba una consulta SQL personalizada para extracciones más complejas:
- Seleccione la fuente y el esquema como en el Modo Visual.
- Cambie al modo SQL Script.
- Escriba su consulta SQL. Utilice sintaxis estándar de MySQL —
information_schemase encuentra disponible para consultas de metadatos. - Haga clic en Run Preview para validar y previsualizar los resultados de la consulta.
Nota: El modo SQL Script admite cualquier sentencia
SELECTválida de MySQL, incluyendoJOIN, subconsultas, funciones yGROUP BY. Evite sentencias DDL (CREATE,DROP,ALTER) en este campo.
Manejo de Tipos de Datos
Cuando Crestone lee datos de MySQL, los tipos de columna se asignan a tipos Polars (internos) para su procesamiento y luego se asignan a los tipos nativos del destino. La correspondencia de MySQL a Polars es:
| Tipo MySQL | Tipo Polars |
|---|---|
TINYINT, SMALLINT | Int16 |
INT, MEDIUMINT | Int32 |
BIGINT | Int64 |
FLOAT | Float32 |
DOUBLE, DECIMAL, NUMERIC | Float64 |
TINYINT(1) | Boolean |
VARCHAR, CHAR, TEXT, ENUM, SET | String |
DATE | Date |
DATETIME, TIMESTAMP | Datetime |
TIME | String (formateado como HH:MM:SS) |
JSON | String (serializado como texto) |
BLOB, BINARY, VARBINARY | String (codificado en hex) |
| Otro | String |
Nota: Las columnas
DECIMALyNUMERICse asignan aFloat64. Si necesita preservar la precisión decimal exacta en el destino, redacte un SQL Script personalizado convirtiendo la columna aCHARo manejándola como cadena de texto en la extracción.
Problemas Frecuentes
| Problema | Causa Posible | Solución |
|---|---|---|
| Tiempo de espera de conexión agotado | Firewall bloqueando el puerto 3306 | Permita conexiones entrantes en el puerto 3306 desde la IP del servidor de Crestone |
| Fallo de autenticación | Nombre de usuario o contraseña incorrectos | Verifique primero las credenciales en su cliente MySQL |
| No se listan esquemas | El usuario carece del privilegio SELECT en information_schema | Otorgue SELECT sobre information_schema o como mínimo sobre la base de datos objetivo |
| No se listan tablas | El usuario no tiene acceso a la base de datos seleccionada | Otorgue SELECT sobre la base de datos de destino (consulte Permisos Requeridos a continuación) |
Public Key Retrieval is not allowed | Modo de autenticación de MySQL 8.x (solo clientes JDBC) | Esto no afecta a Crestone. En DBeaver, configure allowPublicKeyRetrieval=true en las propiedades del controlador |
| La vista previa no muestra datos | La tabla está vacía o la condición WHERE filtra todas las filas | Verifique que existan datos en la tabla utilizando un cliente MySQL |
Error caching_sha2_password | Plugin de autenticación predeterminado de MySQL 8.x en algunos conectores | El conector de Crestone maneja esto de forma nativa; verifique el plugin de autenticación del usuario si el problema persiste |
Permisos Requeridos
Para acceso de solo lectura (extracción de origen), el usuario de base de datos requiere como mínimo los siguientes privilegios:
-- Otorgar acceso de lectura a una base de datos específica
GRANT SELECT ON my_database.* TO 'crestone'@'%';
FLUSH PRIVILEGES;Si desea que el usuario acceda a múltiples bases de datos o que Crestone liste todos los esquemas disponibles:
-- Otorgar acceso de lectura a múltiples bases de datos
GRANT SELECT ON my_database.* TO 'crestone'@'%';
GRANT SELECT ON another_database.* TO 'crestone'@'%';
FLUSH PRIVILEGES;Nota: MySQL otorga automáticamente
SELECTeninformation_schemaa cualquier usuario, por lo que Crestone siempre puede listar los esquemas y tablas a los que el usuario tiene acceso. No se requiere ninguna concesión adicional para el descubrimiento de metadatos.
Consejo: Para un usuario de integración de solo lectura,
GRANT SELECT ON *.* TO 'crestone'@'%'otorga acceso de lectura a todas las bases de datos a la vez, lo que simplifica la administración al extraer de múltiples esquemas.
-- Concesión de solo lectura en todas las bases de datos (recomendado para usuarios de integración):
GRANT SELECT ON *.* TO 'crestone'@'%';
FLUSH PRIVILEGES;