AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
¿Cómo soluciono el error "GENERIC_INTERNAL_ERROR" al consultar una tabla en Athena?
Cuando consulto mi tabla de Amazon Athena, recibo el error "GENERIC_INTERNAL_ERROR".
Resolución
"GENERIC_INTERNAL_ERROR: null"
Column data type mismatch
Asegúrate de que el tipo de datos de columna de la definición de la tabla sea compatible con el tipo de datos de columna de los datos de origen. Athena utiliza una tecnología de esquema en lectura. Cuando Athena procesa las consultas, aplica las definiciones de las tablas a los datos de Amazon Simple Storage Service (Amazon S3).
Por ejemplo, al crear una tabla en un archivo de Apache Parquet, Athena lee el esquema del archivo. A continuación, Athena valida el esquema con la definición de la tabla en la que consultas el archivo de Parquet. Si el tipo de datos de una columna no coincide con el tipo de datos de la definición de la tabla, aparece el error "Column data type mismatch".
Si hay una discrepancia de esquema entre los archivos de datos de origen y la definición de la tabla, realiza una de las siguientes acciones:
- Utiliza AWS Glue para actualizar el esquema.
- Utiliza la definición de la tabla actualizada para crear una tabla nueva.
Comprueba también si los archivos de datos de origen están dañados. Si encuentras archivos de datos de origen dañados, elimínalos y consulta la tabla.
Inaccurate syntax
Es posible que aparezca el error "GENERIC INTERNAL ERROR: null" si se cumplen las dos condiciones siguientes:
- Has utilizado una consulta de CTAS para crear la tabla.
- Has utilizado el mismo nombre de columna para las propiedades de tabla partitioned_by y bucketed_by.
Cuando usas la consulta de CTAS, debes usar nombres de columna diferentes para las propiedades partitioned_by y bucketed_by. Para resolver este problema, crea una tabla nueva y elige diferentes nombres de columna para partitioned_by y bucketed_by.
"GENERIC_INTERNAL_ERROR: parent builder is null"
Es posible que aparezca este error al consultar una tabla que tiene columnas array y el formato OpenCSVSerde. El formato OpenCSVSerde no es compatible con el tipo de datos array.
Para resolver este problema, cambia la columna con el tipo de datos de array a string. Puedes usar la consola de AWS Glue o ejecutar un comando para modificar el tipo de datos de la columna. O bien, crea una nueva tabla.
Modificación del tipo de datos de la columna
Para utilizar la consola de AWS Glue, sigue estos pasos:
- Abre la consola de AWS Glue.
- En el panel de navegación, elige Tablas.
- Selecciona la tabla que desees actualizar.
- Elige Acción y, a continuación, Ver detalles.
- Elige Editar el esquema.
- Busca la columna con el tipo de datos array y, a continuación, selecciona array.
- En la lista desplegable de Tipo de columna, elige string.
- Selecciona Actualizar.
- En la página Editar el esquema, selecciona Guardar.
Alternativa:
Ejecuta el comando SHOW CREATE TABLE para generar la consulta que creó la tabla. Busca la columna con el tipo de datos array y, a continuación, cambia el tipo de datos a string.
Creación de una tabla nueva
Crea una tabla nueva y elige string para el tipo de datos de la columna.
"GENERIC_INTERNAL_ERROR: Value exceeds MAX_INT"
Es posible que aparezca este error cuando una celda de una columna INT de origen tenga un valor numérico superior a 2 147 483 647.
Para resolver este problema, cambia la columna con el tipo de datos int a bigint. Puedes usar la consola de AWS Glue o ejecutar un comando para modificar el tipo de datos de la columna. O bien, crea una nueva tabla.
Modificación del tipo de datos de la columna
Para utilizar la consola de AWS Glue, sigue estos pasos:
- Abre la consola de AWS Glue.
- En el panel de navegación, elige Tablas.
- Selecciona la tabla que desees actualizar.
- Elige Acción y, a continuación, Ver detalles.
- Elige Editar el esquema.
- Busca la columna con el tipo de datos int y, a continuación, elige int.
- En la lista desplegable de Tipo de columna, elige bigint.
- Selecciona Actualizar.
- En la página Editar el esquema, selecciona Guardar.
Alternativa:
Ejecuta el comando SHOW CREATE TABLE para generar la consulta que creó la tabla. Busca la columna con el tipo de datos int y, a continuación, cambia el tipo de datos a bigint.
Creación de una tabla nueva
Crea una tabla nueva y elige bigint para el tipo de datos de la columna.
"GENERIC_INTERNAL_ERROR: Value exceeds MAX_BYTE"
Es posible que aparezca este error cuando una celda de una columna TINYINT de origen tenga un valor numérico que no es válido. El valor mínimo de una columna TINYINT es -128 y su valor máximo es 127.
Para resolver este problema, cambia la columna con el tipo de datos tinyint a smallint, int o bigint. Puedes usar la consola de AWS Glue o ejecutar un comando para modificar el tipo de datos de la columna. O bien, crea una nueva tabla.
Modificación del tipo de datos de la columna
Para utilizar la consola de AWS Glue, sigue estos pasos:
- Abre la consola de AWS Glue.
- En el panel de navegación, eligeTablas.
- Selecciona la tabla que desees actualizar.
- Elige Acción y, a continuación, Ver detalles.
- Elige Editar el esquema.
- Busca hasta la columna con el tipo de datos tinyint y, a continuación, selecciona tinyint.
- En la lista desplegable de Tipo de columna, elige smallint, bigint o int.
- Selecciona Actualizar.
- En la página Editar el esquema, selecciona Guardar.
Alternativa:
Ejecuta el comando SHOW CREATE TABLE para generar la consulta que creó la tabla. Busca la columna con el tipo de datos tinyint y, a continuación, cambia el tipo de datos a smallint, bigint o int.
Creación de una tabla nueva
Crea una tabla nueva y elige smallint, bigint o int para el tipo de datos de la columna.
"GENERIC_INTERNAL_ERROR: Number of partition values does not match number of filters"
Es posible que aparezca este error si tienes particiones incoherentes en los datos de Amazon S3 por uno de los siguientes motivos:
- Has cambiado las particiones de S3. Por ejemplo, has añadido nuevas particiones.
- El número de columnas de partición de la tabla no coincide con el número de columnas de partición de los metadatos de la partición.
Para resolver este problema, puedes configurar un rastreador de AWS Glue para crear una tabla nueva. O utiliza la instrucción ALTER TABLE DROP PARTITION para eliminar las particiones. A continuación, usa la instrucción ALTER TABLE ADD PARTITION para añadir el mismo número de particiones que en la definición de la tabla.
Por ejemplo, tienes columnas de partición denominadas date y country en la definición de la tabla y una partición que solo tiene una columna llamada date. Elimina la partición con la columna date y, a continuación, añade las particiones date y country a la tabla.
Comandos de ejemplo:
ALTER TABLE doc_example_table DROP PARTITION (date = '2014-05-14'); ALTER TABLE doc_example_table ADD PARTITION (date = '2016-05-14', country = 'IN');
"GENERIC_INTERNAL_ERROR: Multiple entries with same key"
Si tienes columnas con el mismo nombre, debes procesar los datos previamente para incluir un par clave-valor válido. Para ignorar las columnas con el mismo nombre, define ignore.malformed.json como SERDEPROPERTIES en org.openx.data.jsonserde.JsonSerDe.
Apache Hive no admite columnas con distinción entre mayúsculas y minúsculas. Por ejemplo, es posible que experimentes un problema si tienes dos columnas denominadas Column y column.
Si los nombres de las columnas son los mismos pero con un uso distinto de las mayúsculas y minúsculas, debes usar una asignación y configurar el SerDe de JSON para que no distinga entre mayúsculas y minúsculas.
Ejemplo de comando:
CREATE TABLE mytable ( time1 string, time2 string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( "case.insensitive" = "false", --tells hive to ignore key case "mapping.time1"= "time", -- lowercase 'time' mapped into 'time1' "mapping.time2"= "Time") -- uppercase to 'time2'
Información relacionada
- Temas
- Analytics
- Etiquetas
- Amazon Athena
- Idioma
- Español

Contenido relevante
- preguntada hace 2 meses