- Аналитика›
- Amazon Athena›
- Вопросы и ответы
Вопросы и ответы по Amazon Athena
Темы страниц
Общие вопросыОбщие вопросы
Что такое Amazon Athena?
Athena – это сервис интерактивной аналитики, который облегчает анализ данных в Простом сервисе хранения данных Amazon (S3) с помощью SQL. Athena – бессерверный сервис, здесь нет инфраструктуры, требующей настройки или управления, поэтому можно сразу же приступить к анализу данных. Не нужно даже загружать данные в Athena, поскольку сервис работает непосредственно с данными, хранимыми в Amazon S3. Сервис Amazon Athena для SQL использует Trino и Presto с полной поддержкой стандартных средств SQL и работает с различными стандартными форматами данных, включая CSV, JSON, Apache ORC, Apache Parquet и Apache Avro. Athena для Apache Spark поддерживает язык SQL и позволяет применять Apache Spark в качестве системы распределенной обработки данных с открытым исходным кодом, используемой для рабочих нагрузок больших данных. Чтобы начать, войдите в Консоль управления Athena и начните взаимодействовать со своими данными с помощью блокнотов или редактора запросов.
Как можно использовать Athena?
С помощью Athena вы можете анализировать данные, хранящиеся в S3 и 30 источниках данных, включая локальные источники данных или другие облачные системы. Сервис Athena можно использовать для интерактивной аналитики с помощью ANSI SQL или Python – без необходимости объединять данные или загружать их в Athena. Athena может обрабатывать неструктурированные, полуструктурированные и структурированные пакеты данных. В их число входят CSV, JSON, Avro или столбцовые форматы данных, такие как Parquet и ORC. Сервис Amazon Athena для SQL интегрируется с Amazon QuickSight для визуализации данных или создания информационных панелей. Athena также можно использовать для формирования отчетов или просмотра данных с применением инструментов бизнес-аналитики или SQL-клиентов, подключенных с помощью драйвера ODBC или JDBC.
Как начать работу с Athena?
Чтобы начать работу с сервисом Athena, войдите в Консоль управления AWS для Athena и создайте схему, указав в консоли операторы языка определения данных (DDL) либо воспользовавшись мастером создания таблиц. После этого вы сможете начать работу с запросами данных с помощью встроенного редактора запросов. Athena запрашивает данные непосредственно из хранилища S3, поэтому загружать их не требуется.
Amazon Athena для SQL
Как получить доступ к сервису Athena?
На основе какой технологии работает сервис Athena для SQL?
Сервис Athena для SQL использует систему Trino с полной поддержкой стандартных средств SQL и работает с различными стандартными форматами данных, включая CSV, JSON, ORC, Avro и Parquet. Athena может выполнять сложные задачи анализа с использованием масштабных операций объединения, оконных функций и массивов. В SQL-ядре Amazon Athena версии 3, построенной на базе Trino, мы продолжаем увеличивать производительность и предоставлять новые функции, аналогично нашему подходу к ядру Amazon Athena версии 2, построенному на базе Presto. Одним из наиболее интересных аспектов версии v3 является новый подход к управлению программным обеспечением с открытым исходным кодом на основе непрерывной интеграции, который позволит клиентам поддерживать проекты Trino и PrestoDB в актуальном состоянии. Мы стремимся не выходить за пределы 60–90 дней после запуска Trino с открытым исходным кодом. Команда разработчиков Athena активно вносит исправления ошибок и улучшения безопасности, масштабируемости, производительности и функциональности в эти кодовые базы с открытым исходным кодом, поэтому все, кто использует Trino, Presto и Apache Iceberg, могут воспользоваться вкладом команды.
Как сервис Athena для SQL хранит определения таблиц и схемы?
Для хранения информации и схем баз данных и таблиц, хранящихся в S3, сервис Athena для SQL использует управляемый Каталог данных AWS Glue. В тех регионах, где доступен сервис AWS Glue, можно настроить Athena на использование каталогов данных. В тех регионах, где сервис AWS Glue недоступен, Athena использует внутренний каталог.
Этот каталог можно изменить с помощью операторов DDL или через Консоль управления AWS. Все задаваемые схемы будут автоматически сохраняться до тех пор, пока вы их явно не удалите. В сервисе Athena применяется технология «схема при чтении», в рамках которой определения таблиц применяются к данным в хранилище S3 в процессе выполнения запросов. Выполнять загрузку или преобразование данных при этом не требуется. Определения таблиц и схемы можно удалять – это не окажет влияния на основные данные, хранящиеся в S3.
Почему рекомендуется перейти к использованию каталога данных?
AWS Glue – полностью управляемый сервис для извлечения, преобразования и загрузки (ETL) данных. AWS Glue состоит из трех компонентов: 1) поисковый бот, который автоматически обрабатывает источники данных, определяет их формат и выбирает схему для этих данных; 2) полностью управляемый сервис ETL, с помощью которого можно преобразовывать данные и перемещать их между источниками; 3) каталог данных, в котором хранятся метаданные о базах и таблицах, находящихся либо в S3, либо в другом хранилище, поддерживающем стандарт ODBC или JDBC. Чтобы использовать все преимущества сервиса AWS Glue, рекомендуется перейти с использования внутреннего каталога данных Athena к использованию каталога данных Glue.
Ниже перечислены преимущества такого перехода.
- Единый репозиторий метаданных. AWS Glue можно интегрировать с различными сервисами AWS. AWS Glue работает с данными, сохраненными в Amazon Aurora, сервисе реляционных баз данных Amazon (RDS) для MySQL, Amazon RDS для PostgreSQL, Amazon Redshift, S3, а также с базами данных MySQL и PostgreSQL в облаке Amazon Virtual Private Cloud (VPC), запущенном в Эластичном вычислительном облаке Amazon (EC2). AWS Glue предлагает встроенную интеграцию с Athena, Amazon EMR, Amazon Redshift Spectrum и приложениями, совместимыми с метахранилищем Apache Hive.
- Автоматическое распознавание схем и разделов. AWS Glue автоматически обрабатывает источники данных, определяет формат данных, предлагает схему для них и варианты преобразования. Сканеры сервиса помогают автоматизировать создание таблиц и загрузку разделов.
Чтобы подробнее узнать о каталоге данных, ознакомьтесь с информацией на веб-странице AWS Glue.
Есть ли пошаговая инструкция по переходу на каталог данных AWS?
Да. С пошаговой инструкцией можно ознакомиться в разделе руководства пользователя Amazon Athena Интеграция с AWS Glue.
В каких регионах доступен сервис Athena?
Чтобы подробнее узнать о доступности сервиса Athena в регионах, ознакомьтесь со списком региональных сервисов AWS.
Какие лимиты действуют для сервиса Athena?
Чтобы подробнее узнать о лимите сервиса, ознакомьтесь с разделом руководства пользователя Amazon Athena «Квоты на обслуживание».
Создание таблиц, форматы данных и разделы
Как создаются таблицы и схемы для данных в хранилище S3?
Для определения таблиц сервис Athena использует операторы DDL Apache Hive. Операторы DDL можно выполнять в консоли Athena, через API, с помощью драйвера ODBC или JDBC, а также мастера создания таблиц Athena. При использовании каталога данных в Athena можно также использовать поисковые боты AWS Glue для автоматического определения схем и разделов. Поисковый бот AWS Glue подключается к хранилищу данных, перемещается по приоритезированному списку классификаторов, чтобы определить схему и другие статистические данные, а затем сохраняет полученные метаданные в каталоге данных. Поисковые боты можно запускать периодически, чтобы определять появление новых данных или изменения в существующих данных, включая изменения в определениях таблиц. Поисковые боты AWS Glue добавляют новые таблицы, новые разделы к существующим таблицам и новые версии определений таблиц. Поисковые боты AWS Glue можно настраивать так, чтобы они обрабатывали пользовательские типы файлов.
Когда в Athena создается новая схема таблицы, она сохраняется в каталоге данных и используется при выполнении запросов, но не изменяет данные, хранящиеся в S3. В сервисе Athena применяется подход, известный как «схема при чтении», который позволяет проецировать схему на данные при выполнении запроса. Это уменьшает необходимость в загрузке или преобразовании данных. Подробнее о создании таблиц.
Какие форматы данных поддерживает сервис Athena?
Athena поддерживает множество форматов, таких как CSV, TSV, JSON или текстовые файлы, а также столбцовые форматы данных с открытым исходным кодом, – например ORC и Parquet. Кроме того, Athena поддерживает сжатые данные в форматах Snappy, Zlib, LZO и GZIP. Сжатие, разбиение на разделы и применение столбцовых форматов данных позволяют повысить производительность и сократить затраты.
Какие типы данных поддерживает сервис Athena?
Athena поддерживает как простые типы данных, включая INTEGER, DOUBLE и VARCHAR, так и комплексные, подобные MAPS, ARRAY и STRUCT.
Можно ли запускать запросы Hive в сервисе Athena?
Athena использует Hive только для операторов DDL и для создания / изменения и удаления таблиц или разделов. С полным списком поддерживаемых операторов можно ознакомиться в разделе руководства пользователя Amazon Athena Операторы DDL. При запуске запросов SQL, обращенных к S3, Athena использует систему Trino и Presto. Для запроса данных в S3 можно выполнить ANSI-совместимые операторы SQL SELECT.
Что такое SerDe?
SerDe, сокращение от Serializer/Deserializer (параллельно-последовательный/последовательно-параллельный преобразователь), – это библиотеки, которые сообщают Hive, как следует интерпретировать форматы данных. Операторы DDL Hive требуют задать SerDe, чтобы система знала, как интерпретировать указанные для нее данные. Athena использует SerDe для интерпретации данных, считываемых из хранилища S3. Концепция SerDe, которая используется в Athena, аналогична концепции в Hive. Amazon Athena поддерживает следующие SerDe:
- Журналы веб-сервера Apache: org.apache.hadoop.hive.serde2.RegexSerDe
- CSV: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- TSV: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- Пользовательские разделители: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- Parquet: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
- Orc: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- JSON: “org.apache.hive.hcatalog.data.JsonSerDe” или "org.openx.data.jsonserde.JsonSerDe"
Можно ли добавлять в Athena пользовательские SerDe?
В настоящее время добавление пользовательских SerDe в Athena не предусмотрено. Мы высоко ценим обратную связь, которую вы предоставляете. Если вы хотите добавить какие-либо SerDe в сервис, обратитесь к команде разработчиков Athena по адресу athena-feedback@amazon.com.
Если создать файлы Parquet/ORC с помощью Spark/Hive, можно ли будет направлять к ним запросы в Athena?
Да, файлы Parquet и ORC, созданные в Spark, можно считывать с помощью сервиса Athena.
Как направлять запросы к данным Amazon Kinesis Firehose с помощью Athena?
Если данные Kinesis Firehose хранятся в S3, вы можете направлять к ним запросы с помощью Athena. Создайте схему для своих данных в Athena и начните работу с запросами. В целях повышения производительности рекомендуется упорядочить данные по разделам. Чтобы добавить разделы, созданные с помощью данных Firehose, можно воспользоваться операторами DDL ALTER TABLE. Подробнее о разбиении данных на разделы.
Поддерживает ли Athena разбиение данных на разделы?
Да. С помощью Athena можно разбить данные на разделы в любом столбце. Разделы дают возможность ограничить объем данных, обрабатываемых при каждом запросе, что приводит к сокращению затрат и повышению производительности. Указать схему разбиения на разделы можно с помощью условия PARTITIONED BY в операторе CREATE TABLE. Amazon Athena поддерживает индексы разделов каталога данных AWS Glue для оптимизации планирования запросов и сокращения времени их выполнения. Когда вы запрашиваете таблицу, содержащую большое количество разделов, Athena извлекает доступные разделы из каталога данных AWS Glue и определяет, какие из них требуются для вашего запроса. По мере добавления новых разделов время, необходимое для получения разделов, увеличивается, что может привести к увеличению времени выполнения запроса. Каталог данных AWS Glue позволяет клиентам создавать индексы разделов, которые сокращают время, необходимое для получения и фильтрации метаданных разделов в таблицах с десятками и сотнями тысяч разделов.
Как добавить новые данные в существующую таблицу в Athena?
Если данные разбиты на разделы, то, после того как новые данные станут доступны в S3, нужно будет выполнить запрос метаданных (ALTER TABLE ADD PARTITION) – это позволит добавить раздел в Athena. Если данные не разбиты на разделы, то при добавлении новых данных (или файлов) в существующий префикс они будут автоматически добавлены в Athena. Подробнее о разбиении данных на разделы.
Можно ли использовать Athena, чтобы направлять запросы к уже имеющимся большим количествам данных журналов в хранилище S3?
Да, Сервис Athena оптимизирует выполнение стандартных запросов SQL к имеющимся данным журналов. Athena запрашивает данные непосредственно из хранилища S3, поэтому перемещать или загружать их не требуется. Задайте собственную схему с помощью операторов DDL и сразу же начинайте работу с запросами к своим данным.
Запросы, форматы данных и многооблачные среды
Какие типы запросов поддерживает сервис Athena?
Сервис Athena поддерживает запросы ANSI SQL. Athena использует Trino, работающий в памяти распределенный движок запросов SQL с открытым исходным кодом, и может выполнять сложные задачи анализа с использованием масштабных операций объединения, оконных функций и массивов.
Можно ли использовать сервис QuickSight вместе с Athena?
Да. Athena интегрируется с QuickSight, так что можно беспрепятственно визуализировать данные, хранящиеся в S3.
Поддерживает ли Athena другие инструменты бизнес-аналитики и SQL-клиенты?
Как получить доступ к функциям, которые поддерживает сервис Athena?
Подробнее о функциях, поддерживаемых сервисом Athena.
Как повысить производительность запроса?
Производительность запроса можно повысить с помощью сжатия, разбиения на разделы или преобразования данных в столбцовые форматы. Сервис Athena поддерживает столбцовые форматы данных с открытым исходным кодом, такие как Parquet и ORC. Преобразование данных в сжатый столбцовый формат позволяет сократить затраты и повысить производительность запросов, поскольку при выполнении запроса Athena будет обрабатывать меньше данных из хранилища S3.
Поддерживает ли сервис Athena пользовательские функции (UDF)?
Да. Сервис Athena поддерживает UDF, позволяя вам писать собственные скалярные функции и вызывать их в запросах SQL. Athena поддерживает и встроенные функции, а UDF помогают выполнять специализированные задачи обработки данных, такие как сжатие или распаковка данных, обработка конфиденциальных данных или применение собственных алгоритмов дешифрования.
Query Federation SDK в Athena помогает создавать пользовательские функции на Java. Когда в запросе SQL, переданном в Athena, встречается пользовательская функция, она вызывается и выполняется в среде AWS Lambda. Пользовательские функции можно включать в условия SELECT и FILTER любого запроса SQL. В одном запросе можно вызывать несколько пользовательских функций.
Какая процедура используется для создания пользовательских функций?
Для создания пользовательских функций можно использовать Athena Query Federation SDK. Ознакомьтесь с примерами пользовательских функций. Готовую функцию можно загрузить в Lambda и затем вызывать ее из запроса в Athena. Чтобы начать, обратитесь к разделу руководства пользователя Amazon Athena Создание и развертывание пользовательских функций с помощью сервиса Lambda.
Athena вызывает пользовательскую функцию сразу для пакета строк из набора данных, чтобы повысить производительность.
Поддерживает ли Athena аналитику многооблачных сред?
Да, Athena предлагает несколько коннекторов для источников данных, которые можно использовать для анализа данных других поставщиков облачных услуг и других сервисов облачного хранения без перемещения или преобразования данных. Коннекторы источников данных доступны для 30 источников данных, включая Azure Synapse, хранилище озера данных Azure, Google BigQuery и облачное хранилище Google. Узнайте больше о решениях AWS для гибридных и многооблачных сред.
Федеративный запрос
Что такое федеративный запрос?
Если у вас имеются данные в источниках, расположенных вне S3, то можно использовать Athena для запроса имеющихся данных или для создания конвейеров для извлечения данных из нескольких источников и их сохранения в S3. Федеративные запросы Athena позволяют выполнять запросы к данным SQL, которые хранятся в реляционных, нереляционных, объектных и особых источниках данных.
Зачем нужны федеративные запросы в Athena?
Организации часто хранят данные в источнике, который отвечает требованиям их приложений или бизнес-процессов. Это может быть реляционная база данных, база данных с парами «ключ – значение», для хранения документов, с хранением в памяти, для поиска, на основе графов, временных рядов или учета операций, которая используется наряду с озером данных S3. Анализ таких разнородных источников может оказаться сложным и отнимать много времени, поскольку обычно для этого требуется осваивать новые языки программирования или конструкции баз данных и создавать сложные конвейеры для извлечения, преобразования и дублирования данных перед тем, как они могут быть использованы для анализа. Сервис Athena упрощает эти процессы, позволяя выполнять запросы SQL к данным в их местоположении. Вы сможете применять уже знакомые конструкции SQL для создания запросов по нескольким источникам данных для быстрого анализа или выполнения запросов SQL по расписанию для регулярного извлечения и преобразования данных из нескольких источников данных с последующим сохранением в S3 для дальнейшего анализа.
Какие источники данных поддерживаются?
Athena предоставляет встроенные коннекторы для 30 популярных хранилищ данных AWS, локальных и других облачных хранилищ, включая Amazon Redshift, Amazon DynamoDB, Google BigQuery, облачное хранилище Google, Azure Synapse, хранилище озера данных Azure, Snowflake и SAP Hana. Эти коннекторы можно применять для примеров использования SQL-аналитики на структурированных, полуструктурированных, объектных, графовых данных, временных рядах и других типах хранилищ данных. Список поддерживаемых источников см. в разделе Использование коннекторов источников данных Athena.
Кроме того, SDK коннектор данных сервиса Athena можно использовать для создания особого коннектора источника данных и отправлять запросы к нему с помощью Athena. Начните с ознакомления с документацией и примером реализации коннектора.
Какие примеры внедрения обеспечивает федеративный запрос?
С помощью Athena вы можете использовать свое знание SQL, чтобы извлекать аналитическую информацию из множества источников данных без необходимости изучать новый язык, разрабатывать сценарии для извлечения (и дублирования) данных или управлять инфраструктурой. С помощью сервиса Amazon Athena можно выполнять перечисленные ниже задания.
- Выполнять по требованию анализ данных из множества источников с помощью одного инструмента и диалекта SQL.
- Визуализировать данные в приложениях для бизнес-аналитики, которые передают сложные объединения данных из множества источников движку распределенных вычислений Athena по интерфейсам ODBC и JDBC.
- Проектировать конвейеры ETL с самообслуживанием и рабочие процессы обработки данных на основе событий благодаря интеграции Athena и AWS Step Functions.
- Объединять разнородные источники данных для создания возможностей ввода данных для рабочих процессов обучения моделей машинного обучения.
- Разрабатывать приложения по модели «данные как продукт» для клиентов, которые находят ценные данные в архитектурах сетки данных.
- Поддерживать аналитические примеры использования в ходе миграции локальных источников данных организации в AWS.
Можно ли использовать федеративные запросы в операциях ETL?
Сервис Athena сохраняет результаты запроса в файле в S3. Это значит, что Athena можно использовать, чтобы делать федеративные данные доступными для пользователей и приложений. Если вы хотите проводить анализ данных с помощью Athena без постоянной отправки запросов к источнику данных, воспользуйтесь функцией Athena CREATE TABLE AS. Кроме того, можно использовать функцию Athena UNLOAD для запроса данных и хранения результатов в файле специального формата в S3.
Как работают коннекторы источников данных?
Коннектор источника данных – это фрагмент кода, который выполняется в сервисе Lambda и осуществляет перевод между целевым источником данных и Athena. Когда вы пользуетесь коннектором источника данных для регистрации хранилища данных в сервисе Athena, вы можете отправлять запросы SQL к федеративным хранилищам данных. Когда выполняется запрос к федеративному источнику, Athena вызывает функцию Lambda и дает ей задания по выполнению фрагментов запроса, специфических для федеративного источника. Чтобы узнать больше, ознакомьтесь с разделом руководства пользователя Amazon Athena Использование федеративных запросов Amazon Athena.
Машинное обучение
Какие сценарии использования поддерживает Athena для встраиваемых операций машинного обучения?
Сервис Athena поддерживает использование машинного обучения для разных отраслей, некоторые из вариантов применения перечислены ниже. Аналитики данных о финансовых рисках могут выполнять анализ «что если» и моделирование по методу Монте-Карло. Бизнес-аналитикам будет полезна поддержка моделей линейной регрессии или прогнозирования для оценки ожидаемых значений, которые позволят им создать более функциональные и прогностические панели управления для анализа доходов. Для анализа рынка можно применять модели кластеризации методом k-средних, которые помогают распределять клиентов по сегментам. Аналитики по вопросам безопасности могут применять модели логистической регрессии для выявления аномалий и инцидентов безопасности в журналах.
Какие модели машинного обучения можно использовать в Athena?
Athena может вызывать любую модель машинного обучения, развернутую в SageMaker. Вам предоставляется гибкая возможность обучить собственную модель по корпоративным данным или применить предварительно обученную модель, которая развернута в SageMaker. Например, для кластерного анализа есть смысл проводить обучение по собственным данным, ведь вам важно распределять новые записи по тем же категориям, которые использовались ранее для предыдущих записей. С другой стороны, прогноз по реальным событиям, например спортивным мероприятиям, можно выполнять с помощью общедоступных моделей, поскольку все результаты для обучения уже есть в свободном доступе. Для прогнозов по конкретным сферам деятельности и отраслям обучение обычно выполняется по собственным данным, размещенным в SageMaker, а для обобщенных задач машинного обучения можно применять внешние модели.
Можно ли обучать модель машинного обучения с помощью сервиса Athena?
Вы не сможете с помощью Athena обучать и развертывать в SageMaker модели машинного обучения. В Athena можно обучить модель машинного обучения или применить существующую и предварительно обученную модель, которая уже развернута в SageMaker. Ознакомьтесь с документацией с описанием шагов по обучению моделей в SageMaker.
Можно ли получать логические выводы по моделям, развернутым в других сервисах, например в Comprehend, Forecasting или в собственном кластере EC2?
Athena поддерживает только вызов моделей машинного обучения, развернутых в SageMaker. Мы будем рады вашим пожеланиям по использованию других сервисов вместе с Athena. Любые отзывы вы можете направить по электронной почте на адрес athena-feedback@amazon.com.
Какое влияние на производительность оказывает использование запросов Athena для получения логических выводов SageMaker?
Мы постоянно вносим улучшения, повышающие производительность, во все наши функции и сервисы. Чтобы повысить производительность запросов Athena, мы создаем пакеты строк при вызове модели машинного обучения из SageMaker для получения логических выводов. В настоящее время мы не предоставляем пользователям возможность переопределять размеры этих пакетов.
Какие функции поддерживает машинное обучение в Athena?
Athena предоставляет возможности получения логических выводов (прогнозирования) из моделей машинного обучения через интерфейс с синтаксисом SQL. Кроме того, можно применить UDF сервиса Athena для применения предварительной или постобработки к набору результатов. В качестве входящих данных можно использовать любой столбец, строку или таблицу, а также можно объединять в пакеты несколько вызовов, чтобы улучшить масштабируемость. Вы можете применять получение логических выводов на этапах выбора (SELECT) или фильтрации (FILTER). Чтобы узнать больше, ознакомьтесь с этим разделом руководства пользователя Amazon Athena.
Какие модели машинного обучения можно использовать?
SageMaker поддерживает множество алгоритмов машинного обучения. Кроме того, вы можете разработать собственную модель машинного обучения и развернуть ее в SageMaker. Например, для кластерного анализа есть смысл проводить обучение по собственным данным, ведь вам важно распределять новые записи по тем же категориям, которые использовались ранее для предыдущих записей. С другой стороны, прогноз по реальным событиям, например спортивным мероприятиям, можно выполнять с помощью общедоступных моделей, поскольку все результаты для обучения есть в свободном доступе.
Мы полагаем, что для прогнозов по конкретным сферам деятельности и отраслям обучение обычно выполняется по собственным данным, размещенным в SageMaker, а для обобщенных задач, например для машинного перевода, можно применять внешние модели.
Безопасность и доступность
Как управлять доступом к своим данным?
Amazon Athena поддерживает точный контроль доступа с помощью AWS Lake Formation. AWS Lake Formation позволяет централизованно управлять разрешениями и контролем доступа к ресурсам каталога данных в вашем озере данных S3. Вы можете применять точные политики контроля доступа в запросах Athena к данным, хранящимся в любом поддерживаемом формате файлов, используя такие форматы таблиц, как Apache Iceberg, Apache Hudi и Apache Hive. Сервис Athena предоставляет гибкие возможности выбора формата таблиц и файлов, наиболее подходящих для вашего случая применения, и преимущества централизованного управления данными для обеспечения безопасного доступа к ним. Например, вы можете использовать формат таблиц Iceberg для хранения данных в вашем озере данных S3 для надежной записи транзакций в масштабе вместе с фильтрами безопасности на уровне строк в Lake Formation, чтобы аналитики данных, проживающие в разных странах, получали доступ к данным только для клиентов, находящихся в их стране, для соответствия нормативным требованиям. Новая расширенная поддержка форматов таблиц и файлов не требует изменений в настройке тонких политик контроля доступа в Lake Formation и требует наличия ядра Athena версии 3, который предлагает новые функции и улучшенную производительность запросов. В Athena можно управлять доступом к данным с помощью политик управления идентификацией и доступом AWS (IAM), списков контроля доступа или политик использования корзин S3. Благодаря политикам IAM можно предоставлять пользователям IAM средства точного управления корзинами S3. Контролируя доступ к данным в S3, можно запретить пользователям отправлять запросы к этому хранилищу через Athena.
Может ли Athena выполнять запросы к зашифрованным данным в S3?
Да. Сервис поддерживает запросы к данным, которые зашифрованы на стороне сервера (SSE) с помощью ключей, управляемых S3; к данным, которые зашифрованы на стороне сервера с помощью сервиса управления ключами AWS (KMS); а также к данным, которые зашифрованы на стороне клиента с помощью ключей, управляемых AWS KMS. Кроме того, сервис Athena интегрирован с AWS KMS и предоставляет возможность шифрования наборов данных, полученных в ответ на запрос.
Обеспечивает ли Athena высокую доступность данных?
Да. Сервис Athena обеспечивает высокую доступность, выполняя запросы с помощью вычислительных ресурсов, распределенных между несколькими объектами, и автоматической маршрутизации запросов в случае недоступности определенных объектов. В качестве основного хранилища Athena использует S3, что гарантирует высокую доступность и надежность данных. S3 обеспечивает надежную инфраструктуру для хранения важных данных. Резервные копии данных распределяются между несколькими объектами и несколькими устройствами на каждом объекте.
Можно ли предоставить доступ к корзине S3, принадлежащей стороннему лицу, для пользователей других аккаунтов?
Да, вы можете предоставлять доступ к хранилищу S3 для пользователей других аккаунтов.
Цены и оплата
Сколько стоит использование сервиса Athena?
С помощью Athena вы можете выбрать оплату за запрос на основе отсканированных данных или вычислительных ресурсов, необходимых для выполнения ваших запросов. Цена за запрос зависит от объема данных, сканируемых запросом, в терабайтах (ТБ). В S3 можно хранить данные в различных форматах. Если вы сожмете данные, разобьете их на разделы или преобразуете в столбцовые форматы, плата снизится, поскольку вы будете обрабатывать меньше данных. Преобразование данных в столбцовый формат позволит сервису Athena при обработке запроса считывать только необходимые столбцы. При использовании выделенных ресурсов вы платите почасовую цену за мощность обработки запросов, а не за сканирование данных. В рамках одного аккаунта можно использовать тарификацию за запрос и тарификацию на основе вычислений. Чтобы узнать больше, ознакомьтесь с информацией на странице цен на Amazon Athena.
Почему при использовании столбцового формата плата снижается?
При оплате каждого запроса Athena взимает плату в зависимости от количества данных, сканируемых за запрос. Если сжать данные, сервис будет обрабатывать меньший объем. Преобразование данных в столбцовые форматы позволяет Athena при обработке данных выборочно считывать только необходимые столбцы. Разбиение данных на разделы также приводит к уменьшению объема данных, обрабатываемых Athena. Все это обеспечивает сокращение затрат и повышение производительности. Чтобы узнать больше, ознакомьтесь с информацией на странице цен на Amazon Athena.
Каким образом можно сократить затраты?
При оплате за каждый запрос сжатие, разбиение на разделы и преобразование данных в столбцовые форматы позволяют сэкономить 30–90 % стоимости запроса и повысить производительность. Каждая из этих операций сокращает объем сканируемых данных и время, необходимое для выполнения. Эти операции также рекомендуется использовать при использовании выделенных ресурсов, поскольку они часто сокращают время выполнения запроса.
Взимается ли плата за неудачные запросы в Athena?
При оплате за каждый запрос плата за невыполненные запросы не взимается.
Взимается ли плата за отмененные запросы в Athena?
Да. Если вы отмените запрос, будет удержана плата за количество данных, обработанных сервисом до момента отмены запроса.
Взимаются ли какие-то дополнительные платежи за пользование сервисом Athena?
Athena запрашивает данные непосредственно из хранилища S3, поэтому исходные данные оплачиваются по ставкам S3. Когда сервис Athena выполняет запрос, его результаты размещаются в выбранной вами корзине S3. За такие наборы результатов взимается плата согласно стандартным ставкам S3. Для управления объемом сохранения данных рекомендуется проводить мониторинг этих корзин и использовать политики жизненного цикла.
Будет ли взиматься плата за использование каталога данных?
Да. За использование каталога данных взимается отдельная плата. Чтобы подробнее узнать о ценах на каталог данных, ознакомьтесь с информацией на странице цены на AWS Glue.
Amazon Athena для Apache Spark
Что такое Amazon Athena для Apache Spark?
Athena поддерживает платформу Apache Spark, позволяя аналитикам данных и инженерам по обработке данных пользоваться интерактивным, полностью управляемым интерфейсом Athena. Apache Spark – популярная распределенная система обработки данных с открытым исходным кодом, усовершенствованная для быстрого анализа больших объемов данных любого размера и предлагающая доступ к широкой системе библиотек с открытым исходным кодом. Теперь в Spark можно разрабатывать приложения с помощью функций упрощенного блокнота через консоль или API сервиса Athena, используя такие экспрессивные языки, как Python. Можно отправлять запросы к данным из различных источников, объединять разные расчеты и визуализировать результаты их анализа. При использовании интерактивных приложений Spark вы тратите меньше времени и получаете более высокую продуктивность, ведь для запуска приложений сервису Athena требуется менее секунды. Клиенты получают упрощенный и специализированный опыт использования Spark, позволяя сводить к минимуму работу, необходимую для обновления версий, настройку производительности и интеграцию с другими сервисами AWS.
Зачем использовать Athena для Apache Spark?
Используйте Athena для Apache Spark, если вам нужна интерактивная и полностью управляемая аналитика и тесная интеграция с сервисами AWS. Теперь Spark можно использовать для анализа данных в Athena, с помощью таких знакомых и экспрессивных языков, как Python, и расширяющейся среды пакетов Spark. Кроме того, теперь приложения Spark можно создавать через API Athena или в упрощенных блокнотах в консоли Athena, а также запускать их менее чем за секунду без необходимости устанавливать и настраивать базовую инфраструктуру. Подобно возможностям запросов SQL в Athena сервис Athena предлагает полностью управляемое использование Spark и автоматически выполняет настройку производительности, настройку машин и установку исправлений ПО, так что нет нужды волноваться об актуальных обновлениях версий. Сервис Athena также тесно интегрирован с другими сервисами аналитики в системе AWS, такими как каталог данных. Таким образом, можно создавать приложения Spark на основе содержимого озер данных хранилища S3, ссылаясь на таблицы из каталога данных.
Как начать работу с Athena для Apache Spark?
Чтобы начать работу с Athena для Apache Spark, можно создать блокнот в консоли Athena или начать сеанс с помощью Интерфейса командной строки AWS (CLI) или API Athena. Используя блокнот, можно начать создавать или отключать приложения Spark с помощью языка Python. Кроме того, сервис Athena интегрирован с каталогом данных, так что можно работать с любыми источниками данных, указанных в каталоге, включая содержимое непосредственно озер данных хранилища S3. Теперь с помощью блокнотов можно отправлять запросы к данным из различных источников, объединять разные расчеты и визуализировать результаты их анализа. В консоли Athena можно проверять статус выполнения приложений Spark, а также просматривать журналы и историю выполнения.
На какой версии Spark основан сервис Athena?
В основе сервиса Athena для Apache Spark лежит стабильный выпуск Spark 3.2. Как полностью управляемый движок, Athena предоставляет доступ к специальной сборке Spark и автоматически обновляет большинство версий Spark обеспечивая совместимость изменений без необходимости вашего участия.
Какова цена Athena для Apache Spark?
Вы платите только за время работы приложения Apache Spark. Плата начисляется на основе почасового тарифа с учетом количества блоков обработки данных (DPU), используемых для работы приложения Apache Spark. Один блок обработки данных (DPU) содержит 4 виртуальных ЦП и 16 ГБ памяти. Счет будет выставляться с шагом в 1 секунду, с округлением до ближайшей минуты.
Когда вы начинаете сеанс Spark либо путем запуска блокнота на консоли Athena, либо с помощью API Athena, для вашего приложения выделяются два узла: узел блокнота, который будет действовать как сервер для пользовательского интерфейса блокнота, и узел драйвера Spark, который координирует это приложение Spark и взаимодействует со всеми рабочими узлами Spark. Athena будет взимать плату за драйверные и рабочие узлы в течение всего сеанса. Amazon Athena предоставляет блокноты на консоли в качестве пользовательского интерфейса для создания, отправки и выполнения приложений Apache Spark и предлагает их вам без дополнительной платы. Athena не взимает плату за узлы ноутбука, используемые во время сеанса Spark.
Сравнение Athena с другими сервисами обработки больших данных
Чем отличаются сервисы Athena, Amazon EMR и Amazon Redshift?
Сервисы запросов, подобные Athena, хранилища данных, такие как Amazon Redshift, и среды для комплексной обработки данных, аналогичные Amazon EMR, призваны решать различные задачи в разных примерах использования. Вам нужно просто выбрать подходящий инструмент для работы. Amazon Redshift обеспечивает высочайшую скорость выполнения запросов для корпоративной отчетности и бизнес-аналитики, в том числе благодаря сложным запросам SQL с многочисленными объединениями и подзапросами. Amazon EMR упрощает процесс и снижает его стоимость для высокораспределенных сред обработки, таких как Apache Hadoop, Spark и Presto, по сравнению с развертыванием в локальной среде. Amazon EMR отличается высокой гибкостью, позволяя выполнять пользовательские приложения и код, а также задавать особые параметры для вычислений, памяти, хранилища и приложений с целью повышения аналитических требований. Сервис Athena – это упрощенный способ выполнения интерактивных запросов, обращенных к данным в хранилище S3. Он не требует настройки или управления серверами.
Какова поддержка SQL Athena по сравнению с Redshift и как мне выбрать между двумя сервисами?
Сервис Amazon Athena и бессерверный сервис Amazon Redshift решают разные задачи и предназначены для разных сценариев, хотя являются бессерверными и подходят для пользователей SQL.
Благодаря архитектуре массово-параллельной обработки (MPP), которая отделяет ресурсы хранилища от вычислительных ресурсов, и возможностям автоматической оптимизации на основе машинного обучения, хранилище данных, такое как Amazon Redshift, независимо от того, является ли оно серверным или выделенным, – это отличный выбор для клиентов, которым нужно наилучшее соотношение цены и производительности в любых масштабах для комплексных аналитических рабочих нагрузок, в том числе для бизнес-аналитики. Redshift лучше всего подходит для масштабной аналитики и работы с массивными, структурированными и полуструктурированными массивами данных. Это обеспечивает высочайшую скорость выполнения запросов для корпоративной отчетности и бизнес-аналитики, в том числе благодаря сложноорганизованным запросам SQL с многочисленными объединениями и подзапросами. Redshift предлагает глубокую интеграцию с базами данных, аналитикой и сервисами машинного обучения AWS, что позволяет клиентам получать доступ к данным на месте или легко вводить или перемещать данные в хранилище для высокопроизводительной аналитики с помощью извлечения, преобразования и загрузки (ETL) и методов без кода. Благодаря возможностям федеративных запросов, Amazon Redshift Spectrum, интеграции с Amazon Aurora, обмену данными AWS, сервисам потоковых данных и другим, Redshift позволяет использовать данные из различных источников, объединять их с данными в хранилище и проводить на их основе аналитику и машинное обучение. Redshift предлагает как предоставляемые, так и бессерверные варианты, позволяющие легко начать работу с аналитикой без управления инфраструктурой.
Athena хорошо подходит для интерактивной аналитики и исследования данных в Amazon Simple Storage Service (S3) данных или в любом другом источнике данных с использованием расширяемой сети коннекторов (включает в себя более 30 готовых коннекторов для приложений и локальных или других облачных аналитических систем) с легким в использовании синтаксом SQL. Сервис Amazon Athena создан на основе движков и платформ с открытым исходным кодом, таких как Spark, Presto и Apache Iceberg, что дает клиентам гибкость, так как они могут использовать либо Python, либо SQL, либо работать над открытыми форматами данных. Если клиентам требуется интерактивная аналитика на основе платформ и форматов данных с открытым исходным кодом, то Amazon Athena – это отличная стартовая точка. Это полностью бессерверная система, что означает отсутствие инфраструктуры для управления или настройки. Открытость Athena повышает переносимость данных, позволяя нашим клиентам перемещать данные между различными приложениями, программами и даже поставщиками облачных услуг. Недавно был принят новый подход непрерывной интеграции к управлению программным обеспечением с открытым исходным кодом, который позволит постоянно интегрировать новейшие функции из проектов Trino, PrestoDB и Apache Iceberg.
В каких случаях рекомендуется использовать Amazon EMR вместо Athena?
Возможности сервиса Amazon EMR гораздо шире, чем выполнение обычных SQL‑запросов. Эта платформа позволяет выполнять различные задачи по горизонтальному масштабированию данных для приложений в таких областях применения, как машинное обучение, анализ графов, а также преобразование и потоковая передача данных. Кроме того, Amazon EMR можно использовать для решения практически любых задач, которые можно представить в виде кода. Amazon EMR будет полезен, если вы применяете пользовательский код для обработки и анализа крупных наборов данных с помощью новейших сред обработки больших данных, таких как Apache HBase, Spark, Hadoop или Presto. Amazon EMR гарантирует полный контроль над конфигурированием кластеров, а также над установленным на них программным обеспечением.
Сервис Athena стоит использовать в том случае, если вы хотите выполнять интерактивные запросы SQL, обращенные к данным в хранилище S3, не управляя при этом инфраструктурой или кластерами.
Как поддержка Spark в Athena сопоставима с бессерверной конфигурацией Amazon EMR для Spark? Когда клиент может использовать Spark в Athena вместо бессерверной конфигурации Amazon EMR?
Бессерверная конфигурация Amazon EMR – это самый простой способ запуска приложений Spark и Hive в облаке и единственное в отрасли бессерверное решение Hive. С помощью бессерверной конфигурации EMR вы можете устранить операционные издержки, связанные с настройкой, определением прав, обеспечением безопасности, исправлением и управлением кластерами, и платить только за те ресурсы, которые реально используются вашими приложениями. Благодаря оптимизированному по производительности времени выполнения EMR вы получаете в два раза более высокую производительность по сравнению со стандартным открытым исходным кодом, поэтому ваши приложения работают быстрее и снижают затраты на вычисления. Оптимизированная по производительности среда выполнения EMR полностью совместима по API со стандартным открытым исходным кодом, поэтому вам не придется переписывать свои приложения, чтобы запустить их на EMR. Для их включения вам также не потребуется глубокий опыт работы со Spark, поскольку они включены по умолчанию. EMR предоставляет возможность запускать приложения на кластерах EMR, кластерах EKS или бессерверной конфигурации Amazon EMR. Кластеры EMR подойдут клиентам, которым нужен максимальный и гибкий контроль над своими приложениями. С помощью кластеров EMR клиенты могут настраивать Amazon Linux Image AMI, инстансы EC2 и их типы, настраивать и расширять платформы с открытым исходным кодом, а также устанавливать дополнительное индивидуальное ПО в инстансах кластеров EMR для EKS – подходящий вариант для тех клиентов, которым требуется стандартизировать EKS для управления кластерами в приложениях или использования различных версий платформ с открытым исходным кодом в одном и том же кластере. EMR Serverless подходит для тех клиентов, которые желают избежать необходимости управлять кластерами и просто запускать приложения с помощью платформ с открытым исходным кодом.
Если клиенты хотят получить мгновенный интерактивный опыт, похожий на интерактивный опыт запросов на основе SQL с Amazon Athena, то они могут выбрать Amazon Athena для Apache Spark. Клиентский опыт в Athena оптимизирован для интерактивных приложений с коротким временем выполнения и требующих субсекундного времени запуска. Amazon Athena выполняет настройку производительности, конфигурацию, исправление программного обеспечения и обновления автоматически, без участия пользователя. Для аналитиков данных и разработчиков, владеющих языком программирования PySpark и заинтересованных в исследовании данных и немедленном выполнении интерактивной аналитики, Amazon Athena для Apache Spark предлагает простой в использовании опыт.
Можно ли использовать сервис Athena для запроса данных, которые обрабатываются в Amazon EMR?
Да, Athena поддерживает множество тех же форматов данных, что и Amazon EMR. Каталог данных сервиса Athena совместим с метахранилищем Hive. Если вы используете сервис Amazon EMR и у вас уже есть метахранилище Hive, можно выполнить операторы DDL в Athena, а затем начать работу с запросами, обращенными к своим данным, – без какого-либо воздействия на задания Amazon EMR.
Как федеративные запросы в Athena SQL связаны с другими сервисами AWS?
Федеративные запросы в Athena предлагают универсальный способ выполнения запросов SQL по разным источникам данных, в том числе с реляционными и нереляционными базами данных или в любом пользовательском формате.
Как машинное обучение в Athena связано с другими сервисами AWS?
Запросы SQL в Athena могут обращаться к моделям машинного обучения, развернутым в Amazon SageMaker. Вы можете указать расположение S3, в котором нужно сохранять результаты этих запросов SQL в Athena.