AWS Athena: все, что вам нужно знать
Опубликовано: 2022-05-02AWS Athena — это гибкий и экономичный сервис запросов к данным, хранящимся в AWS S3.
AWS — один из крупнейших облачных провайдеров в мире. Он предлагает множество услуг для облачного хранения и вычислительных нужд. AWS S3 — один из самых популярных сервисов на платформе AWS. Он предлагает непревзойденную надежность и доступность данных, а также является одним из самых дешевых вариантов хранения в облаке.

Учитывая множество функций и теоретически бесконечное хранилище, вы можете хранить терабайты или петабайты данных в корзинах S3. Анализ таких данных практически невозможен, если бы мы открывали каждый файл и считывали петабайты данных вручную. Здесь на помощь приходит сервис AWS Athena.
Проще говоря, AWS Athena используется в качестве службы анализа данных, просто получая доступ к данным, доступным в корзине S3, с помощью SQL-запросов. Итак, если вы понимаете даже основы SQL, вы можете начать работать над анализом данных S3 с помощью AWS Athena.
Давайте разберемся в этом на коротком примере. Предположим, вы настроили одну из своих корзин в качестве корзины журнала доступа для всех балансировщиков, которые есть в нескольких учетных записях вашей организации. Как бы вы запросили данные журналов за годы и получили важные содержательные сведения из этих файлов журналов? Ответ — AWS Athena.
Возможности AWS Афина
- Инструмент на основе SQL: AWS Athena — это очень простой в использовании сервис на основе SQL. Вы просто указываете Athena на одну из своих корзин, определяете схему своих данных, а затем начинаете использовать SQL-запросы в своей корзине.
- Без сервера: вам не нужно поддерживать инфраструктуру для запуска AWS Athena. Athena не имеет сервера и оптимизирована для автоматического использования нескольких вычислительных ресурсов в соответствии с вашими требованиями.
- Быстрота и оптимизация: Athena оптимизирована для использования эффективного количества ресурсов для максимально быстрой доставки результатов вашего запроса. Он отлично работает с небольшими и сложными анализами данных S3.
- Экономичность: Athena — это услуга с оплатой по факту использования. Это означает, что базовая стоимость использования AWS Athena не взимается; вы платите только за запросы, которые вы выполняете в службе Athena.
- Надежность и доступность данных. Поскольку Athena полагается на данные в ваших корзинах S3, вы можете быть уверены в высокой доступности и надежности данных.
- Поддержка: Athena поддерживает несколько форматов файлов, таких как JSON, CSV, Avro, ORC и другие.
- Безопасность: Athena использует такие функции безопасности, как IAM, политики сегментов и списки управления доступом, что делает ее очень безопасной.
- Серверная часть Athena: Athena использует Presto с открытым исходным кодом в качестве серверной части. Presto — это распределенный механизм SQL для запросов и анализа рабочих нагрузок больших данных.
Цены и оптимизация AWS Athena
При использовании AWS Athena с вас будет взиматься плата в размере 5 долларов США за терабайт, отсканированный при использовании AWS Athena. Эта цена может немного отличаться для некоторых регионов AWS.
- Эффективные запросы . Если вы знакомы с SQL, вы должны знать, что может быть несколько способов получить определенные результаты из данных с помощью SQL. Чтобы оптимизировать Athena, вы можете использовать эффективные запросы, которые должны занимать меньше времени для выполнения ваших запросов.
- Преобразование данных: если вы хотите еще больше оптимизировать свои запросы, вы можете сжимать, разбивать на части или преобразовывать свои данные в меньший набор данных, что еще больше сокращает время выполнения вашего запроса. Используя преобразование данных, вы можете оптимизировать свой запрос до 90%.
- Объединение виртуальных таблиц. Объединение таблиц — очень важная функция SQL. Хотя это может показаться простой операцией, это может быть очень сложной операцией. Таблицы большего размера рекомендуется располагать слева, а таблицы с меньшим количеством данных — справа.
Разница между AWS Athena и Redshift Spectrum
Redshift Spectrum — еще один сервис, который можно использовать для выполнения запросов в корзинах AWS S3. И Redshift Spectrum, и Athena не имеют серверов, могут выполнять сложные запросы на S3 и стоят 5 % за терабайт обработанных данных, так в чем же разница?

Производительность
AWS Athena использует вычислительные ресурсы из пула ресурсов, предоставленного AWS. Напротив, спектр Redshift использует ресурсы, выделенные в соответствии с размером кластера Redshift. Это позволяет лучше контролировать ресурсы, используемые службой Redshift Spectrum, а если вам нужна повышенная производительность, вы всегда можете увеличить размер своего кластера Redshift.
Загрузка данных для обработки
Обе службы используют виртуальные таблицы для выполнения SQL-запросов к вашим данным. Виртуальные таблицы создаются с использованием каталога данных Glue для управления схемой. Athena может напрямую использовать данные из схемы каталога данных Glue, тогда как при использовании Redshift Spectrum вам потребуется настроить внешние таблицы из схемы каталога данных Glue.
Это основные различия между двумя сервисами, поэтому при выборе между Redshift спектра и Athena. Вам следует использовать Redshift Spectrum, если вы хотите запрашивать данные в S3 вместе с данными, хранящимися в хранилище данных Redshift, или если вы готовы платить больше за повышение производительности запросов в S3. Athena может быть полезна, когда все ваши данные находятся только в корзинах S3.
Разница между AWS Athena и S3 Select
S3 select — еще один бессерверный сервис от AWS для запроса данных в S3 с использованием SQL. Однако основное различие между S3 Select и Athena заключается в том, что вы можете использовать запросы SQL SELECT только при использовании S3 Select, тогда как Athena можно использовать для всех типов запросов SQL. Другое ограничение выбора S3 заключается в том, что вы можете выполнять операцию SELECT только для одного объекта за раз.
Таким образом, если вам требуется только извлечь данные или подмножество данных из объекта S3, вам следует использовать S3 Select. Для сложных запросов и операций, таких как JOIN, или для обработки данных во всей корзине S3, следует использовать AWS Athena.
Преимущества использования AWS Athena
- Athena устраняет необходимость разработки сложного и дорогостоящего инструмента анализа данных.
- Athena не имеет серверов, что делает ее довольно простой в использовании. Вам не нужно поддерживать инфраструктуру.
- AWS оптимизировал Athena, чтобы иметь возможность извлекать результаты запроса в течение нескольких секунд после запуска запроса Athena.
- Поскольку Athena бессерверна, вам не нужно платить за услугу Athena. Вы платите только за те запросы, которые выбираете для выполнения. Даже если вы отмените запрос, вы будете платить только за обработанные данные, а не за весь запрос.
- Athena легко интегрируется с другими сервисами AWS. Одна из самых важных и ценных интеграций для AWS Athena — это сервис AWS Glue. AWS Glue — это сервис ETL, который можно использовать для преобразования данных в более эффективную и удобочитаемую форму, которую затем можно анализировать с помощью AWS Athena.
- Athena позволяет выполнять несколько запросов одновременно.
Ограничения AWS Athena
- Размер строки. Размер строки в виртуальной таблице AWS Athena не должен превышать 32 мегабайта. Этот предел может быть увеличен в очень редких случаях для файлов CSV и JSON до 100 мегабайт, но настоятельно рекомендуется ограничить размер строки до 32 мегабайт, чтобы избежать нежелательных ошибок.
- Скрытые файлы: файлы, имена которых начинаются с символа подчеркивания (_) или точки (.), рассматриваются службой Athena как скрытые. Это можно использовать как функцию, позволяющую избежать обработки нежелательных файлов.
- Athena не может обрабатывать данные в S3 Glacier или S3 Glacier Deep Archive. Эти классы хранения предназначены только для вариантов архивирования данных и имеют время извлечения от минут до часов, поэтому понятно, что AWS Athena не может получить данные из этих классов.
- Athena не поддерживает хранимые процедуры .
- Athena версии 1 не поддерживает параметризованные запросы . Это поддерживается в Athena версии 2.
- Такие операторы, как MERGE, UPDATE, CREATE TABLE LIKE,
DESCRIBE INPUT
иDESCRIBE OUTPUT
, не поддерживаются.
Вывод
В этой статье мы обсудили инструмент анализа данных от AWS AWS Athena, его особенности, преимущества и некоторые ограничения. Athena — один из самых мощных инструментов для обработки и анализа данных в корзинах S3. Даже ограничения сервиса довольно просты, и при необходимости их можно обойти.
Вы также можете ознакомиться с некоторыми рекомендациями по защите хранилища AWS S3.