es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es Athena una opción viable/sensata para buscar ocasionalmente JSON no estructurado?

Estoy registrando las cabeceras y cuerpos de solicitud y respuesta para todo el tráfico hacia y desde nuestra API a servicios de terceros en S3 como objetos pequeños.

Quiero poder consultar estos datos de manera infrecuente. Por ejemplo (pseudo-código):

select $.cars[0].color from "objects" where object_path in (...);

Otra información:

  • Muchos “objetos” en S3 no tendrán una ruta válida a $.cars[0].color (es solo un ejemplo).
  • Espero no tener que usar Glue.
  • El costo es importante, esto es algo que se consultará de manera muy infrecuente. Configurar una solución de ElasticSearch/similar está completamente fuera del presupuesto para este caso de uso.
  • Espero no tener que definir mi propio conjunto de esquemas (esto simplemente no es factible).

Athena dice que puede buscar en JSON no estructurado. Estoy teniendo problemas para crear una prueba de concepto que demuestre que esto es cierto.

¿Athena es adecuado para mí? ¿Me estoy perdiendo una mejor solución?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en JSON, Amazon Web Services, Amazon S3 y Amazon Athena, puedo sugerir que Athena puede ser la solución adecuada para sus necesidades. Athena es capaz de buscar datos JSON no estructurados en S3 y puede manejar consultas ad hoc en conjuntos de datos grandes. Proporciona una interfaz de consulta para los datos de Amazon S3 utilizando SQL.

    Para usar Athena, es necesario definir un esquema de tabla o puede utilizar la tabla creada por AWS Glue. Sin embargo, ha mencionado que no es factible definir su propio conjunto de esquemas y espera no utilizar Glue.

    En este caso, puede utilizar Athena con una función llamada “esquema bajo demanda” donde el esquema se define al momento de consultar los datos. Esto significa que no es necesario definir un esquema de antemano y se puede utilizar Athena para consultar sus datos JSON tal como están. Sin embargo, esto puede llevar a tiempos de consulta más lentos, ya que Athena necesita inferir el esquema cada vez que ejecuta una consulta.

    En cuanto a su ejemplo de consulta, puede utilizar las funciones JSON de Athena para filtrar los datos. Por ejemplo, podría utilizar la función json_extract para seleccionar el campo JSON deseado cars[0].color.

    En cuanto al costo, Athena es un servicio sin servidor y solo paga por las consultas que realiza. Dado que ha mencionado que consultará los datos con poca frecuencia, el costo debería ser mínimo.

    En resumen, Athena puede ser la solución adecuada para su caso de uso, ya que puede buscar datos JSON no estructurados en S3, manejar consultas ad hoc y proporcionar una solución rentable para consultas poco frecuentes.

Comments are closed.