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)