Architektura Lambda w systemach Big Data została w znakomity sposób przedstawiona w książce “Big Data” napisanej przez Nathan’a Marz i James’a Warren. W tym miejscu będę chciał jedynie streścić to czym tak naprawdę jest wspomniana architektura Lambda oraz z jakimi technologiami jest związana (nie tylko z tymi, które zostały opisane w książce).

Główny założeniem wspomnianej architektury jest takie budowanie systemów Big Data, by składały się z warstw spełniających określone zadania:

  • warstwa przetwarzania wsadowego - przechowuje główny zbiór danych oraz przelicza dowolne widoki (tzw. obrazy wsadowe);
  • warstwa obsługująca - zapewnia losowy dostęp do obrazów wsadowych;
  • warstwa przetwarzania czasu rzeczywistego - kompensuje duże opóźnienia aktualizacji dla warstwy obsługującej poprzez szybkie algorytmy przyrostowe.

Założenia teoretyczne a rozwiązania praktyczne Link to heading

W celu zbudowania każdej z warstw istnieje szereg narzędzi mniej lub bardziej dostosowanych do założeń teoretycznych przedstawionych w książce. W poniższej tabeli w jednym miejscu przedstawiono jakie technologie można wykorzystać do budowy systemu wg architektury Lambda: modelowanie danychApache Thriftprzechowywanie danych w warstwie przetwarzania wsadowegoHadoop Distributed File System

biblioteka Pailwarstwa przetwarzania wsadowegoJCascalog

Hadoop Map-Reducewarstwa obsługującaElephantDB obraz czasu rzeczywistegoCassandra

HBase

MongoDBwymiana komunikatów / kolejkowanieApache Kafka

RabbitMQprzetwarzanie strumienioweApache Stormmikrowsadowe przetwarzanie strumienioweTrident (API mikrowsadowego przetwarzania Apache Storm)