Amazon Athena es un servicio de análisis interactivo y sin servidor creado en marcos de código abierto, lo que lo hace compatible con formatos abiertos de archivos y tablas. Athena proporciona un método simplificado y flexible de analizar petabytes de datos donde residan. Analice datos o cree aplicaciones a partir de un lago de datos de Amazon Simple Storage Service (S3) y más de 30 orígenes de datos, que incluyen orígenes de datos en las instalaciones u otros sistemas en la nube que usan SQL o Python. Athena se ha creado con motores Trino y Presto de código abierto y marcos de Apache Spark, sin necesidad de esfuerzos de aprovisionamiento ni configuración.

Casos de uso

Ejecute consultas en S3, en las instalaciones o en otras nubes

Envíe una sola consulta SQL para analizar datos en orígenes de datos personalizados, de objetos, relacionales y no relacionales que se ejecuten en las instalaciones o en la nube.

Prepare datos para modelos de ML

Utilice modelos de ML en consultas SQL o Python para simplificar tareas complejas, como la detección de anomalías, el análisis de cohortes de clientes y las predicciones de ventas.

Cree motores de reconciliación de macrodatos distribuidos

Implemente una herramienta de reconciliación con un motor creado para la nube cuyo objetivo es la validación efectiva de grandes cantidades de datos a escala.

Realice análisis multinube

Consulte los datos de Azure Synapse Analytics y visualice los resultados con Amazon QuickSight.

Características de Amazon Athena

Sin servidor. Sin infraestructura. Sin administración.

Amazon Athena es un servicio sin servidor, por lo que no hay que administrar infraestructura. No es necesario preocuparse por configuraciones, actualizaciones del software, errores ni del escalado de la infraestructura cuando crezcan sus conjuntos de datos y cantidad de usuarios. Athena se ocupa de todo esto automáticamente, para que pueda concentrarse en los datos y no en la infraestructura.

Fácil de comenzar

Para comenzar, inicie sesión en la consola de Athena, defina los esquemas con el asistente de la consola o mediante la introducción de declaraciones DDL y comience a realizar consultas inmediatamente con el editor de consultas integrado. También puede usar AWS Glue para rastrear automáticamente orígenes de datos con el fin de encontrar datos y completar su catálogo de datos con definiciones de particiones y tablas nuevas y modificadas. Los resultados se muestran en la consola en cuestión de segundos y se escriben automáticamente en la ubicación que elija de S3. También puede descargarlos en su escritorio. Con Athena, no es necesario realizar trabajos complejos de ETL para preparar los datos para el análisis. Por ello, cualquier persona con habilidades SQL puede analizar conjuntos de datos a gran escala de forma rápida y sencilla.

Consultas sencillas con SQL estándar

Amazon Athena se basa en Trino y Presto, motores SQL distribuidos de código abierto optimizados para el análisis de datos interactivos y de baja latencia. Eso significa que puede hacer consultas en conjuntos de datos de gran tamaño en Amazon S3 con ANSI SQL, con compatibilidad para combinaciones grandes, funciones de ventanas y matrices. Athena admite una amplia variedad de formatos de datos, como CSV, JSON, ORC, Avro o Parquet. Con los conectores federados de origen de datos de Athena, puede consultar almacenes de datos adicionales y combinar los datos con datos almacenados en Simple Storage Service (Amazon S3). Puede acceder a Athena y ejecutar consultas desde la consola de Athena, la API, la CLI, el SDK de AWS y las aplicaciones compatibles de desarrollo de SQL e inteligencia empresarial mediante los controladores JDBC y ODBC de Athena.

Precios flexibles

Amazon Athena ofrece dos modelos de precios flexibles. De forma predeterminada, las consultas se facturan en función de los datos escaneados por consulta en terabytes (TB). Esto le permite enviar consultas sin planificar la computación con antelación. Si prefiere pagar en función de la computación que consumen sus consultas o desea controlar la simultaneidad y priorizar las cargas de trabajo, utilice los precios basados en la capacidad disponibles en Provisioned Capacity. Para mayor flexibilidad, puede usar la facturación por consulta y los precios basados en la capacidad al mismo tiempo en la misma cuenta.

Rendimiento ágil

Con Amazon Athena, no tiene que preocuparse por administrar o ajustar clústeres para obtener un rendimiento ágil. Athena está optimizado para lograr un rendimiento ágil con Amazon S3. Athena ejecuta las consultas en paralelo automáticamente, de manera que obtenga los resultados en cuestión de segundos, incluso en conjuntos de datos de gran tamaño.

Alta disponibilidad y durabilidad

Amazon Athena tiene alta disponibilidad y ejecuta consultas con recursos informáticos en varias ubicaciones, lo que le permite direccionar las consultas automáticamente según corresponda si una ubicación en particular no se encuentra disponible. Athena utiliza Amazon S3 como almacenamiento de datos subyacente, por lo que los datos son duraderos y están altamente disponibles. Amazon S3 ofrece una infraestructura duradera que permite almacenar datos importantes y está diseñado para ofrecer una durabilidad del 99,999999999% de los objetos. Sus datos se almacenan de forma redundante en diversas instalaciones y en diferentes dispositivos de cada instalación.

Seguridad

Amazon Athena le permite controlar el acceso a los datos mediante políticas de AWS Identity and Access Management (IAM), listas de control del acceso (ACL) y políticas de buckets de Amazon S3. Con las políticas de IAM, puede otorgar a los usuarios de IAM un control minucioso de sus buckets de S3. Al controlar el acceso a los datos de S3, puede impedir que los usuarios realicen consultas en ellos con Athena. Athena también le permite consultar datos cifrados almacenados en Amazon S3 y escribir los resultados cifrados nuevamente en su bucket de S3. Se admite tanto el cifrado del servidor como el cifrado del cliente.

Integración

Amazon Athena se integra directamente con AWS Glue. Con el catálogo de datos de AWS Glue, podrá crear un repositorio de metadatos unificado en diversos servicios, rastrear orígenes de datos para descubrir esquemas y completar su catálogo con definiciones de particiones y tablas nuevas y modificadas, y mantener las versiones de los esquemas. También puede usar las capacidades ETL totalmente administradas de Glue para transformar datos o convertirlos en formatos de columna con el fin de reducir los costos y optimizar el rendimiento de las consultas. Más información sobre AWS Glue.

Consulta federada

Athena proporciona conectores integrados a 30 almacenes de datos populares de AWS, en las instalaciones y otros almacenes de datos en la nube, incluidos Amazon Redshift, Amazon DynamoDB, Google BigQuery, Google Cloud Storage, Azure Synapse, Azure Data Lake Storage, Redis, Snowflake y SAP Hana. Con los conectores de orígenes de datos de Athena, puede generar información a partir de múltiples orígenes de datos mediante la sintaxis SQL de Athena y sin la necesidad de mover ni transformar los datos. Los conectores de datos se ejecutan como funciones de AWS Lambda y pueden habilitarse para el acceso entre cuentas con el fin de escalar las consultas SQL a cientos de usuarios finales. Para obtener una lista de los orígenes admitidos, consulte Conectores de orígenes de datos disponibles. Para obtener información sobre cómo crear un conector de orígenes de datos personalizado, consulte el SDK de conectores de Athena.

Machine learning

Es posible invocar modelos de Machine Learning de SageMaker en una consulta SQL de Athena para ejecutar tareas de inferencia. La posibilidad de utilizar modelos de machine learning en consultas SQL permite que tareas complejas, como la detección de anomalías, el análisis de cohortes de clientes y las predicciones de ventas, sean tan simples como escribir una consulta SQL. Athena facilita a cualquier persona con experiencia en SQL la ejecución de modelos de machine learning implementados en Amazon SageMaker.

Precios de Amazon Athena

Amazon Athena es un servicio de análisis interactivo y sin servidor basado en marcos de código abierto que permite analizar petabytes de datos en el lugar donde se encuentran. Con Athena, puede utilizar SQL o Apache Spark y no es necesario configurar ni administrar ninguna infraestructura. El esquema de precios es sencillo: usted paga en función de los datos procesados o de los cálculos utilizados.
Para comenzar, cree un grupo de trabajo que le permitirá especificar el motor de consulta, el directorio de trabajo en Amazon Simple Storage Service (S3) para guardar los resultados de la ejecución, los roles de AWS Identity and Access Management (IAM) (si es necesario) y las etiquetas de los recursos. Puede utilizar los grupos de trabajo para separar usuarios, equipos, aplicaciones o cargas de trabajo, establecer límites a la cantidad de datos que puede procesar cada consulta o todo el grupo de trabajo y hacer un seguimiento de los costos. En función del grupo de trabajo que cree, puede (a) ejecutar consultas basadas en SQL y pagar por la cantidad de datos analizados o cálculo utilizado, o (b) ejecutar el código Python de Apache Spark y pagar una tarifa por hora por la ejecución de su código.

Utiliza la calculadora de precios de AWS: https://calculator.aws/#/createCalculator/Athena

Buenas prácticas para trabajar con Amazon Athena

Optimiza tus datos antes de la consulta:

  • Usa formatos de almacenamiento eficientes como Parquet o ORC en lugar de CSV o JSON.
  • Comprime tus datos para reducir el tiempo de lectura y los costos.
  • Particiona tus datos en Amazon S3 para mejorar el rendimiento de las consultas.

Usa particiones adecuadamente:

  • Particiona tus tablas basadas en los patrones de acceso y las consultas frecuentes.
  • Evita crear demasiadas particiones pequeñas, ya que esto puede degradar el rendimiento.

Consulta solo las columnas necesarias:

  • Especifica solo las columnas que necesitas en tus consultas en lugar de usar SELECT *, lo que reduce la cantidad de datos procesados y mejora el rendimiento.

Monitorea y optimiza las consultas:

  • Usa las estadísticas de ejecución de consultas en el AWS Management Console para identificar consultas lentas y optimizarlas.
  • Revisa los archivos de registros para identificar problemas y ajustar tus consultas.

Aprovecha las funciones de Athena:

  • Usa funciones integradas como EXTERNAL_TABLES, VIEWS, y USER_DEFINED_FUNCTIONS para simplificar tus consultas.
  • Implementa funciones definidas por el usuario (UDFs) para tareas complejas.

Gestiona permisos y seguridad:

  • Usa AWS IAM para controlar el acceso a los datos y las consultas de Athena.
  • Configura políticas de acceso y permisos granulares para asegurar tus datos.

Manejo de costos:

  • Almacena tus datos en S3 de manera eficiente y usa la compresión para reducir los costos de almacenamiento y consulta.
  • Revisa y ajusta regularmente tus estrategias de particionamiento y formatos de datos para optimizar los costos.

Uso de Glue Data Catalog:

  • Usa AWS Glue Data Catalog para gestionar tus metadatos y tablas en Athena.
  • Mantén el catálogo actualizado para asegurar consultas precisas y eficientes.

Evita los archivos pequeños:

  • Combina archivos pequeños en archivos más grandes y bien organizados para mejorar el rendimiento y reducir costos.
  • Usa herramientas como AWS Glue o Amazon EMR para agrupar y optimizar tus archivos en S3.

Implementa la seguridad en capas:

  • Usa políticas de cifrado en S3 para proteger tus datos en reposo.
  • Asegura tus consultas y resultados en Athena usando claves de cifrado gestionadas por el cliente (CSE) o por AWS (SSE).

  • Procedimientos almacenados: Athena no admite procedimientos almacenados.
  • Número máximo de particiones: El número máximo de particiones que se pueden crear con sentencias CREATE TABLE AS SELECT (CTAS) es 100. Hay soluciones alternativas para trabajar con más particiones.
  • Declaraciones no soportadas: Las declaraciones CREATE TABLE LIKE, DESCRIBE INPUT, DESCRIBE OUTPUT, y UPDATE no son soportadas. La declaración MERGE solo es compatible con formatos de tabla transaccionales.
  • Conectores Trino y Presto: Athena no soporta conectores Trino ni Presto. Se recomienda usar la consulta federada de Athena para conectar fuentes de datos.
  • Compatibilidad limitada con Glacier: Para consultar objetos de Amazon S3 Glacier, deben estar restaurados.
  • Archivos ocultos: Los archivos fuente que comienzan con un guion bajo (_) o un punto (.) son tratados como ocultos por Athena.
  • Tamaño de filas y columnas: El tamaño de una sola fila o sus columnas no puede exceder los 32 megabytes.
  • Límite de filas en LIMIT: El número máximo de filas que se pueden especificar en la cláusula LIMIT es 9223372036854775807. Con ORDER BY, el límite es 2147483647.

Preguntas frecuentes sobre Amazon Athena

¿Qué es Amazon Athena?

Amazon Athena es un servicio de consultas interactivo sin servidor que facilita el análisis de datos directamente en Amazon S3 mediante SQL estándar. No requiere infraestructura que gestionar y permite a los usuarios pagar solo por las consultas que ejecutan.

¿Qué se puede hacer con Athena?

Athena permite ejecutar consultas SQL en datos almacenados en S3 sin necesidad de moverlos. Es ideal para análisis ad-hoc y procesamiento de datos grandes, con soporte para formatos de datos estructurados, semiestructurados y no estructurados.

¿Cómo puedo comenzar a utilizar Athena?

Para comenzar con Athena, puedes iniciar sesión en la consola de AWS, definir el esquema de tus datos mediante declaraciones DDL, y luego empezar a ejecutar consultas SQL sobre los datos almacenados en S3.

Consultas y SQL

¿Cómo se accede a Athena?

Se puede acceder a Athena a través de la consola de AWS, la API de Athena, o utilizando controladores JDBC y ODBC compatibles con varias herramientas de inteligencia empresarial.

¿Athena es compatible con otras herramientas de inteligencia empresarial (BI) y clientes SQL?

Sí, Athena incluye controladores ODBC y JDBC que permiten integrarse con herramientas de BI y clientes SQL como QuickSight.

¿Qué tipo de consultas admite Athena?

Athena admite consultas SQL ANSI estándar y utiliza el motor SQL distribuido Trino. Esto incluye soporte para análisis complejos, funciones de ventana, matrices, y mucho más.

¿Cómo puedo mejorar el rendimiento de mi consulta?

El rendimiento de las consultas en Athena se puede mejorar mediante la compresión de datos, el uso de formatos en columna como Parquet y ORC, y la partición de datos para reducir la cantidad de datos analizados.

¿Athena admite las funciones definidas por el usuario (UDF)?

Sí, Athena soporta UDF para ampliar la funcionalidad de las consultas SQL, permitiendo a los usuarios definir sus propias funciones para tareas específicas.

Creación de Tablas y Formatos de Datos

¿Qué formatos de datos admite Athena?

Athena admite varios formatos de datos, incluyendo CSV, JSON, Avro, Parquet y ORC. Se recomienda usar formatos en columna como Parquet y ORC para mejorar el rendimiento y reducir los costos.

¿Cómo creo tablas y esquemas para mis datos en S3?

Puedes definir tablas y esquemas para tus datos en S3 utilizando declaraciones DDL en la consola de Athena. Esto incluye especificar el formato de datos y las particiones necesarias.

¿Cómo puedo agregar datos nuevos a una tabla existente de Athena?

Si los datos están particionados, debes ejecutar una consulta de metadatos (ALTER TABLE ADD PARTITION) para agregar la nueva partición. Si los datos no están particionados, simplemente agregando los nuevos archivos al prefijo existente se actualizarán automáticamente.

¿Athena admite la partición de datos?

Sí, Athena permite dividir los datos en particiones, lo que mejora el rendimiento de las consultas y reduce los costos. Las particiones se pueden especificar usando la cláusula PARTITIONED BY en la declaración CREATE TABLE.

Seguridad y Disponibilidad

¿Cómo se controla el acceso a los datos?

Athena admite el control de acceso detallado mediante AWS Lake Formation, IAM, ACLs y políticas de bucket de S3. Lake Formation permite gestionar centralmente los permisos y controles de acceso para los recursos del catálogo de datos.

¿Puedo proporcionar acceso entre cuentas al bucket de S3 de otra persona?

Sí, es posible proporcionar acceso entre cuentas a un bucket de S3 mediante políticas de IAM y políticas de bucket.

Precios y Facturación

¿Cuáles son los precios de Athena?

Athena cobra en función de los datos analizados por consulta, en terabytes (TB). También ofrece una opción de capacidad aprovisionada, cobrando por hora según la capacidad de procesamiento de consultas utilizada.

¿Cómo puedo reducir los costos?

Puedes reducir los costos comprimiendo los datos, particionándolos, y utilizando formatos de almacenamiento en columnas. Estas prácticas reducen la cantidad de datos analizados por Athena.

¿Por qué se me cobra menos si utilizo un formato en columnas?

La facturación por consulta en Athena se basa en la cantidad de datos analizados. Los formatos en columnas permiten a Athena leer solo las columnas necesarias, reduciendo la cantidad de datos escaneados y, por tanto, los costos.

Amazon Athena para Apache Spark

¿Cómo empiezo a trabajar con Athena para Apache Spark?

Puedes iniciar un bloc de notas en la consola de Athena o utilizar la CLI de AWS o la API de Athena para empezar a trabajar con Apache Spark en Athena. Los cuadernos permiten consultas y visualización de datos desde diversos orígenes.

¿Cuál es el precio de Athena para Apache Spark?

Athena para Apache Spark cobra por el tiempo de ejecución de las aplicaciones de Spark, basado en las unidades de procesamiento de datos (DPU) utilizadas.

Comparación con Otros Servicios

¿Cuál es la diferencia entre Athena, Amazon EMR y Amazon Redshift?

Athena es ideal para consultas interactivas en S3 sin necesidad de administrar infraestructura. Amazon EMR es adecuado para tareas de procesamiento de datos escalables y personalizadas, mientras que Redshift es ideal para cargas de trabajo complejas de BI y análisis a gran escala.

¿Cuándo debo utilizar Amazon EMR en lugar de Athena?

Debes usar Amazon EMR si necesitas ejecutar tareas de procesamiento de datos personalizados o escalables con marcos como Apache Hadoop, Spark o Presto. Usa Athena para consultas SQL interactivas sin infraestructura.

¿Cómo se compara el soporte de Spark de Athena con EMR sin servidor para Spark?

EMR sin servidor es ideal para ejecutar aplicaciones de Spark con mínima sobrecarga operativa. Athena para Apache Spark es óptimo para aplicaciones interactivas con tiempos de inicio rápidos y ajustes automáticos.

Tags:

Descubre más desde BlockStellart

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo