AWS DynamoDB Stream в Redshift

Мы хотели бы постоянно перемещать данные из DynamoDB NoSQL в базу данных Redshift в виде потока. Мне сложно понять все новые термины / технологии в AWS. Там есть

1) DynamoDB Streams

2) AWS Lambda

3) AWS Kinesis Firehose.

Может ли кто-нибудь дать краткое изложение каждого из них. Что такое потоки DynamoDB? Чем это отличается от AmazonKinesis? После прочтения всех ресурсов это мое понимание гипотезы, пожалуйста, проверьте ниже.

(a) Я предполагаю, что DynamoDB Streams, создаю потоковые данные NoSQL и начинаю их рассылать. Это отправитель.

(b) Лямбда позволяет людям только потраченное время, это время аренды сервера, который обрабатывает поток DynamoDB.

(c) Kinesis FireHose преобразует поток DynamoDB и помещает его в Redshift.

(d) AmazonQuickSight - их инструмент бизнес-аналитики,

Это правильное понимание терминов глоссария? Просматривая ссылку на стек, нужна более подробная информация.

введите здесь описание изображения




Ответы (1)


Amazon Kinesis может собирать, обрабатывать и анализировать потоки видео и данных в реальном времени.

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

Потоки DynamoDB действуют так же, как поток данных Kinesis, но автоматически создаются на основе новых / измененных данных в DynamoDB. Это позволяет приложениям получать уведомления при добавлении новых данных в таблицу DynamoDB или при изменении данных.

Kinesis Data Firehose может автоматически выводить поток в Redshift (среди других пунктов назначения).

AWS Lambda может запускать код без выделения серверов и управления ими. Вы платите только за потраченное время вычислений - плата не взимается, когда ваш код не запущен. Вы можете запускать код практически для любого типа приложения или серверной службы - и все это без необходимости администрирования.

Лямбда полезна для проверки данных, проходящих через поток. Например, его можно использовать для управления форматом данных или для пропуска данных, которые не требуются.

Собирая все вместе, вы можете добавлять / изменять данные в DynamoDB. Это приведет к отправке DynamoDB Stream, содержащего информацию об изменении. Функция AWS Lambda может проверять данные и управлять / отбрасывать сообщение. Затем If может перенаправить данные в Kinesis Data Firehose, чтобы автоматически вставить данные в Amazon Redshift.

Вот пример:

  • Банковская транзакция хранится в DynamoDB
  • DynamoDB Streams отправляет его лямбда-функции
  • Функция Lambda просматривает транзакцию, а также получает информацию о банковском счете. Если на счете достаточный баланс, функция завершает работу и ничего не делает.
  • Если в учетной записи недостаточно баланса, он может отправить электронное письмо через Amazon SES с уведомлением владельца учетной записи. Затем он может отправить данные в Firehose, который хранит их в Redshift, для сообщения о просроченных счетах.

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

person John Rotenstein    schedule 10.06.2018
comment
это еще один вопрос, спасибо, stackoverflow.com/questions/51054085/ - person ; 27.06.2018