2015-06-10 4 views
5

Я новичок в Kinesis, так что это может показаться очень простым вопросом, но я не смог найти четкого ответа на то, что фактическая разница между транзакцией чтения и записи в потоке Кинезиса.Чтение и запись транзакций в Amazon Kinesis

Соответствующие части от Amazon Kinesis Limits:

  • GetShardIterator может обеспечить до 5 операций в секунду на открытом осколка.
  • GetRecords может извлекать 10 МБ данных.
  • Каждый осколок может поддерживать до 5 транзакций в секунду для чтения, с максимальной скоростью чтения данных 2 МБ в секунду.
  • Каждый осколок может поддерживать до 1024 записей в секунду для записи, с максимальной скоростью записи данных 1 МБ в секунду (включая ключи разделов). Это ограничение записи применяется к таким операциям, как PutRecord и PutRecords.

В нем четко указано 5 и 1024 записи в секунду на каждый осколок. Почему читается так дороже, чем пишет, или существует принципиальная концепция Кинесиса, которую я не понял?

ответ

4

Kinesis позволяет получать гранулированные данные в поток и считывать партии записей для обработки информации. Таким образом, объем мегабайт, который вы можете читать в секунду, гораздо важнее, чем количество транзакций чтения, которые вы получаете за каждый фрагмент. Например, у вас может быть занятый сайт, который генерирует тысячи просмотров в минуту и ​​кластер EMR для обработки ваших журналов доступа. В этом случае у вас будет намного больше событий записи, чем чтение событий. То же самое относится к потокам кликов, финансовым транзакциям, каналам социальных сетей, журналам ИТ и событиям отслеживания местоположения и т. Д.

+0

Таким образом, транзакции 5/1024 в секунду применяются только к отдельным вызовам GetRecords и PutRecord (s), где может быть возвращен один GetRecords много тысяч записей для меня? – KennethJ

+0

Да. Это правильно @ Кеннет. –

5

Общий пример использования заключается в том, что несколько продюсеров записывают свои события в Kinesis. Например, несколько веб-серверов, несколько браузеров или несколько мобильных устройств. Каждый производитель может записывать несколько событий по одному или в количестве до 500 событий.

С другой стороны, потребители событий представляют собой небольшое количество процессов. Простой вариант использования - «медленный» считыватель считывает партии событий из потока кинезий (например, 10 000 событий каждые 10 секунд) и записывает их на S3 в виде одного файла журнала.

В таком случае вы пишете тысячи событий (в основном один за другим), но вы читаете только один раз в секунду (или 10 секунд в приведенном выше примере) все события, которые были добавлены в поток за этот период времени. Следовательно, отношение записи к чтению составляет 1024: 1.

В большинстве случаев существует небольшое количество потребителей из потока кинезий, а не один считыватель. Например, помимо «медленного» чтения выше, у вас может быть «быстрый» считыватель, который сканирует входящие события и фильтрует их или суммирует их значения, чтобы иметь возможность реагировать в реальном времени. Этот быстрый читатель может идентифицировать транзакции мошенничества и блокировать их, или рассчитывать счетчики реального времени для рабочих панелей.

По-прежнему количество чтений будет небольшим, относительно количества записей. В таком случае «быстрый» считыватель будет считывать каждые 1/4 секунды, чтобы разрешить почти реальную реакцию на события.Следовательно, отношение записи к чтению будет 1024: 5 (= 1 + 4)

Смежные вопросы