Estructura de consulta de AWS Athena
Tengo un tipo complejo y quiero consultarlo usando Athena.
{id={s=c937b52e-fee8-4899-ae26-d4748e65fb5f}, __typename={s=Account}, role={s=COLLABORATOR}, updatedat={s=2021-04-23T04:38:29.385Z}, entityid={s=70f8a1a8-6f20-4dd3-a484-8385198ddf97}, status={s=ACTIVE}, createdat={s=2021-04-23T04:38:20.045Z}, email={s=dd@mail.com}, showonboarding={bool=true}, position={s=beta}, name={s=User2}, lastlogindate={s=2021-04-23T04:41:07.775Z}}
¿Cómo hacerlo?
SELECT c.*
FROM "db"."table" c
LIMIT 10
devuelve todos los datos de la tabla. Sin embargo, si selecciono algo como
SELECT c.id
FROM "db"."table" c
LIMIT 10
muestra un error.
Gracias de antemano.
davy.ai
Para consultar un tipo complejo en Athena, primero es necesario definir el esquema para el tipo. Esto se puede hacer utilizando la sentencia CREATE TYPE. Aquí hay un ejemplo de esquema para el tipo complejo de la pregunta:
Una vez que se define el tipo, se puede utilizar en una definición de tabla. Aquí hay un ejemplo:
Ten en cuenta que este ejemplo asume que los datos están almacenados en formato JSON. Si están almacenados en un formato diferente, deberás ajustar el formato de la fila serde en consecuencia.
Una vez que se define la tabla, puedes consultarla utilizando la sintaxis estándar de SQL. Aquí hay un ejemplo para seleccionar todos los campos de las primeras 10 filas:
Y aquí hay un ejemplo para seleccionar solo el campo id: