Wprowadzenie do Hurtowni Danych Mariusz Rafało mrafalo@sgh.waw.pl
CYKL OODA
Płk John 40 sekund Boyd Instruktor kultowej szkoły myśliwskiej Fighter Weapons School w bazie lotniczej Nellis Twórca koncepcji Cyklu OODA : Od walki powietrznej do doktryny USMC Współtwórca założeń myśliwców F-15 i F-16 Teoria Energy-Maneuverability : Teoretyczne podstawy projektowania nowoczesnych samolotów myśliwskich
Cykl OODA Nowe okoliczności Obserwacja (Observe) Odruchy Nawyki Orientacja (Orient) Uwarunk. kulturowe Decyzje (Decide) Odruchy Nawyki Działania (Act) Informacje zewnętrzne Obserwacje Rozwój interakcji z otoczeniem Dziedzictwo genetyczne Analiza / >>> Synteza >>> Decyzja >>> Nowe informacje Doświadczenie Informacje zwrotne Informacje zwrotne (hipoteza) Działanie (test) Rozwój interakcji z otoczeniem Pętla O-O-D-A Szkic pochodzący z briefingu J. Boyda The Essence of Winning and Losing Defense and the National Interest, http://www.d-n-i.net, 2001
Pętla OODA w biznesie (1) O O D A O O D A O O D A O O D A Wykorzystanie dezorientacji przeciwnika Interpretacja działań przeciwnika O O D A O O D A Spóźniona odpowiedź Nieadekwatna odpowiedź
Pętla OODA w biznesie (2) Model zarządzania dla organizacji real-time enterprise Decentralizacja decyzji + reguły Budowanie przewagi informacyjnej: wiedzieć więcej, wcześniej, dokładniej Tempo, płynność, efektywność cykli biznesowych dostosowane do wymagań rynku i warunków gry konkurencyjnej Struktury sieciowe Koncepcja architektury dla organizacji real-time enterprise Komponentyzacja poprzez budowę usługowych centrów kompetencyjnych Elastyczna architektura usług (np. SOA) Korporacyjna integracja informacji Automatyzacja rutynowych działań
AKCJE REAL-TIME
Operational Intelligence Platform (Gartner)
Dane typu real-time: pochodzenie Badania naukowe Czujniki i inne urządzenia Urządzenia mobilne Social media i WWW
Push Pull Akcje typu real-time Rodzaje akcji Akcje typ push/pull Akcje aktywne i pasywne Akcje związane z ofertą Cross sell/upsell Rabat Migracja oferty/usługi Active Event based content presentation Passive Offline offer preparation Akcje nie związane z ofertą Kontakt z klientem Zaproszenie klienta Prezentacja treści na WWW Location based actions Outbound campaigns
ARCHITEKTURA REAL TIME
Teoria CAP Partition tolerance Consistency Availability
Real-time: Checkpointing
Architektura Lambda Reguły pobierania danych Reguły filtrowania danych Reguły działania Warstwa real time Zdarzenia Moduł real time Repozytorium real-time Działania real-time Działanie ETL Warstwa wsadowa Hurtownia danych Reakcja na działanie
Action repository Decision rules Decision engine Customer Contact Rules repository Event trigger Batch event trigger Reporting Adaptative learning models Predictive models NRT repository Real time cache Aggregate stream data 360 DCV Scores Context enrichment Rules repository Filtering 360 DCV ODS Batch data repository Context data adapters Parsers repository ETL Metadata IVR CDR WWW Context data CRM Billing Sales Enterprise applications
STREAM VS (MICRO-)BATCH
MICRO-BATCH 1101 0101 Map 0100 Blocking Result
MICRO-BATCH 0101 1101 0100 Blocking Result
MICRO-BATCH 0101 Map 0100 1101 Blocking Result
MICRO-BATCH 0100 0101 1101 Blocking Result
MICRO-BATCH 0100 Map 1101 Blocking 0101 sult
MICRO-BATCH 0100 1101 Blocking 0101 sult
MICRO-BATCH Map 1101 Blocking 0101 sult 0100
MICRO-BATCH Map 1101 Blocking 0101 Reduce sult 0100
MICRO-BATCH Map 1101 Blocking 0101 Reduce sult 0100
MICRO-BATCH Map 1101 Blocking 0101 Reduce sult 0100
MICRO-BATCH Map Blocking Result 0100 1101 0101
MICRO-BATCH Map Blocking Result 1101 0101 0100
STREAM 1101 0101 Map 0100 Pipelined Result
STREAM 0101 1101 0100 Pipelined Result
STREAM 0101 Map 0100 1101 Pipelined Result
STREAM 0101 Map 0100 1101 Pipelined Result Reduce
STREAM 0101 Map 0100 1101 Pipelined Result Reduce
STREAM 0100 0101 1101 Pipelined Result Reduce
STREAM 0100 0101 Pipelined Result 1101 Reduce
STREAM 0100 Map 1101 Pipelined 0101 Reduce sult
STREAM 0100 Map Pipelined Result 1101 0101
STREAM 0100 Pipelined Result 1101 0101
STREAM Map Pipelined Result 0100 1101 0101
STREAM Map Pipelined Result 1101 0101 0100
ZAGADNIENIA REAL-TIME
Przetwarzanie strumieniowe zagadnienia Analityka oparta na zdarzeniach (identyfikacja wzorców i anomalii) Biznesowa interpretacja zdarzeń (daty biznesowe) Czas reakcji na zdarzenie Filtrowanie zdarzeń Okno analizy Agregowanie i integrowanie zdarzeń Relacje pomiędzy zdarzeniami Liczba transakcji 44
Przetwarzanie strumieniowe vs wsadowe Analityka oparta na zdarzeniach (identyfikacja wzorców i anomalii) Czas reakcji na zdarzenie Biznesowa interpretacja zdarzeń (daty biznesowe) Filtrowanie zdarzeń Okno analizy Agregowanie i integrowanie zdarzeń Relacje pomiędzy zdarzeniami Liczba transakcji Wybór architektury 45
Liczba transakcji 46
Mikrosegmenty 47
Okno analizowania 48
TECHNOLOGIA REAL-TIME
Apache Kafka Platforma służąca do tworzenia i zarządzania strumieniami danych Technologia oparta jest na tzw. brokerach: pojedynczy broker może obsługiwać setki megabajtów danych zapisywanych i odczytywanych w ciągu sekundy Dane w strumieniu mogą być partycjonowane; wówczas różne maszyny obsługują różne elementy strumienia Wszystkie komunikaty są składowane na dysku, przez co platforma jest odporna na zatrzymania pracy i inne awarie
Apache Storm Platforma do strumieniowego przetwarzania danych Może służyć do analityki w czasie rzeczywistym, wykorzystania algorytmów statystycznych a także jako narzędzie ETL Platforma zintegrowana z narzędziem Apache Kafka
Apache Spark Platforma do przetwarzania danych w dużej skali Obsługuje języki programowania: Java, Scala, Python, R Może pracować w trybie batch lub stream Posiada wiele wbudowanych bibliotek: SQL Data Frame Mlib GraphX
Apache Flink Platforma do obsługi danych w trybie strumieniowym; pracuje w środowisku rozproszonym z wysokim poziomem tolerancji na awarie Flink składa się z kilku narzędzi: DataStream API służące do strumieni, które nie posiadają ograniczeń DataSet API służące do obsługi strumieni statycznych Table API pozwalające na stosowanie składni SQL Biblioteka CEP (Complex Event Processing) Biblioteka Machine Learning
Apache Flink
Apache Cassandra Kolumnowa baza danych; cechuje się krótkimi czasami odpowiedzi Posiada cechy bazy kluczwartość Operuje na rodzinach kolumn, kluczach i kolumnach Big Data. Najlepsze praktyki budowy skalowalnych systemów obsługi danych w czasie rzeczywistym, Nathan Marz, James Warren, Helion, 2016
Apache Cassandra: przykład Big Data. Najlepsze praktyki budowy skalowalnych systemów obsługi danych w czasie rzeczywistym, Nathan Marz, James Warren, Helion, 2016
MongoDB Nierelacyjna baza danych System napisany w języku C++ Platforma cechuje się dużą skalowalnością, wydajnością oraz brakiem ściśle zdefiniowanej struktury obsługiwanych baz danych Dane składowane są jako pliki w formacje JSON, co umożliwia aplikacjom bardziej naturalne ich przetwarzanie, przy zachowaniu możliwości tworzenia hierarchii oraz indeksowania
Redis Baza danych klasy in-memory, składująca dane w pamięci operacyjnej Oferuje bardzo szybki odczyt i zapis danych Oferuje wsparcie dla wielu typów danych jak np. string, hash, list, set, Pozwala na stosowanie indeksów Posiada specjalizowane struktury służące obsłudze danych geograficznych
Apache Samoa Platforma służąca rozproszonemu wykonywaniu zadań związanych ze statystyczną obróbką danych Obsługuje najpopularniejsze algorytmy Machine Learning, jako biblioteki Obsługuje automatycznie strumienie danych pochodzące z różnych źródeł (Kafka, Storm, Samza, itp.) Pozwala na tworzenie i wykorzystanie w aplikacjach własnych bibliotek Aktualna wersja to 0.3
DRUID Kolumnowa baza danych wspierająca analizy wielowymiarowe (OLAP) Możliwość ładowania danych za pomocą ETL lub poprzez strumień danych (Kafka) Rozproszona, skalowalna architektura Źródło: druid.io 60
WYKORZYSTANIE NARZĘDZI
Action repository Decision rules Decision engine Customer Contact Rules repository Event trigger Batch event trigger Reporting Adaptative learning models Predictive models NRT repository Real time cache Aggregate stream data 360 DCV Scores Context enrichment Rules repository Filtering 360 DCV ODS Batch data repository Context data adapters Parsers repository ETL Metadata IVR CDR WWW Context data CRM Billing Sales Enterprise applications
Action repository Decision rules Decision engine Customer Contact Hive Rules repository Kafka Event trigger Batch event trigger Oozie Reporting Adaptative learning Samoa models Predictive models Mahout Hive NRT repository Cassandra Rules repository Real time cache Spark: streaming mode Filtering Aggregate stream Sqoop data Context enrichment Spark: SQL mode Redis 360 DCV ODS 360 DCV Batch data repository Scores Context data adapters Kafka Cassandra Parsers repository ETL Metadata IVR CDR WWW Context data CRM Billing Sales Enterprise applications
Dziękuję za uwagę