Общие вопросы

Вопрос. Что такое Amazon Athena?
Amazon Athena – это интерактивный сервис запросов, позволяющий легко анализировать данные в хранилище Amazon S3 с помощью стандартных средств SQL. Athena – бессерверный сервис, где нет инфраструктуры, требующей настройки или управления, поэтому можно сразу же приступить к анализу данных. Не нужно даже загружать данные в Athena, поскольку сервис работает непосредственно с данными, хранимыми в S3. Чтобы начать, просто войдите в Консоль управления Athena, задайте свою схему и приступайте к выполнению запросов. Сервис Amazon Athena использует Presto с полной поддержкой стандартных запросов SQL и работает с различными стандартными форматами данных, включая CSV, JSON, ORC и Apache Parquet и Avro. Amazon Athena идеально подходит для быстрой и спонтанной отправки запросов, легко интегрируется с Amazon QuickSight, обеспечивая удобную визуализацию, а также может выполнять сложные задачи анализа с использованием масштабных операций объединения, оконных функций и массивов.
 
Вопрос. Для чего предназначен сервис Amazon Athena?
Amazon Athena помогает анализировать данные, хранящиеся в Amazon S3. Athena можно использовать для выполнения спонтанных запросов с помощью ANSI SQL – без необходимости объединять данные или загружать их в Athena. Amazon Athena может обрабатывать неструктурированные, полуструктурированные и структурированные пакеты данных. В их число входят CSV, JSON, Avro или столбцовые форматы данных, такие как Apache Parquet и Apache ORC. Сервис Amazon Athena интегрирован с Amazon QuickSight, что обеспечивает удобную визуализацию. Amazon Athena также можно использовать для формирования отчетов либо просмотра данных с применением инструментов бизнес-аналитики или SQL-клиентов, подключенных с помощью драйвера ODBC или JDBC.
 
Вопрос. Как начать работу с Amazon Athena?
Чтобы начать работу с Amazon Athena, просто войдите в Консоль управления AWS для Athena и создайте схему, указав в консоли операторы DDL либо воспользовавшись мастером создания таблиц. После этого вы сможете начать работу с запросами данных с помощью встроенного редактора запросов. Athena запрашивает данные непосредственно из хранилища Amazon S3, поэтому загружать их не требуется.
 
Вопрос. Как получить доступ к Amazon Athena?
Доступ к Amazon Athena можно получить с помощью Консоли управления AWS, вызовов API, а также с помощью драйвера ODBC или JDBC. Драйверы ODBC и JDBC позволяют выполнять запросы, добавлять таблицы или разделы программными средствами.
 
Вопрос. Какие лимиты предусмотрены для сервиса Amazon Athena?
Подробнее о лимитах сервиса см. здесь.
 
Вопрос. На основе какой технологии работает сервис Amazon Athena?
Сервис Amazon Athena использует Presto с полной поддержкой стандартного языка SQL и работает с различными стандартными форматами данных, включая CSV, JSON, ORC, Avro и Parquet. Athena может выполнять сложные задачи анализа с использованием масштабных операций объединения, оконных функций и массивов. В качестве основного хранилища данных Amazon Athena использует Amazon S3, что обеспечивает высокую доступность и надежность за счет избыточного хранения данных на нескольких объектах и нескольких устройствах в рамках каждого объекта. Подробнее о Presto см. здесь.
 
Вопрос. Как Amazon Athena хранит определения таблиц и схемы?
Для хранения информации и схем баз данных и таблиц, хранящихся в Amazon S3, сервис Amazon Athena использует управляемый каталог данных. В тех регионах, где доступен сервис AWS Glue, можно настроить Amazon Athena на использование каталогов данных AWS Glue. В тех регионах, где сервис AWS Glue недоступен, Athena использует внутренний каталог.
Этот каталог можно изменить с помощью операторов DDL или через Консоль управления AWS. Все задаваемые схемы будут автоматически сохраняться до тех пор, пока вы их явно не удалите. В сервисе Athena применяется технология schema-on-read (схема при чтении), в рамках которой определения таблиц применяются к данным в хранилище S3 в процессе выполнения запросов. Выполнять загрузку или преобразование данных при этом не требуется. Определения таблиц и схемы можно удалять – это не окажет влияния на основные данные, хранящиеся в Amazon S3.
 
Вопрос. Почему рекомендуется перейти к использованию каталога данных AWS Glue?
AWS Glue – это полностью управляемый сервис извлечения, преобразования и загрузки данных (ETL). Glue состоит из трех компонентов: 1) сканер, который автоматически обрабатывает источники данных, определяет их формат и выбирает схему для этих данных; 2) полностью управляемый сервис ETL, с помощью которого можно преобразовывать данные и перемещать их между источниками; 3) каталог данных, в котором хранятся метаданные о базах и таблицах, находящихся либо в S3, либо в другом хранилище, поддерживающем стандарт ODBC или JDBC. Чтобы использовать все преимущества сервиса Glue, рекомендуется перейти с использования внутреннего каталога данных Athena к использованию каталога данных Glue.
Ниже перечислены преимущества такого перехода.
  1. Единый репозиторий метаданных. AWS Glue можно интегрировать с различными сервисами AWS. AWS Glue работает с данными, сохраненными в Amazon Aurora, Amazon RDS MySQL, Amazon RDS PostgreSQL, Amazon Redshift, Amazon S3, а также с базами данных MySQL и PostgreSQL в облаке Virtual Private Cloud (Amazon VPC), запущенном в Amazon EC2. AWS Glue предлагает встроенную интеграцию с Amazon Athena, Amazon EMR, Amazon Redshift Spectrum и любыми приложениями, совместимыми с Apache Hive Metastore.
  2. Автоматическое распознавание схем и разделов. AWS Glue автоматически сканирует источники данных, определяет формат данных, предлагает схему для них и варианты преобразования. Сканеры сервиса помогают автоматизировать создание таблиц и загрузку разделов.
  3. Простое создание конвейеров. Механизм ETL в AWS Glue создает код на языке Python, который можно править на свое усмотрение и использовать повторно, независимо от сервиса. Этот код можно редактировать в привычной среде IDE или любом редакторе, а также публиковать на GitHub для доступа других пользователей. После создания задания ETL можно запланировать его запуск в полностью управляемой, масштабируемой инфраструктуре Spark сервиса AWS Glue. AWS Glue является бессерверным сервисом, поэтому он управляет выделением, настройкой и масштабированием ресурсов, необходимых для запуска заданий ETL, и позволяет надежно интегрировать ETL в рабочий процесс.
Дополнительную информацию о каталоге данных Glue см. здесь.
 
Вопрос: Есть ли пошаговое руководство по переходу на каталог данных AWS?
Да. Пошаговое руководство можно найти здесь.
 
Вопрос. В каких регионах доступен сервис Amazon Athena?
Дополнительную информацию о доступности сервиса Amazon Athena по регионам см. в таблице Продукты и сервисы по регионам.
 

Возможности в режиме ознакомления

Вопрос: Какие возможности Athena доступны в режиме ознакомления?
Теперь в запросе SQL Athena можно запускать модели машинного обучения SageMaker для получения логических выводов. Благодаря возможности использовать модели машинного обучения в запросах SQL теперь будет легко написать запрос для выполнения сложных задач, таких как обнаружение отклонений, анализ категорий клиентов и прогнозирование продаж. Подробнее.
 
Федеративные запросы теперь позволяют одним запросом анализировать данные, сохраненные в нескольких разнообразных хранилищах данных, размещенных локально и (или) в AWS. Athena поддерживает федеративные запросы по источникам данных с реляционными и нереляционными базами данных, объектами и любыми пользовательскими форматами. Вы также можете создать собственную связующую библиотеку для любого источника данных, используя Query Federation SDK. Подробнее.
 
Пользовательские функции (UDF) позволяют создавать собственные функции на языке Java и вызывать их из запроса Athena SQL. Подробнее.
 
Вы можете подключить Athena к внешнему Apache Hive Metastore. Если вы храните набор данных в Amazon S3, то в качестве хранилища метаданных можно использовать не только Каталог данных AWS Glue, но и Hive Metastore, подключив к нему Athena через связующую библиотеку источника данных на основе AWS Lambda. Подробнее.
 
Вопрос: Как проверить работу функций в режиме ознакомления?
Все запросы Athena, отправленные из рабочей группы AmazonAthenaPreviewFunctionality, считаются тестовыми запросами в режиме ознакомления. Вы можете создать и настроить рабочую группу AmazonAthenaPreviewFunctionality с помощью интерфейсов Athena API или Athena UX. Инструкции по созданию рабочей группы вы можете найти здесь.
 
Следующие примечания важны для использования функций в режиме ознакомления. Не изменяйте имя рабочей группы. Вы можете изменять любые другие свойства, например включение метрик CloudWatch и (или) Requester Pays. Для отправки тестовых запросов можно использовать консоль Athena, драйверы JDBC/ODBC или интерфейсы API. Обязательно указывайте рабочую группу AmazonAthenaPreviewFunctionality при отправке любых тестовых запросов. Функции в режиме ознакомления предоставляются только в регионе us-east-1. Если вы используете Athena в любом другом регионе, отправка запросов из рабочей группы AmazonAthenaPreviewFunctionality завершится сбоем. Вызовы, пересекающие границы регионов AWS, не поддерживаются для функций в режиме ознакомления.
 
Вопрос: Безопасно ли использовать функции Athena в режиме ознакомления в рабочем аккаунте?
Мы рекомендуем не включать рабочие нагрузки производственного цикла в рабочую группу AmazonAthenaPreviewFunctionality, предназначенную для ознакомления. Производительность запросов в рабочей группе для ознакомления может существенно отличаться от характеристик других рабочих групп в том же аккаунте. Кроме того, в рабочую группу для ознакомления мы регулярно добавляем новые функции и исправления, для которых не гарантируется обратная совместимость.
 
Вопрос: Как правильно отправлять запросы?
Для отправки запросов вы можете использовать консоль Athena, Athena API или драйвер Athena JDBC для режима ознакомления в сочетании с любыми свободно распространяемыми инструментами запросов и визуализации, например SQL WorkBench.
 
Вопрос: Как отправить отзыв о функции в режиме ознакомления?
Ваши мнения очень важны для нас. Любые отзывы вы можете направить по электронной почте на адрес athena-feedback@amazon.com.
 
Вопрос: Взимается ли плата за использование функций в режиме ознакомления?
Во время ознакомительного режима плата за сканирование данных из федеративных источников не начисляется. При этом сканирование данных из Amazon S3 подлежит оплате по стандартным тарифам сервиса Athena. Дополнительно начисляются платежи по стандартным тарифам сервисов AWS, используемых вместе с Athena, например Amazon S3, AWS Lambda, AWS Glue, Amazon SageMaker и AWS Serverless Application Repository. К примеру, начисляется стандартная плата за хранение данных в S3, выполнение запросов и передачу данных между регионами. По умолчанию результаты выполнения запросов сохраняются в выбранной корзине S3; за них также начисляется плата по стандартному тарифу Amazon S3. При использовании AWS Lambda плата взимается на основе количества запросов к функциям и их продолжительности, т. е. времени, в течение которого исполняется код.
 
Вопрос: Что происходит, когда завершает ознакомительный период?
Все запросы, отправленные из рабочей группы AmazonAthenaPreviewFunctionality, будут завершаться сбоем Вы можете свободно отправлять запросы из других рабочих групп. Если рабочая группа не указана, запрос по умолчанию исполняется из вашей основной рабочей группы. Обратите внимание, что режим ознакомления для любой функции может завершиться в любой момент.

Сравнение Athena с другими сервисами обработки больших данных

Вопрос. Чем отличаются сервисы Amazon Athena, Amazon EMR и Amazon Redshift?
Сервисы запросов, подобные Amazon Athena, хранилища данных, такие как Amazon Redshift, и среды для комплексной обработки данных, аналогичные Amazon EMR, призваны решать различные задачи в разных примерах использования. Остается просто выбрать подходящий инструмент для работы. Amazon Redshift обеспечивает высочайшую скорость выполнения запросов для корпоративной отчетности и бизнес-аналитики, в том числе благодаря сложноорганизованным запросам SQL с многочисленными объединениями и подзапросами. Amazon EMR упрощает эксплуатацию и снижает ее стоимость для высокораспределенных сред обработки, таких как Hadoop, Spark и Presto, по сравнению с развертыванием в локальной среде. Amazon EMR отличается высокой гибкостью, позволяя выполнять пользовательские приложения и код, а также задавать особые параметры для вычислений, памяти, хранилища и приложений с целью оптимизации аналитических требований. Сервис Amazon Athena – это самый простой способ выполнения спонтанных запросов, обращенных к данным в хранилище S3. Он не требует настройки или управления серверами.
 
Вопрос. Когда стоит использовать полнофункциональное корпоративное хранилище данных, подобное Amazon Redshift, а когда – сервис запросов, такой как Amazon Athena?
Хранилище данных, такое как Amazon Redshift, идеально подходит в тех случаях, когда данные из множества различных источников – например, систем управления запасами, финансовых систем и систем розничной торговли – нужно привести к единому формату и хранить в течение долгого времени для создания комплексных бизнес-отчетов на основании сведений за прошлые периоды.
 
Хранилища данных собирают данные по компании и выступают в качестве «единого источника достоверной информации» для составления отчетов и проведения анализа. Они извлекают данные из многочисленных источников, форматируют, упорядочивают и хранят их, а также поддерживают комплексные высокоскоростные запросы для формирования бизнес-отчетности. Движок запросов в сервисе Amazon Redshift специально оптимизирован для работы в рамках подобного примера использования, когда необходимо выполнять комплексные запросы, объединяющие множество очень крупных таблиц баз данных. TPC-DS – это стандартный инструмент сравнительного тестирования, предназначенный для воспроизведения подобного примера использования. Redshift способен выполнять такие запросы в 20 раз быстрее по сравнению с сервисами запросов, оптимизированными для работы с неструктурированными данными. В тех случаях, когда необходимо выполнить запросы к высокоструктурированным данным с большим количеством объединений в многочисленных очень крупных таблицах, следует использовать сервис Amazon Redshift.
 
В свою очередь, сервисы запросов, подобные Amazon Athena, позволяют легко выполнять интерактивные запросы к данным непосредственно в Amazon S3. При этом не нужно беспокоиться о форматировании данных или управлении инфраструктурой. Например, сервис Athena отлично подойдет, если вам необходимо сделать быстрый запрос к журналам веб-сервера для устранения проблем, связанных с производительностью сайта. Сервисы запросов позволяют оперативно приступить к работе. Вам нужно просто задать таблицу для данных и начать работу с запросами с помощью стандартного языка SQL.
 
Можно использовать сразу оба сервиса. Если перед загрузкой в Amazon Redshift вы размещаете данные в хранилище Amazon S3, то эти данные также смогут регистрироваться и запрашиваться сервисом Amazon Athena.
 
Вопрос. В каких случаях рекомендуется использовать Amazon EMR вместо Amazon Athena?
Возможности сервиса Amazon EMR гораздо шире, чем выполнение обычных SQL‑запросов. Он позволяет осуществлять широкий спектр операций по обработке масштабных данных в таких областях применения, как машинное обучение, анализ графов, преобразование и потоковая передача данных, а также решать практически любые задачи, связанные с написанием кода. Amazon EMR будет полезен, если вы применяете пользовательский код для обработки и анализа особо крупных наборов данных с помощью новейших сред обработки больших данных, таких как Spark, Hadoop, Presto или Hbase. Amazon EMR гарантирует полный контроль над конфигурированием кластеров, а также над установленным на них программным обеспечением.
 
Amazon Athena стоит использовать в том случае, если вы хотите выполнять интерактивные спонтанные запросы SQL, обращенные к данным в хранилище Amazon S3, не управляя при этом инфраструктурой или кластерами.
 
Вопрос. Можно ли использовать сервис Amazon Athena для запроса данных, которые обрабатываются в Amazon EMR?
Да, Amazon Athena поддерживает множество тех же форматов данных, что и Amazon EMR. Каталог данных Athena совместим с метахранилищем Hive. Если вы используете сервис EMR и у вас уже есть метахранилище Hive, вы можете просто выполнить операторы DDL в Amazon Athena, а затем начать работу с запросами, обращенными к своим данным, – без какого-либо воздействия на задания Amazon EMR.
 
Вопрос: Как федеративные запросы в Athena связаны с другими сервисами AWS? [режим ознакомления]
Федеративные запросы в Athena позволяют вам выполнять запросы SQL по разным источникам данных, в том числе с реляционными и нереляционными базами данных или в любом пользовательском формате. Вы получаете универсальный метод для обращения к разным источникам данных из запросов SQL.
 
Вопрос: Как машинное обучение в Athena связано с другими сервисами AWS? [режим ознакомления]
Запросы SQL в Athena могут обращаться к моделям машинного обучения, развернутым в Amazon SageMaker. Вы можете указать расположение Amazon S3, в котором нужно сохранять результаты этих запросов Athena SQL.
 
 

Создание таблиц, форматы данных и разделы

Вопрос. Как создаются таблицы и схемы для данных в хранилище Amazon S3?
Для определения таблиц сервис Amazon Athena использует операторы DDL Apache Hive. Операторы DDL можно выполнять в консоли Athena, через API, с помощью драйвера ODBC или JDBC, а также мастера создания таблиц Athena. При использовании каталога данных AWS Glue в Athena можно также использовать сканеры Glue для определения схем и разделов. Сканер AWS Glue подключается к хранилищу данных, перемещается по приоритезированному списку классификаторов, чтобы определить схему и другие статистические данные, а затем сохраняет полученные метаданные в каталоге данных Glue. Сканеры можно запускать периодически, чтобы определять появление новых данных или изменения в существующих данных, включая изменения в определениях таблиц. Сканеры AWS Glue добавляют новые таблицы, новые разделы к существующим таблицам и новые версии определений таблиц. Сканеры можно настраивать так, чтобы они обрабатывали пользовательские типы файлов.
 
Когда в Amazon Athena создается новая схема таблицы, она сохраняется в каталоге данных и используется при выполнении запросов, но не изменяет данные, хранящиеся в S3. В сервисе Athena применяется подход, известный как schema-on-read (схема при чтении), который позволяет проецировать схему на данные в момент выполнения запроса. Это устраняет необходимость в загрузке или преобразовании данных. Подробнее о создании таблиц.
 
Вопрос. Какие форматы данных поддерживает сервис Amazon Athena?
Amazon Athena поддерживает широкий спектр форматов, таких как CSV, TSV, JSON или текстовые файлы, а также столбцовые форматы данных с открытым исходным кодом – например, Apache ORC и Apache Parquet. Кроме того, Athena поддерживает сжатые данные в форматах Snappy, Zlib, LZO и GZIP. Сжатие, разбиение на разделы и применение столбцовых форматов данных позволяют повысить производительность и сократить затраты.
 
Вопрос. Какие типы данных поддерживает сервис Amazon Athena?
Amazon Athena поддерживает как простые типы данных, включая INTEGER, DOUBLE и VARCHAR, так и комплексные, подобные MAPS, ARRAY и STRUCT.  
 
Вопрос. Можно ли запускать в сервисе Athena запросы Hive?
Amazon Athena использует Hive только для операторов DDL (Data Definition Language) и для создания/изменения и удаления таблиц и/или разделов. Нажмите здесь, чтобы просмотреть полный список поддерживаемых операторов. При запуске запросов SQL, обращенных к Amazon S3, Athena использует Presto. Для запроса данных в Amazon S3 можно выполнить ANSI-совместимые операторы SQL SELECT.
 
Вопрос. Что такое SerDe?
SerDe, сокращение от Serializer/Deserializer (параллельно-последовательный/последовательно-параллельный преобразователь), – это библиотеки, которые сообщают Hive, как следует интерпретировать форматы данных. Операторы DLL Hive требуют задать SerDe, чтобы система знала, как интерпретировать указанные для нее данные. Amazon Athena использует SerDe для интерпретации данных, считываемых из хранилища Amazon S3. Концепция SerDe, которая используется в Athena, аналогична концепции в Hive. Amazon Athena поддерживает следующие SerDe:
  1. Журналы веб-сервера Apache: org.apache.hadoop.hive.serde2.RegexSerDe
  2. CSV: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  3. TSV: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  4. Пользовательские разделители: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  5. Parquet: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
  6. Orc: org.apache.hadoop.hive.ql.io.orc.OrcSerde
  7. JSON: org.apache.hive.hcatalog.data.JsonSerDe ИЛИ org.openx.data.jsonserde.JsonSerDe
 
Вопрос. Можно ли добавлять собственные SerDe в Amazon Athena?
В настоящее время добавление собственных SerDe в Amazon Athena не предусмотрено. Мы высоко ценим обратную связь, которую вы предоставляете. Если вы хотите добавить какие-либо SerDe в сервис, обратитесь к команде разработчиков Athena по адресу: Athena-feedback@amazon.com
 
Вопрос. У меня есть файлы Parquet/ORC, созданные с помощью Spark/Hive. Можно ли направлять к ним запросы через Athena?
Да, файлы Parquet и ORC, созданные в Spark, можно считывать с помощью сервиса Athena.
 
Вопрос. Ко мне поступают данные из сервиса Kinesis Firehose. Как направить к ним запрос с помощью Athena?
Если данные Kinesis Firehose хранятся в Amazon S3, вы можете направлять к ним запросы с помощью Amazon Athena. Просто создайте схему для своих данных в Athena и начните работу с запросами. В целях оптимизации производительности рекомендуется упорядочить данные по разделам. Чтобы добавить разделы, созданные с помощью Kinesis Firehose, можно воспользоваться операторами DDL ALTER TABLE. Узнайте подробнее о разделах.
 
Вопрос. Поддерживает ли Amazon Athena разбиение данных на разделы?
Да. Amazon Athena позволяет разбивать данные на разделы в любом столбце. Разделы дают возможность ограничить объем данных, обрабатываемых при каждом запросе, что приводит к сокращению затрат и повышению производительности. Указать схему разбиения на разделы можно с помощью условия PARTITIONED BY в операторе CREATE TABLE. Узнайте подробнее о разбиении данных на разделы.
 
Вопрос. Как добавить новые данные в существующую таблицу в Amazon Athena?
Если данные разбиты на разделы, то, после того как новые данные станут доступны в Amazon S3, нужно будет выполнить запрос метаданных (ALTER TABLE ADD PARTITION) – это позволит добавить раздел в Athena. Если данные не разбиты на разделы, то при добавлении новых данных (или файлов) в существующий префикс они будут автоматически добавлены в Athena. Узнайте подробнее о разбиении данных на разделы.
 
Вопрос. У меня в Amazon S3 уже хранятся большие объемы данных журналов. Можно ли использовать Amazon Athena для выполнения запроса к ним?
Да, Amazon Athena позволяет легко выполнять стандартные запросы SQL, обращенные к существующим данным журнала. Athena запрашивает данные непосредственно из Amazon S3, поэтому перемещать или загружать их не требуется. Просто задайте собственную схему с помощью операторов DDL и сразу же начинайте работу с запросами к своим данным.

Выполнение запросов и форматы данных

Вопрос. Какие типы запросов поддерживает Amazon Athena?
Amazon Athena поддерживает запросы ANSI SQL. Amazon Athena использует Presto, работающий в памяти распределенный движок запросов SQL с открытым исходным кодом, и может выполнять сложные задачи анализа с использованием масштабных операций объединения, оконных функций и массивов.

Вопрос. Можно ли использовать Amazon QuickSight с сервисом Amazon Athena?
Да. Amazon Athena интегрируется с Amazon QuickSight, позволяя легко визуализировать данные, хранящиеся в Amazon S3.

Вопрос. Поддерживает ли Athena другие инструменты бизнес-аналитики и SQL-клиенты?
Да. Amazon Athena поставляется с драйверами ODBC и JDBC, которые можно использовать с другими инструментами бизнес-аналитики и SQL-клиентами. Узнайте больше об использовании драйверов ODBC и JDBC с Athena.

Вопрос: Как получить доступ к функциям, которые поддерживает сервис Amazon Athena?
Нажмите здесь, чтобы больше узнать о функциях, поддерживаемых Amazon Athena.
 
Вопрос. Как повысить производительность запроса?
Производительность запроса можно повысить с помощью сжатия, разбиения на разделы или преобразования данных в столбцовые форматы. Amazon Athena поддерживает столбцовые форматы данных с открытым исходным кодом, такие как Apache Parquet и Apache ORC. Преобразование данных в сжатый столбцовый формат позволяет сократить затраты и повысить производительность запросов, поскольку при выполнении запроса Athena будет обрабатывать меньше данных из S3.
 
Вопрос: Поддерживает ли Athena пользовательские функции (UDF)? [режим ознакомления]
Amazon Athena теперь поддерживает пользовательские функции (UDF), что позволяет создавать произвольные скалярные функции и вызывать их внутри запросов SQL. Athena поддерживает и встроенные функции, но UDF помогут вам выполнять специализированные задачи обработки данных, такие как сжатие или распаковка данных, обработка конфиденциальных данных или применение собственных алгоритмов дешифрования.

Query Federation SDK в Athena помогает создавать пользовательские функции на Java. Когда в запросе SQL, переданном в Athena, встречается пользовательская функция, она вызывается и выполняется в среде AWS Lambda. Пользовательские функции можно включать в условия SELECT и FILTER любого запроса SQL. В одном запросе можно вызывать несколько пользовательских функций.
 
Вопрос: Какая процедура используется для создания пользовательских функций? [режим ознакомления]
Вы можете использовать Athena Query Federation SDK для создания пользовательских функций. Здесь есть несколько примеров готовых пользовательских функций. Готовую функцию можно загрузить в AWS Lambda и затем вызывать ее из запроса в Athena. Нажмите здесь, чтобы начать работу.
 
Athena вызывает пользовательскую функцию сразу для пакета строк из набора данных, чтобы оптимизировать производительность.

Федеративные запросы [режим ознакомления]

Вопрос: Зачем нужны федеративные запросы в Athena? [режим ознакомления]
Разработчики часто сочетают хранение данных в S3 с дополнительными базами данных: реляционными, с парами «ключ — значение», документов, с хранением в памяти, для поиска, на основе графов, временных рядов или реестров. Выполнение аналитических запросов по данным, распределенным на несколько разных источников данных, может требовать значительных усилий и времени. Аналитикам часто приходится изучать языки программирования и конструкции баз данных, чтобы создавать сложные конвейеры для извлечения, преобразования и копирования данных перед началом аналитической работы. Аналогичным образом, специалистам по работе с данными часто нужно извлекать данные из нескольких источников, чтобы собрать собственный набор данных для извлечения компонентов и обучения моделей. Такой процесс требует много времени и препятствует созданию платформ самостоятельной работы, на которых аналитики и специалисты по работе с данными смогли бы быстро создавать конвейеры для извлечения нужных данных из нескольких источников. Аналитики вынуждены ждать, пока инженеры-разработчики создадут для них конвейеры обработки, что повышает длительность и сложность процессов. Федеративные запросы устраняют эту причину осложнений, предоставляя простой в использовании и оплачиваемый по мере использования бессерверный сервис для выполнения запросов SQL сразу по многим разным источникам данных. Вы сможете применять уже знакомые конструкции SQL для создания запросов по нескольким источникам данных для быстрого анализа или выполнения запросов SQL по расписанию для регулярного извлечения и преобразования данных из нескольких источников данных с последующим сохранением в S3 для дальнейшего анализа.
 
Кроме того, вы сможете использовать базы данных и каталоги в корпоративном или собственном формате. Федеративные запросы Athena легко расширяются благодаря возможности создавать собственные коннекторы или применять уже разработанные сообществом для выполнения запросов SQL по любым источникам данных или пользовательским каталогам. Для некоторых источников данных уже существуют эталонные реализации с открытым исходным кодом, на основе которых можно разрабатывать новые собственные системы.
 
Вопрос: Какие сценарии использования поддерживаются для федеративных запросов Athena? [режим ознакомления]
Федеративные запросы Athena поддерживают широкий набор сценариев использования. Одним из важных примеров можно считать спонтанный анализ данных, который часто выполняется по информации из нескольких разных хранилищ данных. Для примера давайте рассмотрим компанию электронной коммерции, которая использует Amazon ElasticCache Redis для хранения активных заказов, Amazon DocumentDB или MongoDB для хранения сведений о клиентах, например адресов электронной почты и почтовых адресов, а также Amazon CloudWatch Logs (распространенный пример пользовательского хранилища данных) для данных журнала о событиях приложения обработки заказов. Допустим, вам нужно узнать, что привело к задержке при выполнении определенного заказа. С помощью простого запроса вы можете объединить данные из нескольких хранилищ и быстро выполнить их анализ.
 
Еще одним примером служат процессы извлечения, преобразования и загрузки данных из нескольких источников данных. Аналитические операции часто требуют сбора данных из нескольких источников данных для последующей публикации в хранилище данных или обработки в системах запросов Athena, Apache Spark, Apache Presto и т. п. Для такого сбора нужно создать конвейер данных, который будет по расписанию извлекать и преобразовывать данные из нескольких источников. Создание конвейеров данных часто вынуждает изучать новые языки программирования, например Python или Java, а также применять крупные распределенные системы типа Apache Spark. Для создания конвейеров аналитикам часто приходится обращаться к инженерам-разработчикам. Благодаря федеративным запросам Athena теперь каждый сможет выразить нужный конвейер в синтаксисе выражения SQL и запланировать расписание для него.
 
Третьим примером будет извлечение данных для машинного обучения: специалистам по работе с данными часто нужно извлекать данные из нескольких источников, чтобы собрать собственный набор данных для извлечения компонентов и обучения моделей. Такой процесс требует много времени и препятствует созданию платформ самостоятельной работы.
 
Вопрос: Как работают коннекторы источников данных в Athena? [режим ознакомления]
Вы можете выполнять запросы SQL по новым источникам данных, зарегистрировав эти источники в Athena. Для регистрации источника данных применяется коннектор, созданный специально для этого источника данных. Коннектор позволяет дополнить Athena возможностью запросов к новому источнику данных. Вы можете использовать коннекторы с открытым исходным кодом, предоставленные платформой AWS, создавать собственные или участвовать в развитии уже существующих, а также применять готовые варианты из сообщества или Marketplace. В зависимости от типа используемого источника данных, коннектор может управлять метаданными, определять элементы таблиц для сканирования, чтения и (или) фильтрации, а также управлять параллельной обработкой.
 
Коннекторы выполняются в формате функций AWS Lambda в аккаунте клиента. Каждый коннектор состоит из двух функций Lambda для конкретного источника данных, одна из которых работает с метаданными, а вторая извлекает записи. Вы можете развернуть функции Lambda с помощью кода из репозитория Github или применить уже развернутые функции Lambda из репозитория AWS Serverless Application Repository. Функции Lambda при развертывании предоставляют уникальное значение ARN (Amazon Resource Name). Эти значения ARN необходимо зарегистрировать в Athena. Регистрация ARN предоставляет Athena информацию о том, к какой функции Lambda нужно обращаться при исполнении запроса. После регистрации обоих ARN вы сможете выполнять запросы по зарегистрированному источнику данных. Этот процесс придется выполнить отдельно для каждого источника данных.
 
Когда Athena выполняет запрос к федеративному источнику данных, она распределяет вызовы Lambda для параллельного получения метаданных и рабочих данных. Количество параллельных потоков ограничивается лимитами параллельных операций Lambda для вашего аккаунта. Например, если для вас действует ограничение в 300 параллельных операций Lambda, Athena сможет параллельно вызывать 300 функций Lambda для считывания записей. Для двух параллельных запросов Athena сможет вызывать вдвое больше параллельных операций. Вы можете также определить собственные ограничения, чтобы контролировать расходы и пропускную способность источника данных.
 
Вопрос: Какие коннекторы существуют для федеративных запросов Athena? [режим ознакомления]
Для Athena есть готовые коннекторы с открытым исходным кодом для источников данных Apache HBase, Amazon DocumentDB, Amazon DynamoDB, Amazon CloudWatch Logs и CloudWatch Metrics. Также существует стандартный коннектор JDBC для Athena, который позволяет подключаться к любому источнику данных с поддержкой JDBC, и коннектор AWS Configuration Management Database (CMDB), который позволяет выполнять запросы по метаданным ресурсов AWS.
 
Вопрос: Как использовать Query Federation SDK? [режим ознакомления]
Query Federation SDK позволяет создавать собственные коннекторы для использования в запросах из Athena к источникам данных. Для каждого коннектора предоставляются примеры шаблонов реализации. Вы можете использовать их в качестве основы для собственных разработок. Для начала изучите нашу документацию.
 
Вопрос: Можно ли использовать возможности федеративных запросов в операциях ETL? Какой процесс для этого применяется? [режим ознакомления]
Все результаты запросов Athena сохраняются в указанном вами расположении Amazon S3. Вы можете использовать функцию федеративных запросов Athena для исполнения единых запросов SQL, которые сканируют любые нужные вам источники данных и сразу сохраняют результаты в S3. Поддерживаются все распространенные конструкции SQL, в том числе JOIN, Filter и многие другие. Кроме того, вы можете определить в Athena собственные пользовательские функции для предварительной или постобработки набора данных с результатами.
 
Вопрос: Ожидается ли поддержка SDK для других языков программирования, кроме Java? [режим ознакомления]
Сообщите нам, поддержка каких языков программирования вас интересует, электронным письмом на адрес athena-feedback@amazon.com
 
Вопрос: Какие известные ограничения существуют для Query Federation SDK? [режим ознакомления]
На момент выпуска Query Federation SDK в режиме ознакомления поддерживает только чтение данных и функции Lambda на языке Java.

Машинное обучение [режим ознакомления]

Вопрос: Какие сценарии использования поддерживает Athena для встраиваемых операций машинного обучения? [режим ознакомления]
Athena поддерживает использование машинного обучения для разных отраслей, некоторые из вариантов применения перечислены ниже. Аналитики данных о финансовых рисках могут выполнять анализ what-if и моделирование по методу Монте-Карло. Бизнес-аналитикам будет полезна поддержка моделей линейной регрессии или прогнозирования для оценки ожидаемых значений, которые позволят им создать более функциональные и прогностические панели управления для анализа доходов. Для анализа рынка можно применять модели кластеризации методом k-средних, которые помогают распределять клиентов по сегментам. Аналитики по вопросам безопасности могут применять модели логистической регрессии (с двумя или несколькими вариантами) для выявления аномалий и инцидентов безопасности по различным журналам.
 
Вопрос: Какие модели машинного обучения можно использовать в Athena? [режим ознакомления]
Athena может вызывать любую модель машинного обучения, развернутую в Amazon 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 SageMaker поддерживает широкий ассортимент алгоритмов машинного обучения. Также вы можете разработать собственную модель машинного обучения и развернуть ее в Amazon SageMaker. Например, для кластерного анализа есть смысл проводить обучение по собственным данным, ведь вам важно распределять новые записи по тем же категориям, которые использовались ранее для предыдущих записей. С другой стороны, прогноз по реальным событиям, например спортивным мероприятиям, можно выполнять с помощью общедоступных моделей, ведь все результаты для обучения есть в свободном доступе.
 
Мы полагаем, что для прогнозов по конкретным сферам деятельности и отраслям обучение обычно выполняется по собственным данным, размещенным в SageMaker, а для обобщенных задач, например для машинного перевода, можно применять внешние модели.

Безопасность и доступность

Вопрос. Как управлять доступом к своим данным?
Amazon Athena позволяет управлять доступом к данным с помощью политик AWS Identity and Access Management (IAM), списков контроля доступа (ACL) и политик управления корзинами Amazon S3. Благодаря политикам IAM вы сможете предоставлять пользователям IAM средства точного управления корзинами S3. Контролируя доступ к данным в S3, можно запретить пользователям отправлять запросы к этому хранилищу через Athena.
 
Вопрос. Может ли Athena выполнять запросы к зашифрованным данным в Amazon S3?
Да. Сервис поддерживает запросы к данным, которые зашифрованы на стороне сервера с помощью ключей, управляемых Amazon S3; к данным, которые зашифрованы на стороне сервера с помощью ключей, управляемых AWS Key Management Service (KMS); а также к данным, которые зашифрованы на стороне клиента с помощью ключей, управляемых KMS. Кроме того, Amazon Athena интегрирован с KMS и предоставляет возможность шифрования наборов данных, полученных в ответ на запрос.
 
Вопрос. Обеспечивает ли Athena высокую доступность данных?
Да. Amazon Athena обеспечивает высокую доступность, выполняя запросы с помощью вычислительных ресурсов, распределенных между несколькими объектами, и автоматически маршрутизируя запросы в случае недоступности определенных объектов. В качестве основного хранилища Athena использует Amazon S3, что гарантирует высокую доступность и надежность данных. Устойчивая инфраструктура Amazon S3 обеспечивает надежное хранение 99,999999999 % объектов. Резервные копии данных распределяются между несколькими объектами и несколькими устройствами на каждом объекте.
 
Вопрос. Можно ли предоставить доступ к корзине S3, принадлежащей стороннему лицу, для пользователей других аккаунтов?
Да, вы можете предоставлять доступ к хранилищу Amazon S3 для пользователей других аккаунтов.

Цены и оплата

Вопрос. Сколько стоит использование сервиса Amazon Athena?
Плата за сервис Amazon Athena взимается за каждый запрос и зависит от объема данных, обработанных при этом запросе. Данные в Amazon S3 могут храниться в различных форматах. Если вы сожмете данные, разобьете их на разделы или преобразуете в столбцовые форматы, плата снизится, поскольку вы будете обрабатывать меньше данных. Преобразование данных в столбцовый формат позволит Athena при обработке запроса считывать только необходимые столбцы. Дополнительную информацию см. на странице цен сервиса Athena.
 
Вопрос. Почему при использовании столбцового формата плата снижается?
Плата за Amazon Athena зависит от объема данных, обработанных при запросе. Благодаря сжатию Amazon Athena обрабатывает меньший объем данных. Преобразование данных в столбцовые форматы позволяет Athena при обработке данных выборочно считывать только необходимые столбцы. Разбиение данных на разделы также приводит к уменьшению объема данных, обрабатываемых Athena. Все это обеспечивает сокращение затрат и повышение производительности. Подробнее см. в примере цен.
 
Вопрос. Каким образом можно сократить затраты?
Сжатие, разбиение на разделы и преобразование данных в столбцовые форматы позволяют сэкономить от 30 до 90 % стоимости запроса и повысить производительность. Каждая из этих операций приводит к уменьшению количества данных, необходимых Amazon Athena для обработки при выполнении запроса. Amazon Athena поддерживает два из наиболее популярных столбцовых форматов с открытым исходным кодом: Apache Parquet и ORC. Объем данных, обработанных при запросе, отображается в консоли Athena.
 
Вопрос. Взимается ли плата за неудачные запросы в Amazon Athena?
Нет, плата за неудачные запросы не взимается.
 
Вопрос. Взимается ли плата за отмененные запросы в Amazon Athena?
Да, если вы отмените запрос вручную, будет удержана плата за количество данных, обработанных сервисом до момента отмены запроса.
 
Вопрос. Взимаются ли какие-то дополнительные платежи за пользование Amazon Athena?
Amazon Athena запрашивает данные непосредственно из хранилища Amazon S3, поэтому исходные данные оплачиваются по ставкам S3. При выполнении запроса Amazon Athena по вашему усмотрению сохраняет результаты в корзине S3, и за эти наборы результатов с вас взимаются стандартные ставки S3. Для управления объемом удержания данных рекомендуется проводить мониторинг этих корзин и использовать политики жизненного цикла.
 
Вопрос. Будет ли взиматься плата за использование каталога данных AWS Glue?
Да. За использование каталога данных AWS Glue взимается отдельная плата. Подробнее о ценах на каталог данных Glue см. здесь.
Изображение веб‑страницы
Перейти на страницу цен

Ознакомьтесь с вариантами цен.

Подробнее 
Изображение регистрации аккаунта
Зарегистрируйте бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS. 

Регистрация 
Изображение инструментов
Начать разработку в консоли

Начало разработки с помощью Amazon Athena в Консоли управления AWS.

Вход