Big Data i technologie no-sql - Dydaktyka
Transkrypt
Big Data i technologie no-sql - Dydaktyka
Języki i środowiska przetwarzania danych rozproszonych Big Data i technologie NO-SQL Wykładowca: Tomasz Kowalski Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 1 2016 Sześcian Big Data BIG Objętość: • small (np. RDMS) • big (np. www) Szybkość: • pull (sync.) • push (async.) Różnorodność: • fk/pk (SQL) • k/v (grafy, obiekty, BLOBy) Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 2 2016 Współczesne problemy interaktywnych aplikacji Rosnąca liczba współbieżnie pracujących użytkowników aplikacji webowych i mobilnych. Rosnąca liczba zbieranych i przetwarzanych danych. Rosnąca liczba danych niestrukturalnych i pół-strukturalnych. Powyższe trendy sprawiły, że konieczne było odejście od istniejących relacyjnych baz danych, które przestały się sprawdzać. Google, Amazon, Facebook, LinkedIn itd. Postawiły na rozwój własnych rozwiązań – tzw. technologie NoSQL. Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 3 2016 Big Users Z jednej aplikacji on-line często korzysta więcej niż 1M użytkowników. Nowo powstała aplikacja może w ciągu jednej nocy zyskać 1M userów. Aktywność użytkowników może wzrastać w określonych okresach. Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 4 2016 Big Data Dane są bardziej dostępne: Facebook, dane geo-lokalizacyjne, grafy społecznościowe, informacje o aktywności, itd. Deweloperzy chcą wykorzystać te dane w swoich usługach. Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 5 2016 Cloud Computing Architektura zorientowana na scale-out Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 6 2016 Cechy baz NoSQL Ułatwiony rozwój aplikacji poprzez bardziej elastyczny model danych. Większa możliwość dynamicznego skalowania w celu wsparcia zmieniającej się liczby userów i danych. Wydajność dostosowana do wymagań użytkowników (w szczególności responywność aplikacji) i przetwarzania określonych danych (np. rozwiązania grafowe) Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 7 2016 Scale-up vs Scale-out Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 8 2016 The Evolution of Massive-Scale Data Processing MapReduce Hadoop Flume Storm Spark MillWheel Flink Cloud Dataflow 2003 2004 2005 2006 2007 2008 Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 9 2009 2010 2011 2012 2013 2014 2015 2016 2016 MapReduce - koncepcja (Prepare) Map (Shuffle) Reduce (Produce) Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 10 2016 MapReduce - przykład Toronto, 20 Whitby, 25 New York, 22 Toronto, Rome, 3220 Whitby, 25 4 Toronto, New York, Rome, 33 22 Rome, 3220 18 New York, Toronto, Toronto, Whitby, 25 4 Rome, 33 22 New York, Toronto, 20 18 New York, Rome, 32 Whitby, 25 Toronto, 4 New York, 22 Rome, 33 Rome, 32 New York, 18 Toronto, 4 Rome, 33 New York, 18 (Toronto, 20) (Whitby, 25) max (New York, 22) (Rome, 33) (Toronto, 18) (Whitby, 27) (New York, 32) (Rome, 37) (Toronto, 32) (Whitby, 20) (New York, 33) (Rome, 38) (Toronto, 31) (Whitby, 22) (New York, 19) (Rome, 30) shuffle wg miast reduce (znów max) (Toronto, 32) (Whitby, 27) (New York, 33) (Rome, 38) Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 11 2016 MapReduce – realizacja Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 12 2016 Źródła Eric Meijer: Your Mouse is a Database http://queue.acm.org/detail.cfm?id=2169076 Couchbase: Why NoSQL http://www.couchbase.com/sites/default/files/uploads/all/whitepapers/N oSQL-Whitepaper.pdf Tyler Akidau: The evolution of massive-scale data processing https://goo.gl/5k0xaL Języki i środowiska przetwarzania danych rozproszonych, Big Data i NO-SQL, Slajd 13 2016