Solución de problemas de integraciones sin ETL de Amazon RDS con Amazon Redshift - Amazon Relational Database Service

Solución de problemas de integraciones sin ETL de Amazon RDS con Amazon Redshift

Para comprobar el estado de una integración sin ETL, consulte la tabla del sistema SVV_INTEGRATION en Amazon Redshift. Si la columna state tiene un valor de ErrorState, significa que algo está mal. Para obtener más información, consulte Monitorización de las integraciones mediante tablas del sistema.

Utilice la siguiente información para solucionar problemas habituales relacionados con las integraciones sin ETL de Amazon RDS con Amazon Redshift.

No puedo crear una integración sin ETL

Si no puede crear una integración sin ETL, asegúrese de que los siguientes elementos sean correctos para la base de datos de origen:

Además, asegúrese de que lo siguiente sea correcto para su almacenamiento de datos de destino:

Mi integración está atascada en un estado de Syncing

Es posible que su integración muestre continuamente el estado Syncing si cambia el valor de uno de los parámetros de base de datos necesarios.

Para solucionarlo, compruebe los valores de los parámetros del grupo de parámetros asociado a la base de datos de origen y asegúrese de que coincidan con los valores requeridos. Para obtener más información, consulte Crear un grupo de parámetros de de base de datos personalizado.

Si modifica algún parámetro, asegúrese de reiniciar la base de datos para aplicar los cambios.

Mis tablas no se replican en Amazon Redshift

Si no ve reflejadas una o varias tablas en Amazon Redshift, puede ejecutar el siguiente comando para volver a sincronizarlas:

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

Para obtener más información, consulte ALTER DATABASE en la Referencia de SQL de Amazon Redshift.

Es posible que los datos no se estén replicando porque una o varias de las tablas de origen no tienen una clave principal. El panel de supervisión de Amazon Redshift muestra el estado de estas tablas como Failed y el estado de la integración sin ETL global cambia a Needs attention. Para resolver este problema, puede identificar una clave existente en la tabla que pueda convertirse en clave principal o puede añadir una clave principal sintética. Para obtener soluciones detalladas, consulte Handle tables without primary keys while creating Amazon Aurora MySQL or Amazon RDS for MySQL zero-ETL integrations with Amazon Redshift.

Una o más de mis tablas de Amazon Redshift requieren una resincronización

La ejecución de algunos comandos en la base de datos de origen puede requerir que las tablas se vuelvan a sincronizar. En estos casos, la vista del sistema SVV_INTEGRATION_TABLE_STATE muestra un table_state de ResyncRequired, lo que significa que la integración debe volver a cargar por completo los datos de esa tabla de MySQL a Amazon Redshift.

Cuando la tabla comienza a resincronizarse, entra en un estado de Syncing. No es necesario realizar ninguna acción manual para volver a sincronizar una tabla. Mientras se vuelven a sincronizar los datos de la tabla, no puede acceder a ellos en Amazon Redshift.

A continuación se muestran algunos ejemplos de operaciones que pueden poner una tabla en estado ResyncRequired y las posibles alternativas que se pueden considerar.

Operación Ejemplo Alternativa
Añadir una columna a una posición específica
ALTER TABLE table_name ADD COLUMN column_name INTEGER NOT NULL first;
Amazon Redshift no admite la adición de columnas en posiciones específicas mediante las palabras clave first o after. Si el orden de las columnas de la tabla de destino no es crucial, añada la columna al final de la tabla con un comando más sencillo:
ALTER TABLE table_name ADD COLUMN column_name column_type;
Añadir una columna de marca temporal con la opción predeterminada CURRENT_TIMESTAMP
ALTER TABLE table_name ADD COLUMN column_name TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
RDS para MySQL calcula el valor CURRENT_TIMESTAMP de las filas de la tabla existentes y no se puede simular en Amazon Redshift sin una resincronización completa de los datos de la tabla.

Si es posible, cambie el valor predeterminado a una constante literal, por ejemplo, 2023-01-01 00:00:15 para evitar la latencia en la disponibilidad de la tabla.

Realizar operaciones en varias columnas con un solo comando
ALTER TABLE table_name ADD COLUMN column_1, RENAME COLUMN column_2 TO column_3;
Considere la posibilidad de dividir el comando en dos operaciones distintas ADD y RENAME lo que no requerirá resincronización.