Почему Athena?
Amazon Athena – это бессерверный интерактивный аналитический сервис, построенный на фреймворках с открытым исходным кодом, который позволяет анализировать петабайты данных там, где они находятся. В Athena можно использовать SQL или Apache Spark, а настраивать инфраструктуру или управлять ею не требуется. Цены просты: вы платите в зависимости от обработанных данных или используемых вычислений.
Для начала работы вы создаете рабочую группу, в которой можно указать движок запросов, рабочий каталог в Простом сервисе хранения данных Amazon (S3) для хранения результатов выполнения, роли в сервисе «Управление идентификацией и доступом AWS» (IAM) (при необходимости) и теги ресурсов. Вы можете использовать рабочие группы для разделения пользователей, команд, приложений или рабочих нагрузок; устанавливать ограничения на объем данных, которые может обрабатывать каждый запрос или вся рабочая группа; а также отслеживать расходы. В зависимости от созданной рабочей группы вы можете (a) выполнять запросы SQL и получать результаты на основе считанных данных или использованных вычислений либо (б) запускать код Apache Spark Python и получать почасовую оплату за выполнение вашего кода.
Калькулятор цен AWS
Посчитайте затраты на Amazon Athena и архитектуру в единой смете.
Запросы SQL
Запросы SQL с выделенными ресурсами
Apache Spark
Дополнительная плата
Поскольку запросы Athena выполняются непосредственно в Amazon S3, дополнительная плата за хранение данных не взимается. Плата по стандартному тарифу начисляется только за хранение данных в S3, запросы и передачу данных. По умолчанию результаты выполнения запросов сохраняются в выбранной корзине S3; их хранение также подлежит оплате по стандартным тарифам S3.
- S3 взимает с вас счет за чтение, хранение и передачу данных в рабочих нагрузках. Сюда входят успешные и неудачные запросы. По умолчанию результаты выполнения запросов SQL и вычислений Spark сохраняются в выбранной корзине S3; их хранение подлежит оплате по стандартным тарифам S3. Подробнее см. на странице цен на Amazon S3.
- При использовании Каталога данных AWS Glue с Athena вы платите по стандартным тарифам для каталога данных. Подробные сведения см. на странице цен AWS Glue.
- За запросы SQL к объединенным источникам данных (данные не хранятся на S3) взимается плата за терабайт (ТБ), считанный Athena в совокупности по всем источникам данных, с округлением до ближайшего мегабайта с минимальным размером 10 мегабайт на запрос, если не используются выделенные ресурсы. Такие запросы также выполняют вызов функций AWS Lambda на вашем аккаунте, оплата за работу AWS Lambda начисляется по стандартным расценкам. Функции Lambda, вызываемые федеративными запросами, относятся к уровню бесплатного использования Lambda. Подробные сведения см. на странице цен Lambda.
Примеры расчета цен
Пример 1. Запрос SQL
Рассмотрим таблицу с четырьмя столбцами равного размера, сохраненную в Amazon S3 в виде несжатого текстового файла общим размером 3 ТБ. При выполнении запроса на извлечение данных из одного столбца таблицы Amazon Athena обработает весь файл, поскольку данные в текстовом формате нельзя разделить.
- Стоимость данного запроса составит 15 USD. (Стоимость обработки 3 ТБ данных составит 3 х 5 USD/1 TБ = 15 USD.)
Если сжать файл в формат GZIP, его размер можно уменьшить в 3 раза. Тогда сжатый файл будет иметь размер 1 ТБ. Теперь этот же запрос будет стоить 5 USD. Athena все равно будет обрабатывать весь файл, но поскольку его размер стал в три раза меньше, пользователь будет платить в три раза меньше. Если сжать файл и преобразовать его в табличный формат, такой как Apache Parquet, его размер уменьшится в 3 раза, но в S3 все равно будет 1 ТБ данных. Но в этот раз, за счет табличного формата Parquet, для выполнения запроса Athena достаточно обработать только требуемый столбец. Поскольку в запросе указан только один столбец, Athena прочитает только его, т. е. четвертую часть файла. Таким образом, будет обработано 0,25 ТБ данных.
- Стоимость данного запроса составит 1,25 USD. Стоимость снижена в три раза за счет сжатия и еще в четыре раза за счет чтения только одного столбца.
(Размер файла = 3 ТБ/3 = 1 ТБ. Объем обрабатываемых данных в одном столбце = 1 ТБ/4 = 0,25 ТБ. Стоимость обработки 0,25 ТБ данных составит 0,25 х 5 USD / 1 ТБ = 1,25 USD)
Пример 2. Запросы SQL с выделенными ресурсами
Предположим, что ваша команда поддерживает веб-приложение, которое предоставляет аналитику в режиме самообслуживания пользователям, отправляющим запросы в рабочее время и ожидающим их выполнения в предсказуемый промежуток времени. На прошлой неделе пользователи приложения отправили в общей сложности 10 000 запросов, в ходе которых было считано 500 ТБ данных. Вы хотите использовать выделенные ресурсы, чтобы поддерживать единообразный пользовательский интерфейс по мере роста числа пользователей. Анализируя запросы, вы определяете, что 96 блоков обработки данных достаточно для текущей рабочей нагрузки.
- В течение одного рабочего дня стоимость поддержки этой рабочей нагрузки с использованием выделенных ресурсов составляет 96 DPU * 0,30 USD за час DPU * 12 часов в день = 345,60 USD.
Однажды утром вы узнаете, что новая группа пользователей приложения прошла регистрацию и, как следствие, ожидаете, что объем запросов будет в 2 раза выше, чем накануне. Вы хотите, чтобы пользователи работали так же, как и вчера, но не ожидаете, что все пользователи будут отправлять запросы одновременно. Через два часа работы вы увеличиваете мощность на 50 % до 144 DPU.
- Стоимость сегодняшней рабочей нагрузки равна стоимости 96 DPU за 2 часа плюс 144 DPU в течение 10 часов или 96 DPU * 0,30 USD за час DPU * 2 часа + 144 DPU * 0,30 USD за час DPU * 10 часов = 489,60 USD.
Пример 3. Приложение Apache Spark
Рассмотрим возможность использования блокнота в консоли Athena для получения данных о продажах за предыдущий квартал и построения графиков для создания отчета. Вы начинаете сеанс, используя блокнот. Ваш сеанс длится 1 час, в рамках сеанса предоставляется 6 расчетов. Каждый расчет занимает 20 рабочих узлов 1-DPU и длится 1 минуту.
- Количество рабочих DPU-часов = количество расчетов * DPU, используемые для расчетов * время выполнения расчета = 6 расчетов * 20 DPU для каждого расчета * (1/60) часов для каждого расчета = 2,0 DPU-часа
- Количество драйверных DPU-часов = DPU, использованные за сеанс * время сеанса = 1 DPU за сеанс * 1 час за сеанс = 1,0 DPU-час
- Общее количество DPU-часов = количество рабочих DPU-часов + количество драйверных DPU-часов = 2,0 DPU-часа + 1,0 DPU-час = 3,0 DPU-часа
- Плата за приложение Spark = 0,35 USD за DPU-час * 3,0 DPU-часа = 1,05 USD
Обратите внимание: S3 взимает отдельную плату за хранение и считывание ваших данных и результатов выполнения.
Дополнительные ресурсы по ценам
Простой расчет ежемесячных расходов на AWS
Связаться со специалистами AWS и получить индивидуальное предложение
Начните разработку с помощью Amazon Athena в Консоли управления AWS.