Big data - przetwarzanie dużych zbiorów danych
Studia przeznaczone są dla osób, które zainteresowane są wykorzystaniem potencjału analizy dużych zbiorów danych w celu wspierania procesu podejmowania decyzji: w biznesie, nauce i innych obszarach działalności.
Przetwarzanie dużych zbiorów danych (Big Data) stało się kluczową umiejętnością specjalistów z obszaru Data Science. Coraz więcej firm z sektora prywatnego, takich jak banki, czy sieci handlowe, ale też agencji rządowych i instytucji publicznych korzysta z rezultatów osiągniętych dzięki analizie dużych zbiorów danych.
Efektywne przetwarzanie danych tego typu wymaga posiadania odpowiedniego repertuaru metod i narzędzi, które dostosowane są do specyfiki Big Data. Tego rodzaju zestaw kompetencji pozwala wspierać firmy i organizacje mające do czynienia z dużą ilością danych w podejmowaniu decyzji biznesowych, przewidywaniu kluczowych dla nich parametrów i wyciąganiu wniosków na podstawie danych historycznych.
Cel studiów
Celem studiów jest zdobycie praktycznych umiejętności analizy dużych zbiorów danych, zrozumienie podstaw, celu i obszaru zastosowania rezultatów takiej analizy. W czasie studiów słuchacze zapoznają się z najważniejszymi współczesnymi narzędziami i technologiami związanymi z zagadnieniami Big Data: Apache Hadoop i Spark w ujęciu programistycznym (MapReduce), analitycznym (Pig i Hive) i administracyjnym, a także bazy NoSQL, elementy programowania współbieżnego w językach funkcyjnych oraz podstawy uczenia maszynowego w kontekście przetwarzania dużych ilości danych.
Dla kogo przeznaczone są studia?
Studia przeznaczone są dla osób, które zainteresowane są wykorzystaniem potencjału analizy dużych zbiorów danych w celu wspierania procesu podejmowania decyzji: w biznesie, nauce i innych obszarach działalności. Na ścieżce Big Data uczymy pracy z dużymi danymi od etapu ich pozyskania i przygotowania do dalszej pracy analitycznej. Doświadczenie w pracy z technologiami jest mile widziane (np. podstawowa umiejętność programowania w dowolnym języku, podstawowa znajomość zagadnień związanych z bazami danych i językiem SQL), ale nie jest wymagane.
Czego się nauczysz?
Po zakończonej nauce Twoje kompetencje wzbogacą się o umiejętność:
- programowania w języku Python na potrzeby analityki dużych danych
- szybkiego i wydajnego przetwarzanie dużych danych
- podstawowych technik projektowania architektury chmurowej
- obsługi baz danych typu noSQL
- trenowania i oceniania modeli uczenia maszynowego
Program studiów
1. Wprowadzenie do technologii Big Data
- Słuchacze poznają historię oraz definicję zagadnienia Big Data, ekosystem stosowanych narzędzi oraz powszechnie wykorzystywanych języków programowania, podział ról i obowiązków spotykany w rozwiązaniach Big Data, różnice pomiędzy przetwarzaniem wsadowym a strumieniowym oraz ich zastosowania.
2. Programowanie zorientowane na dane
- Obsługi najważniejszych poleceń oraz narzędzi w systemie Linux, struktury i składni języka programowania Python, wykorzystania kolekcji oraz dedykowanych bibliotek do efektywnego przetwarzania danych takich jak NumPy, Pandas i Matplotlib.
3. Wprowadzenie do baz NoSQL - moduł Cassandra
- Uczestnicy w trakcie zajęć poznają rozwiązanie Apache Cassandra - pokrewne Google Bigtable lub Amazon Dynamo. Zarówno na poziomie czysto praktycznym - jak również zagłębiając się w architekturę systemów rozproszonych i analizując jak konieczność zapewnienia wysokiej dostępności wpływa na cały proces modelowania danych.
4. Wprowadzenie do baz NoSQL - moduł Mongo
- Po przeprowadzonych zajęciach słuchacze zdobędą umiejętności pozwalające na samodzielną instalacje oraz konfigurację bazy MongoDB. Zostaną zapoznani z hierarchicznym modelem danych oraz jego obsługą poprzez wbudowany w MongoDB język zapytań. Uczestnicy zdobędą umiejętności z zakresu używania Aggregation Framework, który pozwoli im na manipulacje na dużych zbiorach danych. Po zakończonych zajęciach słuchacze zdobędą również wiedzę pozwalająca im na rozpraszanie zbioru danych MongoDB za pomocą replikacji oraz shardingu.
5. Przetwarzanie Big Data z wykorzystaniem chmur obliczeniowych (CBD)
- Słuchacze nauczą się implementować infrastrukturę jako kod, przetwarzać dane wsadowe i strumieniowe używając usług chmurowych Amazon Web Services. Poznają podstawowe techniki projektowania architektury z użyciem usług chmurowych na przykładzie środowiska AWS.
6. Przetwarzanie Big Data z pomocą Apache Hadoop o Spark (HBD) - moduł Spark
- W ramach przedmiotu słuchacze zapoznają się z Apache Spark w sposób prakatyczny i kompleksowy. Poznają problemy w rozwiązaniu których pomaga ta technologia. Uczestnicy nauczą się pracować z danymi wsadowymi i strumieniowymi. Posiądą praktyczną umiejętność przetwarzania dużych danych w sposób szybki i wydajny pisząc zwięzłe i klarowne aplikacje.
7. Przetwarzanie Big Data z pomocą Apache Hadoop o Spark (HBD) - moduł Hadoop
- W trakcie zajęc słuchacze poznają w praktyce Hive, będą tworzyli tabele partycjonowane oraz kubełkowane, jak również będą przetwarzać rozproszone dane przy pomocy silników MapReduce oraz Tez. Słuchacze zapoznają się także z najważniejszymi poleceniami rozproszonego systemu plików Hadoop Distributed File System (HDFS), dowiedzą się czym jest YARN oraz jak używać zarządzanych przez niego zasobów oraz zdobędą umiejętności z zakresu tworzenie workflowów w Oozie.
8. Uczenie maszynowe w rozwiązaniach Big Data
- W ramach zajęć słuchacze nauczą się trenować i oceniać modele uczenia maszynowego we współczesnych środowiskach big data. Metody będą mieć po części charakter uniwersalny, ale w ramach zajęć skupimy się przede wszystkim na problemach przetwarzania tekstów i obrazów. Przykładowe problemy, z jakimi zmierzymy się na laboratoriach to rozpoznawanie obiektów na zdjęciach oraz rozpoznawanie wydźwięku tekstu (opinion mining albo sentiment analysis).
9. Projektowanie rozwiązań Big Data
- Słuchacze zapoznają się ze specyfiką projektowania rozwiązań Big Data. Przedstawiony zostanie szereg konkretnych technologii z rodziny Big Data, zarówno klastrowych jak i chmurowych, odpowiednich do różnego rodzaju problemów. Poruszona zostanie również integracja systemów Big Data z istniejącymi systemami i oprogramowaniem.
10. Pozyskiwanie danych oraz przetwarzanie strumieniowe
- Budować efektywny system pobierający, przetwarzający i wprowadzający strumienie danych do systemu Big Data.