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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопрос: Каковы ограничения Kinesis Analytics?

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

  • Одна запись не может превышать 50 КБ. Записи, объем которых превышает 50 КБ, можно разделять на несколько записей во время определения схемы входящих данных.
  • Для каждого региона AWS в аккаунте пользователя можно создать до пяти приложений Kinesis Analytics. Эти лимиты можно увеличить, отправив форму запроса на повышение лимитов.
  • Возможно, запросы придется выполнять параллельно, чтобы успевать обрабатывать данные потока. Для этого можно указать, чтобы входящий поток данных внутри приложения разделялся на подпотоки (не более 10).
  • Максимальное количество блоков обработки Kinesis (KPU) равно восьми.
  • Можно настроить сохранение результатов обработки приложения не более чем в четырех целевых объектах.
  • Размер объекта Amazon S3, в котором хранятся ссылочные данные, не может превышать 1 ГБ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Kinesis 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 Analytics для разработчиков.

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


Вопрос: Где можно найти пример правильного использования определенного оператора SQL?

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

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

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

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

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

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


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

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

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

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

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

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

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

Плата будет взиматься минимум за один KPU, если ваше приложение Kinesis Analytics работает.

Вопрос: Кроме платы непосредственно за Kinesis Analytics имеются ли еще какие-либо другие расходы, которые я могу понести?

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

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

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

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

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