Вопрос: Что такое Amazon Kinesis Data Analytics?

Amazon Kinesis Data Analytics – это сервис, упрощающий обработку и анализ потоковых данных в режиме реального времени. Amazon Kinesis Data Analytics позволяет использовать для обработки потоков данных стандартный SQL, устраняя необходимость изучать новые языки программирования. Просто укажите Kinesis Data Analytics входящий поток данных, напишите SQL-запросы и укажите, куда следует записывать результаты обработки. Kinesis Data Analytics будет обеспечивать непрерывное выполнение SQL-запросов к данным в процессе передачи и отправлять результаты обработки в целевые объекты.

Вопрос: Что такое обработка потоков в режиме реального времени и где ее можно использовать?

Из-за стремительного роста количества источников данных, поступающих в режиме реального времени, данные поступают к нам с огромной скоростью. Это могут быть данные журналов, поступающие из мобильных и интернет-приложений, данные о покупках с сайтов интернет-коммерции или показания датчиков устройств «Интернета вещей» – все они доставляют информацию, которая способна помочь компаниям изучить поведение своих клиентов и узнать, что происходит в их организации или коммерческой компании в данный момент. Имея возможность анализировать эти данные по мере поступления, можно контролировать свой бизнес в режиме реального времени и быстро использовать новые возможности: формировать рекламные предложения для клиентов на основе информации об их местоположении в определенное время или наблюдать за изменением их настроения и откликами для выявления и реализации новых возможностей.

Чтобы использовать эти возможности, нужен набор аналитических инструментов для сбора и анализа потоковых данных в режиме реального времени, отличный от того, который был обычно доступен для хранимых статических данных. Традиционные методы аналитики предполагают, что пользователь собирает информацию, накапливает ее в базе данных и анализирует спустя несколько часов, дней или недель. Анализ данных в режиме реального времени требует другого подхода, других инструментов и сервисов. Вместо выполнения запросов к сохраненным данным, платформы потокового анализа непрерывно обрабатывают данные до того, как эти данные сохраняются в базе данных. Потоковые данных поступают с невероятной скоростью, которая все время может меняться, увеличиваясь или уменьшаясь. Платформы потокового анализа должны быть способны обрабатывать эти данные по мере их поступления, часто со скоростью нескольких миллионов событий в час.

Вопрос: Для чего предназначен сервис Kinesis Data Analytics?

Kinesis Data Analytics можно применять в большинстве примеров использования, когда происходит непрерывный сбор данных в режиме реального времени, когда необходимо получить информацию и разобраться в ней в течение нескольких секунд или минут, а не ждать несколько дней или недель. В частности, сервис Kinesis Data Analytics позволяет быстро создавать комплексные приложения по обработке потока данных для анализа журналов или навигации по сайту, Интернета вещей (IoT), рекламных технологий, игр и многого другого. Три наиболее распространенных варианта использования сервиса: анализ временных рядов, информационные панели, а также оповещения и предупреждения в режиме реального времени.

Создание аналитических отчетов по временным рядам

Анализ временных рядов позволяет отслеживать и понимать тенденции изменения данных с течением времени. Используя Kinesis Data Analytics, можно написать SQL-код, который будет непрерывно проводить анализ временных рядов за указанные интервалы времени. Например, можно создать обновляемую в режиме реального времени турнирную таблицу для мобильной игры, вычисляя лучших игроков каждую минуту, а затем отправляя эти данные в Amazon S3. Или можно отслеживать входящий трафик веб-сайта, подсчитывая количество уникальных посетителей сайта каждые пять минут и отправляя обработанные результаты в Amazon Redshift.

Информационные панели, обновляемые в режиме реального времени

Можно создать приложения, которые будут выполнять запросы и выводить их результаты на информационную панель, обновляемую в режиме реального времени. Это позволит обеспечить визуализацию данных в режиме, близком к реальному времени. Такое приложение может непрерывно вычислять коммерческие показатели, например количество покупок на сайте интернет-коммерции, сгруппированных по категориям продуктов, а затем отправлять результаты в Amazon Redshift для визуализации данных с помощью выбранного пользователем инструмента бизнес-аналитики. Возможен и другой пример, когда приложение обрабатывает данные журнала и вычисляет количество ошибок в приложении, а затем отправляет результаты в сервис Amazon Elasticsearch для визуализации с помощью Kibana.

Создание оповещений и предупреждений в режиме реального времени

Вы можете создавать приложения, которые отправляют оповещения и предупреждения в режиме реального времени, когда определенные показатели достигают заданных пороговых значений или (в более сложных случаях) когда с помощью предоставляемого нами алгоритма машинного обучения приложение обнаруживает некие аномалии. Например, приложение может вычислять доступность API или коэффициент успешного использования API клиентами с течением времени, а затем отправлять результаты в Amazon CloudWatch. Можно создать и другое приложение для поиска событий, отвечающих определенным критериям, а затем автоматически отправлять оповещения соответствующим клиентам с помощью Kinesis Data Streams и Amazon Simple Notification Service (SNS).

Вопрос: Как начать работу с сервисом Kinesis Data Analytics?

Войдите в консоль Kinesis Data Analytics и создайте новое приложение потоковой обработки. Можно также использовать интерфейс командной строки AWS или наборы AWS SDK. Комплексное приложение можно создать за три простых шага: 1) настроить входящие потоковые данные; 2) написать SQL-запросы; 3) указать, куда следует отправлять результаты.Kinesis Data Analytics распознает стандартные форматы данных, такие как JSON, CSV и TSV, и автоматически создает базовую схему. Эту схему можно изменить, а если ваши данные являются неструктурированными, можно определить новую схему, используя интуитивно понятный редактор схем. Затем сервис применит эту схему ко входящему потоку и преобразует его к виду SQL-таблицы, данные в которой постоянно обновляются, что позволит использовать стандартные SQL-запросы для обращения к ней. Для создания запросов пользователи используют наш SQL-редактор. SQL-редактор поставляется со всеми дополнительными возможностями, включая проверку синтаксиса и тестирование на данных, поступающих в режиме реального времени. Мы предоставляем шаблоны SQL-кода для решения всевозможных задач: от простого фильтра потоковых данных до продвинутого обнаружения аномалий и аналитики «top-K».Kinesis Data Analytics также предоставляет всю инфраструктуру, необходимую для обработки потока данных любой пропускной способности, и обеспечивает ее эластичное масштабирование. Пользователю не приходится заботиться о планировании и выделении инфраструктуры или брать на себя обязанности по управлению.

Вопрос: Какие лимиты действуют для Kinesis Data Analytics?

Kinesis Data Analytics эластично масштабирует приложение, чтобы оно соответствовало скорости передачи данных потока-источника и уровню сложности запросов для большинства сценариев. Подробную информацию о лимитах сервиса см. в разделе Лимиты Руководства по Amazon Kinesis Data Analytics для разработчиков.


Вопрос: Что такое приложение Kinesis Data Analytics?

Приложением называется сущность сервиса Kinesis Data Analytics, с которой ведется работа. Приложения Kinesis Data Analytics непрерывно считывают и обрабатывают потоковые данные в режиме реального времени. Используя язык SQL, пользователь создает код приложения для обработки входящих потоковых данных и получения результата. После этого сервис Kinesis Data Analytics записывает результат обработки в предварительно настроенный целевой объект.

Каждое приложение состоит из трех основных компонентов.

  • Входящие данные – источник потоковых данных для приложения. При настройке источника данных необходимо связать входящий поток данных с потоком входящих данных внутри приложения. Поток входящих данных внутри приложения напоминает постоянно обновляемые таблицы, для которых можно выполнять SQL-операции SELECT и INSERT. Каждая входящая запись имеет связанную с ней схему, которая применяется в качестве элемента вставки записи в поток данных внутри приложения.
  • Код приложения – последовательность операторов SQL, которые обрабатывают входящие данные и формируют исходящие данные. В простейшем виде код приложения может состоять из одного оператора SQL, который выбирает данные из входящего потока данных и вставляет результаты в исходящий поток данных. Код также может состоять из нескольких операторов SQL, при этом исходящие данные одного оператора будут поступать на вход следующего оператора SQL. Кроме того, можно написать код приложения так, чтобы разделить входящий поток данных на несколько подпотоков, а затем применить дополнительные запросы, чтобы обработать эти отдельные подпотоки. 
  • Исходящие данные – внутри приложения можно создать один или несколько потоков данных для хранения промежуточных результатов. Затем можно дополнительно настроить сохранение результатов обработки отдельного потока на внешнем целевом объекте. 

Вопрос: Что такое поток данных внутри приложения?

Поток данных внутри приложения – это сущность, которая непрерывно сохраняет данные в приложении для последующего выполнения SQL-операций SELECT и INSERT. Взаимодействие с потоком данных внутри приложения осуществляется так же, как с SQL-таблицей. Однако поток отличается от таблицы тем, что данные в нем постоянно обновляются. В коде приложения можно создавать дополнительные подпотоки внутри приложения для сохранения промежуточных результатов запроса. Наконец, как настроенные входящие данные, так и исходящие данные представлены в приложении как внутренние потоки.

Вопрос: Какие источники входящих данных поддерживает приложение Kinesis Data Analytics?

Сервис Kinesis Data Analytics поддерживает два типа источников входящих данных: источники потоковых данных и источники ссылочных данных. Источник потоковых данных непрерывно генерируются данные, которые поступают в приложение для обработки. Источник ссылочных данных предоставляет статичные данные, которые используются приложением в качестве дополнения к данным, поступающим из источников потоковых данных. В каждом приложении может использовать не более одного источника потоковых данных и не более одного источника ссылочных данных. Приложение непрерывно считывает и обрабатывает новые данные из источников потоковых данных, включая Amazon Kinesis Data Streams и Amazon Kinesis Data Firehose. Приложение считывает данные из источника ссылочных данных, включая Amazon S3, в полном объеме для дополнения данных из источника потоковых данных с помощью SQL-оператора JOIN.

Вопрос: Что такое источник ссылочных данных?

Источник ссылочных данных предоставляет статичные данные, которые используются приложением в качестве дополнения к данным, поступающим из источников потоковых данных. Ссылочные данные хранятся в виде объекта в корзине S3. При запуске приложения Kinesis Data Analytics считывает объект S3 и создает SQL-таблицу внутри приложения для хранения ссылочных данных. После этого код приложения может объединить ее с потоком внутри приложения. Вы можете обновить данные в этой таблице SQL, вызвав UpdateApplication API.

Вопрос: Какой код приложений поддерживает сервис?

Kinesis Data Analytics поддерживает SQL стандарта ANSI с некоторыми расширениями стандартного языка SQL, которые упрощают работу с потоковыми данными. Кроме того, Kinesis Data Analytics предоставляет несколько алгоритмов машинного обучения в виде SQL-функций, включая алгоритмы обнаружения аномалий, аппроксимацию «top-K» и аппроксимацию уникальных элементов.

Вопрос: Какие целевые объекты поддерживает сервис?

Kinesis Data Analytics поддерживает до четырех целевых объектов на каждое приложение. Сохранять результаты SQL-запросов можно в Amazon S3, Amazon Redshift, Amazon Elasticsearch (через Amazon Kinesis Data Firehose) и Amazon Kinesis Data Streams. Можно записывать данные в целевой объект, не поддерживаемый непосредственно Kinesis Data Analytics, отправляя результаты SQL-запросов в Amazon Kinesis Data Streams и используя его интеграцию с AWS Lambda для отправки данных в выбранный целевой объект.


Вопрос: Как настроить источник потоковых данных?

Источником потоковых данных может быть поток данных Amazon Kinesis или поток доставки Amazon Kinesis Data Firehose. Приложение Kinesis Data Analytics непрерывно считывает новые данные из источников потоковых данных по мере их поступления в режиме реального времени. Доступ к данным в коде SQL обеспечивается через потоки данных внутри приложения. Поток данных в приложении функционирует как таблица SQL, поскольку данные можно создавать, вставлять в поток и выбирать из него. Разница состоит в том, что данные в потоке внутри приложения постоянно обновляются новыми данными из источника потоковых данных.

Чтобы добавить источник потоковых данных, можно использовать Консоль управления AWS. Дополнительную информацию об источниках см. в разделе Настройка входящих данных приложения Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Как настроить источник ссылочных данных?

Источником ссылочных данных может быть объект Amazon S3. При запуске приложение Kinesis Data Analytics целиком считывает данные объекта S3. Доступ к данным в коде SQL обеспечивается через таблицу. Наиболее распространенный способ использования источника ссылочных данных – дополнение данных, поступающих из источника потоковых данных, с помощью команды SQL JOIN.

С помощью интерфейса командной строки AWS можно добавить источник ссылочных данных, указав корзину S3, объект, роль IAM и связанную схему. Kinesis Data Analytics загружает эти данные при запуске приложения и повторно загружает их при каждом вызове API обновления.

Вопрос: Какие форматы данных поддерживаются?

Kinesis Data Analytics определяет схему и автоматически анализирует записи JSON и CSV, использующие кодировку UTF-8, с помощью API DiscoverInputSchema. Эта схема применяется для данных, считанных из потока в качестве части вставки в поток внутри приложения.

Для других данных, использующих кодировку UTF-8 и не использующих разделитель, используется разделитель, отличный от того, который используется в CSV. Если с помощью API определения схему не удалось определить полностью, можно определить ее с помощью интерактивного редактора схемы или воспользоваться возможностями работы со строками для структурирования данных. Дополнительную информацию см. в разделе Использование возможности определения схемы и ее редактирование Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Как обеспечивается доступ SQL-кода к входящему потоку данных?

Kinesis Data Analytics применяет указанную схему и передает данные в один или несколько потоков внутри приложения для источников потоковых данных и в одну таблицу SQL для источников ссылочных данных. По умолчанию количество потоков в приложении равно одному, что в большинстве случаев отвечает потребностям пользователей. Если приложение не успевает обрабатывать данные из источника потока, как это определено в метрике MillisBehindLatest сервиса CloudWatch, это значение следует увеличить. Необходимое число подпотоков в приложении определяется как производительностью источника потока, так и сложностью запросов. Параметр, который используется для указания количества подпотоков в приложении, которые сопоставляются с источником потоковых данных, называется входным параллелизмом.


Вопрос: Как выглядит код приложения?

Код приложения – последовательность операторов языка SQL, которые обрабатывают входящие данные и формируют исходящие данные. Эти операторы SQL работают с потоками внутри приложения и таблицами ссылочных данных. Поток данных внутри приложения напоминает постоянно обновляемые таблицы, для которых можно выполнять SQL-операции SELECT и INSERT. Доступ к сконфигурированным источникам данных и целевым объектам из кода SQL обеспечивается с помощью потоков внутри приложения. Можно также создавать дополнительные подпотоки внутри приложения для сохранения промежуточных результатов запроса.

Для работы с потоками внутри приложения можно использовать следующий шаблон.

  • Всегда используйте оператор SELECT в контексте оператора INSERT. При выборе строки вставляйте результаты в другой поток внутри приложения.
  • Используйте оператор INSERT в контексте «закачки» данных. «Закачка» данных используется, чтобы сделать непрерывными работу оператора INSERT и запись данных в поток внутри приложения.
  • «Закачка» данных используется, чтобы связать подпотоки внутри приложения, выбирая данные из одного подпотока внутри приложения и вставляя в другой подпоток внутри приложения. 

Приведенный ниже код SQL обеспечивает работу простого приложения.

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (

    ticker_symbol VARCHAR(4),

    change DOUBLE,

    price DOUBLE);

 

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM

    SELECT STREAM ticker_symbol, change, price

    FROM "SOURCE_SQL_STREAM_001";

Дополнительную информацию см. в разделе Код приложения Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Какую помощь в написании SQL-кода предлагает Kinesis Data Analytics?

В Kinesis Data Analytics входит библиотека аналитических шаблонов для стандартных вариантов использования, включающих фильтры потоковых данных, обработку временных интервалов и обнаружение аномалий. Эти шаблоны доступны в редакторе SQL в Консоли управления AWS. После создания приложения и перехода к редактору SQL шаблоны будут доступны в верхнем левом углу консоли.

Вопрос: Как в Kinesis Data Analytics выполнить обнаружение аномалий в режиме реального времени?

Kinesis Data Analytics содержит встроенные SQL-функции для нескольких продвинутых аналитических методов, в том числе для обнаружения аномалий. Для обнаружения аномалий в режиме реального времени нужно просто включить вызов этой функции в свой SQL-код. Для реализации обнаружения аномалий Kinesis Data Analytics использует алгоритм Random Cut Forest. Дополнительная информация по алгоритму Random Cut Forests приведена в техническом описании «Streaming Data Anomaly Detection»


Вопрос: Как настроить целевой объект?

В коде приложения нужно указать вывод результатов операторов SQL в один или несколько потоков внутри приложения. Можно добавить в приложение дополнительную конфигурацию вывода данных, которая позволит сохранять все данные, записанные в потоки приложения не более чем в четыре внешних целевых объекта. Этими внешними целевыми объектами могут быть корзина Amazon S3, таблица Amazon Redshift, домен Amazon Elasticsearch (через Amazon Kinesis Data Firehose) и поток данных Amazon Kinesis. Каждое приложение может поддерживать до четырех целевых объектов, при этом можно использовать любое сочетание перечисленных вариантов. Дополнительную информацию см. в разделе Настройка исходящих потоков данных Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Мой целевой объект напрямую не поддерживается. Как я могу отправить в него результаты SQL-запросов?

Для записи данных в целевой объект, который не поддерживается напрямую, можно использовать сервис AWS Lambda. Мы рекомендуем записывать результаты в поток данных Amazon Kinesis, а затем использовать AWS Lambda для чтения результатов обработки и отправки их в выбранный целевой объект. Дополнительную информацию см. в разделе Пример: интеграция с AWS Lambda Руководства по Kinesis Data Analytics для разработчиков. В качестве альтернативы можно использовать поток доставки Amazon Kinesis Data Firehose для загрузки данных в Amazon S3, а затем вызвать функцию AWS Lambda для чтения и отправки этих данных в выбранный целевой объект. Дополнительную информацию см. в разделе Использование AWS Lambda с Amazon S3 Руководства по AWS Lambda для разработчиков.

Вопрос: Какую модель доставки обеспечивает сервис Kinesis Data Analytics?

Для вывода данных приложения в настроенные целевые объекты сервис Kinesis Data Analytics применяет модель доставки «не менее одного раза». Приложения Kinesis Data Analytics используют внутренние контрольные точки, являющиеся моментами времени, когда исходящие записи были доставлены в целевые объекты, при этом потери данных отсутствовали. Сервис использует контрольные точки по мере необходимости, чтобы убедиться, что исходящие данные приложения доставлены в определенные целевые объекты не менее одного раза. Дополнительную информацию о модели доставки см. в разделе Настройка вывода данных приложения Руководства по Kinesis Data Analytics для разработчиков.


Вопрос: Как следить за выполнением операций и производительностью приложений Kinesis Data Analytics?

AWS предоставляет различные инструменты, которые можно использовать для мониторинга работы приложений Kinesis Data Analytics. Некоторые из этих инструментов можно настроить, чтобы они осуществляли мониторинг автоматически. Дополнительную информацию о мониторинге приложений см. в разделе Мониторинг Kinesis Data Analytics Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Как управлять доступом к приложениям Kinesis Data Analytics и контролировать его?

Сервису Kinesis Data Analytics требуются разрешения на чтение записей из источников потоковых данных, которые определены для приложения. Кроме того, сервису Kinesis Data Analytics необходимы разрешения на запись исходящих данных приложения в потоки, которые указаны в настройках исходящих данных приложения. Эти разрешения предоставляются путем создания ролей IAM, которые может принять сервис Kinesis Data Analytics. Разрешения, которые предоставлены для конкретной роли, определяют, что именно сервис Kinesis Data Analytics может делать, когда он принимает эту роль. Подробнее см. в разделе Предоставление разрешений Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Как Kinesis Data Analytics масштабирует приложение?

Kinesis Data Analytics эластично масштабирует приложение, чтобы оно соответствовало скорости передачи данных потока-источника и уровню сложности запросов для большинства сценариев. Сервис Kinesis Data Analytics выделяет ресурсы в виде блоков обработки Amazon Kinesis (KPU). Один KPU предоставляет оперативную память (4 ГБ), а также соответствующие вычислительные и сетевые ресурсы.
Каждый источник потоковых данных связывается с соответствующим потоком внутри приложения. Хотя это и не является обязательным для большинства клиентов, более эффективно использовать KPU можно за счет увеличения количества подпотоков внутри приложения, которым сопоставляется источник, путем указания параметра, называемого входным параллелизмом. Сервис Kinesis Data Analytics равномерно назначает разделы источника потоковых данных, то есть сегменты потока данных Amazon Kinesis, в соответствии с указанным числом подпотоков внутри приложения. Например, если используется поток данных Amazon Kinesis из 10 сегментов в качестве источника потоковых данных и для входного параллелизма указано значение 2, сервис Kinesis Data Analytics присвоит по пять фрагментов Amazon Kinesis двум подпотокам внутри приложения с названиями «SOURCE_SQL_STREAM_001» и «SOURCE_SQL_STREAM_002». Дополнительную информацию см. в разделе Настройка входящих данных приложения Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Какие существуют рекомендации по созданию приложений Kinesis Data Analytics и управлению ими?

Информацию о рекомендациях см. в разделе Рекомендации Руководства по Kinesis Data Analytics для разработчиков. Данный раздел охватывает вопросы управления приложениями, определения схемы входящих данных, подключения к исходящим данным, а также создания кода приложения.


Вопрос: Как добиться правильной работы определенного оператора SQL?

Обратитесь к разделу Примеры приложений Руководства по Kinesis Data Analytics для разработчиков, где предоставлено большое количество примеров SQL-кода, готового к использованию. Кроме того, в Справке по SQL для Kinesis Data Analytics содержится подробное руководство по написанию выражений на SQL для обработки потоковых данных. В случае невозможности самостоятельного устранения проблем рекомендуем задать вопрос на форумах Amazon Kinesis.

Вопрос: Сервису Kinesis Data Analytics не удалось обнаружить или определить мою схему. Как можно использовать Kinesis Data Analytics?

Для других типов данных, использующих кодировку UTF-8 без разделителя или с разделителем, отличным от того, который используется в CSV, а также для случаев, когда с помощью API схему не удалось определить полностью, сервис позволяет определить схему вручную или воспользоваться для структурирования данных функциями работы со строками. Дополнительную информацию см. в разделе Использование возможности определения схемы и ее редактирование Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: За какими важными параметрами мне следует наблюдать, чтобы убедиться, что мое приложение работает нормально?

Наиболее важным параметром для мониторинга является метрика MillisBehindLatest сервиса CloudWatch, которая позволяет определить задержку при чтении данных из потока относительно текущего времени. Эта метрика представляет собой эффективный механизм определения того, достаточно ли быстро осуществляется обработка записей из потока-источника. Вам следует создать предупреждение CloudWatch, которое бы срабатывало в том случае, если отставание составит более одного часа (это значение зависит от конкретного варианта использования и может быть изменено в случае необходимости). Дополнительную информацию см. в разделе Рекомендации Руководства по Kinesis Data Analytics для разработчиков.

Вопрос: Как устранять ошибки в приложении Kinesis Data Analytics, вызванные некорректным кодом?
Подробную информацию об ошибках в приложении Kinesis Data Analytics, вызванных некорректным кодом, а также об их устранении см. в разделе Устранение неполадок Руководства по Kinesis Data Analytics для разработчиков.


Вопрос: Сколько стоит использование Kinesis Data Analytics?

При работе с Kinesis Data Analytics вы платите только за то, что реально используете. Плата начисляется на почасовой основе с учетом среднего количества блоков обработки Kinesis (KPU), используемых для работы приложения обработки потоковых данных. Мы округляем количество KPU до ближайшего целого значения.

Один KPU представляет собой ресурс обработки потоковых данных, содержащий оперативную память (4 ГБ), вычислительный модуль (1 виртуальный ЦПУ) и соответствующие сетевые ресурсы. Поскольку в процессе обработки память приложения обработки потоковых данных и потребление вычислительных ресурсов изменяются, сервис Kinesis Data Analytics автоматически и эластично масштабирует количество KPU в зависимости от текущей потоковой нагрузки. При использовании Kinesis Data Analytics не требуется выделять ресурсы, вносить авансовые или минимальные платежи.

Дополнительную информацию о ценах см. на странице Цены на Kinesis Data Analytics.

Вопрос: Доступен ли сервис Kinesis Data Analytics на уровне бесплатного пользования AWS?

Нет. В настоящее время сервис Kinesis Data Analytics недоступен на уровне бесплатного пользования AWS. Уровень бесплатного пользования AWS – это программа, в рамках которой предлагается бесплатно воспользоваться пробной версией ряда сервисов AWS.

Вопрос: Будет ли взиматься плата за приложение Kinesis Data Analytics, которое запущено, но не обрабатывает какие-либо данные из источника?

Если приложение Kinesis Data Analytics запущено, плата начисляется на минимальном уровне – за один KPU.

Вопрос: Какие другие расходы, помимо платы собственно за сервис, может повлечь использование Kinesis Data Analytics?

Kinesis Data Analytics – это полностью управляемое решение потоковой обработки данных, которое не зависит от источников потоковых данных, откуда оно считывает данные, и целевых объектов, куда оно записывает обработанные данные. Отдельная плата будет взиматься за использование Kinesis Data Firehose и Kinesis Data Streams, связанных с потоками входящих и исходящих данных.

Вопрос: Чем использование Kinesis Data Analytics отличается от запуска собственного приложения с помощью клиентской библиотеки Amazon Kinesis?

Клиентская библиотека Amazon Kinesis (KCL) – это встроенная библиотека, позволяющая создавать пользовательские приложения для считывания и обработки данных из потока данных Amazon Kinesis. Она берет на себя такие сложные задачи, как адаптация к изменениям объема потока данных, балансировка нагрузки потоковых данных, координация распределенных сервисов и отказоустойчивая обработка данных. KCL позволяет разработчику сосредоточить внимание на бизнес-логике создаваемого приложения.

С помощью Kinesis Data Analytics можно обрабатывать потоковые данные в режиме реального времени и выполнять запросы к ним. Amazon Kinesis Analytics позволяет использовать стандартный язык SQL для обработки потоков данных без необходимости изучать новые языки программирования. Просто укажите Kinesis Data Analytics на входящий поток данных, напишите SQL-запросы и укажите, куда следует записать результаты обработки. Сервис Kinesis Data Analytics использует библиотеку KCL для чтения данных из источников потоковых данных в качестве одной из составляющих основного приложения. Он позволяет абстрагироваться от этого, а также от многих других, более сложных понятий, связанных с использованием библиотеки KCL, таких как применение контрольных точек.

Когда требуется полностью управляемое решение и возможность использовать SQL для обработки данных из потока, следует выбрать Kinesis Data Analytics. Библиотеку KCL стоит использовать, когда требуется создать пользовательское решение для обработки данных, требования к которому не соответствует функционалу Kinesis Data Analytics, и при этом есть возможность самостоятельно управлять созданным пользовательским приложением.