2015-06-10 21 views
5

Jestem nowy w Kinesis, więc może się to wydawać bardzo podstawowym pytaniem, ale nie byłem w stanie znaleźć jasnej odpowiedzi na pytanie, jaka jest różnica między transakcją odczytu i zapisu w strumieniu Kinesis.Transakcje odczytu i zapisu w Amazon Kinesis

Odnośne części z Amazon Kinesis Limits:

  • GetShardIterator może dostarczyć do 5 transakcji na sekundę na wolnym fragmencie.
  • GetRecords może pobrać 10 MB danych.
  • Każdy fragment może obsłużyć do 5 transakcji na sekundę dla odczytów, do maksymalnej łącznej szybkości odczytu danych 2 MB na sekundę.
  • Każdy fragment może obsłużyć do 1024 rekordów na sekundę dla zapisów, do maksymalnej łącznej szybkości zapisu danych 1 MB na sekundę (w tym klucze partycji). Ten limit zapisu dotyczy takich operacji, jak PutRecord i PutRecords.

Wyraźnie wymienia 5 odczytów i 1024 zapisów na sekundę na każdy odłamek. Dlaczego czyta się o wiele drożej niż pisze, czy jest tu kluczowa koncepcja Kinesis, której nie rozumiem?

Odpowiedz

4

Kinesis umożliwia sporządzanie ziarnistych danych w strumieniu i odczytywanie partii rekordów w celu przetworzenia informacji. Tak więc wolumen megabajtów, które można odczytać na sekundę, jest o wiele ważniejszy niż liczba transakcji odczytu otrzymanych za dany fragment. Na przykład możesz mieć zajętą ​​witrynę generującą tysiąc wyświetleń na minutę i klaster EMR do przetwarzania dzienników dostępu. W tym scenariuszu będziesz mieć znacznie więcej zdarzeń zapisu niż zdarzeń odczytu. To samo dotyczy strumieni zwrotnych, transakcji finansowych, kanałów mediów społecznościowych, dzienników IT i zdarzeń monitorowania lokalizacji itp.

+0

Tak więc 5/1024 transakcji na sekundę dotyczy tylko pojedynczych wywołań GetRecords i PutRecord, w przypadku których pojedynczy zwrot GetRecords może powrócić wiele tysięcy rekordów do przetworzenia? – KennethJ

+0

Tak. To prawda, @KennethJ. –

5

Powszechnym zastosowaniem jest to, że wielu producentów pisze swoje wydarzenia w Kinesis. Na przykład wiele serwerów internetowych, wiele przeglądarek lub wiele urządzeń mobilnych. Każdy producent może pisać wiele wydarzeń, pojedynczo lub w grupie do 500 wydarzeń.

Z drugiej strony konsumenci zdarzeń to niewielka liczba procesów. Prostym zastosowaniem jest to, że "wolny" czytnik czyta partie zdarzeń ze strumienia kinezy (na przykład 10 000 zdarzeń co 10 sekund) i zapisuje je do S3 jako pojedynczy plik dziennika.

W takim przypadku piszesz tysiące zdarzeń (głównie jeden po drugim), ale czytasz tylko raz na sekundę (lub 10 sekund w powyższym przykładzie) wszystkich wydarzeń, które zostały dodane do strumienia w tym okresie czasu. Dlatego stosunek zapisów do odczytów wynosi 1024: 1.

W większości przypadków istnieje niewielka liczba odbiorców ze strumienia kinezy, a nie pojedynczy czytnik. Na przykład, nad "wolnym" czytnikiem powyżej, możesz mieć "szybkiego" czytnika, który skanuje nadchodzące zdarzenia i filtruje je lub podsumowuje ich wartości, aby móc reagować w czasie rzeczywistym. Ten szybki czytnik może identyfikować transakcje oszustw i blokować je lub obliczać liczniki czasu rzeczywistego dla operacyjnych pulpitów nawigacyjnych.

Nadal liczba odczytów będzie niewielka, w stosunku do liczby zapisów. W takim przypadku "szybki" czytnik będzie czytał co 1/4 sekundy, aby umożliwić reakcję w czasie zbliżonym do rzeczywistego.Dlatego stosunek zapisów do odczytów będzie wynosił 1024: 5 (= 1 + 4)