Analice y visualice datos JSON anidados con Amazon Athena y Amazon Quick Sight - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Analice y visualice datos JSON anidados con Amazon Athena y Amazon Quick Sight

Anoop Singh, Amazon Web Services

Resumen

Este patrón explica cómo convertir una estructura de datos anidada con formato JSON en una vista tabular mediante Amazon Athena y, a continuación, visualizar los datos en Amazon Quick Sight.

Puede usar datos con formato JSON en fuentes de datos de sistemas operativos basadas en API para crear productos de datos. Estos datos también pueden ayudarle a comprender mejor a sus clientes y sus interacciones con sus productos, de forma que pueda personalizar las experiencias de los usuarios y predecir los resultados.

Requisitos previos y limitaciones

Requisitos previos 

  • Un activo Cuenta de AWS

  • Un archivo JSON que representa una estructura de datos anidada (este patrón proporciona un archivo de ejemplo)

Limitaciones:

  • Las características de JSON se integran bien con las funciones orientadas a SQL existentes en Athena. Sin embargo, no son compatibles con ANSI SQL y se espera que el archivo JSON contenga cada registro en una línea separada. Puede que tenga que usar la propiedad ignore.malformed.json de Athena para indicar si los registros JSON con formato incorrecto deben convertirse en caracteres nulos o generar errores. Para más información, consulte Prácticas recomendadas para leer datos JSON en la documentación de Athena.

  • Este patrón considera solo cantidades pequeñas y simples de datos con formato JSON. Si desea utilizar estos conceptos a escala, considere la posibilidad de aplicar la partición de datos y consolidar los datos en archivos más grandes.

Arquitectura

En el siguiente diagrama se muestran los componentes de la arquitectura y el flujo de trabajo de este patrón. Las estructuras de datos anidadas se almacenan en Amazon Simple Storage Service (Amazon S3) en formato JSON. En Athena, los datos JSON se asignan a una estructura de datos de Athena. A continuación, se crea una vista para analizar los datos y visualizar la estructura de los datos en Quick Sight.

Análisis y visualización de datos JSON anidados en AWS.

Tools (Herramientas)

Servicios de AWS

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. Este patrón utiliza Amazon S3 para almacenar el archivo JSON.

  • Amazon Athena es un servicio de consultas interactivo que facilita el análisis de datos en Amazon S3 con SQL estándar. Este patrón utiliza Athena para consultar y transformar los datos de JSON. Con unas cuantas acciones en el Consola de administración de AWS, puede dirigir Athena a sus datos en Amazon S3 y utilizar SQL estándar para ejecutar consultas únicas. Athena no requiere un servidor, por lo que no hay que configurar ni administrar ninguna infraestructura y solo pagará por las consultas que ejecute. Athena se escala automáticamente y ejecuta las consultas en paralelo, de modo que los resultados se obtienen rápidamente, incluso con conjuntos de datos de gran tamaño y consultas complejas.     

  • Amazon Quick Sight es un servicio de inteligencia empresarial (BI) a escala de nube que le ayuda a visualizar, analizar y elaborar informes sobre sus datos en un único panel. Quick Sight le permite crear y publicar fácilmente paneles interactivos que incluyen información sobre el aprendizaje automático (ML). Puede acceder a los paneles desde cualquier dispositivo e integrarlos en sus aplicaciones, portales y sitios web.

Código de ejemplo

El siguiente archivo JSON proporciona una estructura de datos anidada que puede utilizar en este patrón.

{ "symbol": "AAPL", "financials": [ { "reportDate": "2017-03-31", "grossProfit": 20591000000, "costOfRevenue": 32305000000, "operatingRevenue": 52896000000, "totalRevenue": 52896000000, "operatingIncome": 14097000000, "netIncome": 11029000000, "researchAndDevelopment": 2776000000, "operatingExpense": 6494000000, "currentAssets": 101990000000, "totalAssets": 334532000000, "totalLiabilities": 200450000000, "currentCash": 15157000000, "currentDebt": 13991000000, "totalCash": 67101000000, "totalDebt": 98522000000, "shareholderEquity": 134082000000, "cashChange": -1214000000, "cashFlow": 12523000000, "operatingGainsLosses": null } ] }

Epics

TareaDescripciónHabilidades requeridas

Cree un bucket de S3.

Para crear un bucket para almacenar el archivo JSON, inicie sesión en Consola de administración de AWS, abra la consola Amazon S3 y, a continuación, seleccione Create bucket. Para obtener más información, consulte Crear un bucket en la documentación de Amazon S3. 

Administrador de sistemas

Añada los datos JSON anidados.

Cargue el archivo JSON en un bucket de S3. Para ver un archivo JSON de muestra, consulte la sección anterior. Para más instrucciones, consulte Cargar objetos en la documentación de Amazon S3.

Administrador de sistemas
TareaDescripciónHabilidades requeridas

Cree una tabla para asignar los datos de JSON.

  1. Abra la consola de Athena.

  2. Cree una base de datos siguiendo las instrucciones de la documentación de Athena.

  3. En el menú Base de datos, elija la base de datos que creó.

  4. En el Editor de consultas, introduzca una instrucción CREATE TABLE como la siguiente:

    CREATE EXTERNAL TABLE financials_json ( symbol string, financials array< struct<reportdate: string, grossprofit: bigint, totalrevenue: bigint, totalcash: bigint, totaldebt: bigint, researchanddevelopment: bigint>> ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://s3bucket-for-athena/'

    LOCATION especifica la ubicación del bucket de S3 que contiene el archivo JSON.

  5. Elija Run (Ejecutar) para crear la tabla.

Para más información acerca de la creación de tablas, consulte la documentación de Athena.

Desarrollador

Cree una vista para el análisis de datos.

  1. Abra la consola de Athena.

  2. Cree una base de datos siguiendo las instrucciones de la documentación de Athena.

  3. En el menú Base de datos, elija la base de datos que creó.

  4. En el Editor de consultas, introduzca una instrucción CREATE VIEW como la siguiente:

    CREATE OR REPLACE VIEW financial_json_view AS SELECT symbol, financials[1].reportdate one_report_date, -- indexes start with 1 financials[1].totalrevenue one_total_revenue, financials[1].reportdate another_report_date, financials[1].totalrevenue another_total_revenue FROM financials_json where symbol='AAPL' ORDER BY 1
  5. Elija Ejecutar para crear la vista.

Para más información acerca de la creación de vistas, consulte la documentación de Athena.

Desarrollador

Análisis y validación de los datos.

  1. Abra la consola de Athena.

  2. En el editor de consultas, ejecute las consultas mediante la vista que creó en el paso anterior.

  3. Valide los datos con el archivo JSON para confirmar que los nombres de las columnas y los tipos de datos están asignados correctamente.

Desarrollador
TareaDescripciónHabilidades requeridas

Configure Athena como fuente de datos en Quick Sight.

  1. Abra la consola de Quick Suite.

  2. Elija Conjuntos de datos, Nuevo conjunto de datos.

  3. Elija Athena como origen de datos.

  4. Elija la base de datos que incluye la vista que ha creado.

  5. Elija la vista en la que quiere crear el conjunto de datos.

  6. En la página Finalizar la creación del conjunto de datos, elija Directly query your data (Consultar directamente los datos).

  7. Elija Visualize.

Administrador de sistemas

Visualice los datos en Quick Sight.

  1. Después de visualizar el conjunto de datos, elija las imágenes del panel izquierdo y elija los campos para el conjunto de datos. Para más información, consulte el tutorial en la documentación de Quick Suite.

  2. Guarde los cambios aplicados al análisis.

  3. Elija Publish dashboard (Publicar el panel de control) para publicar las imágenes que ha creado.

Analista de datos

Recursos relacionados