Internet Of Things: Big Data & Analytics - Rozdział 1
1. Internet Rzeczy (IoT) tworzy rynek dla nowych połączonych rzeczy, które generują ogromną ilość danych, zwaną Big Data. Ta złożoność generuje coraz większą ilość danych, które są dostępne na wyciągnięcie ręki. Cyfrowa transformacja ma głęboki wpływ na trzy główne elementy naszego życia: biznesowe, społeczne i środowiskowe. Interakcje w tych obszarach stworzą więcej danych do napędzania nowych pomysłów, produktów i rozwiązań.
2. Dane mogą być różne, np. słowa w książce, zawartość arkusza kalkulacyjnego, zdjęcia, filmy lub ciągły strumień pomiarów z urządzenia monitorującego. Dane stają się bardziej użyteczne, gdy są interpretowane poprzez korelację lub porównanie. Ilość danych, które można zebrać, jest określana przez zdolność czujników, sieci, komputerów i innych elementów sprzętowych. Podczas zbierania danych należy określić ilość potrzebnych danych. Nie wszystkie zebrane dane mogą być używane tak jak są i mogą wymagać oczyszczenia (usunięcie nieprawidłowych lub fałszywych danych, a także usunięcie nadmiarowości). Poprzez ich analizę można poznać ciekawe spostrzeżenia i odkryć trendy. Kamera monitorująca parking w celu wykrywania przestępstw może również służyć do zgłaszania liczby i lokalizacji wolnych miejsc dla kierowców.
3. Istnieją dwa rodzaje wzrostu: liniowy i wykładniczy. Wzrost liniowy jest łatwy do zrozumienia. Na przykład, jeśli osoba przybiera na wadze ¼ kilograma każdego miesiąca, to w ciągu roku przybierze na wadze trzy kilogramy. W ciągu dwóch lat przybierze na wadze sześć kilogramów.
Wzrost wykładniczy jest znacznie bardziej dramatyczny niż wzrost liniowy. Na przykład, jeśli osoba oszczędza $1 jeden miesiąc, $2 w następnym miesiącu, $4 w następnym miesiącu, $8 w następnym miesiącu, kontynuując podwajanie kwoty oszczędzonej co miesiąc to po dwunastu miesiącach ta osoba zostanie milionerem.
4. Rozprzestrzenianie się urządzeń w IoT jest jednym z głównych powodów wykładniczego wzrostu generacji danych. Mobilne routery są coraz częściej stosowane, aby lepiej zarządzać ruchem internetowym w systemach, które dosłownie są w ruchu. IoT nie tylko rośnie, ale jego granice faktycznie się przesuwają. Wdrażanie sieci mobilnych zmienia psychologię i zachowania konsumentów i przedsiębiorstw poprzez rozszerzanie dostępu wszędzie i o każdej porze na żądanie. Wzrost danych wpływa na społeczeństwo w dziedzinie opieki zdrowotnej, handlu detalicznego i edukacji. Robotyka, urządzenia mobilne, zintegrowane systemy informatyczne i współpraca zmieniają sposób świadczenia opieki zdrowotnej. Detaliści coraz bardziej polegają na danych generowanych przez technologie cyfrowe, aby poprawić swoją rentowność. Edukacja zmienia się dzięki technologiom cyfrowym.
5. Aby pozostać konkurencyjnym na rynku biznesowym, każda organizacja musi stać się bardziej wydajna. Coraz więcej organizacji umieszcza czujniki w swoich operacjach i produktach, aby zbierać i analizować dane w celu uzyskania cennych informacji. Aby wykorzystać moc IoT, organizacje potrzebują wykwalifikowanych i kreatywnych ludzi. Platformy internetowe, takie jak Kaggle, pozwalają firmom nawiązywać kontakt z utalentowanymi ludźmi z różnych części świata. Kaggle to platforma, która łączy firmy i inne organizacje z ludźmi, którzy wiedzą, jak znaleźć odpowiedzi na pytania dotyczące ich danych. Prowadzą oni internetowe konkursy na najlepsze na świecie modele predykcyjne danych.
6. Nowoczesne technologie wykorzystywane w IoT i analizie danych mogą być również wykorzystywane do rozwiązywania problemów społecznych. Przedsiębiorcy społeczni mogą wykorzystywać zebrane dane do przewidywania trendów. Platformy internetowe, takie jak DrivenData, pozwalają firmom nawiązywać kontakt z utalentowanymi ludźmi z różnych części świata. DrivenData ma na celu wprowadzenie najnowocześniejszych praktyk w dziedzinie nauki o danych i crowdsourcingu do niektórych z największych wyzwań społecznych na świecie oraz do organizacji zajmujących się tymi wyzwaniami. Prowadzą oni internetowe konkursy, w których globalna społeczność naukowców zajmujących się danymi rywalizuje o stworzenie najlepszego modelu statystycznego dla trudnych problemów predykcyjnych. Te modele mogą następnie pomóc w dokonaniu pozytywnej zmiany na świecie.
7. Wykładniczy wzrost danych stworzył nowe zainteresowanie w technologii i biznesie, nazywane "Big Data". Zbiór danych lub problem biznesowy należy do klasyfikacji Big Data, gdy jego dane są tak ogromne, szybkie lub złożone, że staje się niemożliwe przechowywanie, przetwarzanie i analizowanie za pomocą tradycyjnych aplikacji do przechowywania i analizy danych. Objętość to tylko jedno z kryteriów, ponieważ potrzeba przetwarzania danych w czasie rzeczywistym lub integracji danych strukturalnych i niestrukturalnych może zakwalifikować problem jako problem Big Data. W odpowiedzi na tę potrzebę pojawiła się całkowicie nowa klasa platformy oprogramowania zwana platformami Big Data. Według ram interoperacyjności Big Data NIST: "Paradygmat Big Data polega na dystrybucji systemów danych na poziomo połączonych, niezależnych zasobach w celu osiągnięcia skalowalności niezbędnej do efektywnego przetwarzania obszernych zbiorów danych."
8. Aby odróżnić dane od Big Data, należy rozważyć cztery V Big Data:
- Objętość - opisuje ilość danych transportowanych i przechowywanych. Obecnym wyzwaniem jest odkrycie sposobów na jak najbardziej efektywne przetwarzanie rosnącej ilości danych
- Prędkość - opisuje tempo, w jakim te dane są generowane. Na przykład dane generowane przez miliard sprzedanych akcji na Giełdzie Papierów Wartościowych w Nowym Jorku nie mogą być po prostu przechowywane do późniejszej analizy. Infrastruktura danych musi być w stanie natychmiast reagować na wymagania aplikacji dostępujących i przesyłających strumieniowo dane.
- Różnorodność - opisuje typ danych, które rzadko są w stanie idealnie gotowym do przetwarzania i analizy. Dużym źródłem Big Data są nieustrukturyzowane dane, które szacuje się na od 70 do 90% danych na świecie.
- Prawdziwość - jest to proces zapobiegania zanieczyszczeniu danych przez nieprawidłowe dane. Na przykład, gdy ludzie rejestrują się na koncie online, często podają fałszywe dane kontaktowe. Zwiększona prawdziwość w zbieraniu danych zmniejsza ilość wymaganego oczyszczania danych.
9. Dla firm dane są nowym olejem. Podobnie jak ropa naftowa, są cenne, ale jeśli nie są rafinowane, nie można ich łatwo wykorzystać. Dane muszą być rozbite i przeanalizowane, aby miały wartość. Źródła danych dostępne dla firm rosną wykładniczo. Czujniki znajdują się w różnych zastosowaniach i są głównym źródłem Big Data. Firmy potrzebują informacji, a informacje są wszędzie w organizacji. Dwa główne rodzaje to informacje transakcyjne i analityczne. Informacje transakcyjne są rejestrowane i przechowywane w miarę jak zdarzenia się dzieją, natomiast informacje analityczne wspierają zadania analityczne menedżerów.
10. Dla firm i ludzi dane są coraz ważniejsze, co rodzi wiele pytań dotyczących prywatności i dostępności dużych publicznych i prywatnych repozytoriów danych. Dla profesjonalisty zajmującego się danymi ważne jest zrozumienie ciągłości między danymi otwartymi a danymi prywatnymi. Open Knowledge Foundation definiuje wiedzę otwartą jako "każdą treść, informację lub dane, których ludzie mogą swobodnie używać, ponownie wykorzystywać i redystrybuować bez żadnych ograniczeń prawnych, technologicznych lub społecznych". Wartość danych otwartych można natychmiast zobaczyć, przeglądając strony takie jak Portal Danych Otwartych Nowego Jorku, NYC Open Data. Gapminder to przedsiębiorstwo non-profit promujące zrównoważony rozwój globalny. Strona prezentuje angażujące analizy otwartych zbiorów danych z wyjaśniającymi statystykami na takie tematy jak zdrowie i bogactwo narodów, emisje CO2 od 1820 roku, śmiertelność dzieci i zakażenie HIV.
11. Oczekiwania dotyczące prywatności i to, co jednostka lub społeczeństwo uważa za prywatne dane, ciągle ewoluują. Wraz z rozwojem nowych aplikacji, coraz więcej danych jest wymaganych od użytkownika końcowego, aby firmy i reklamodawcy mieli więcej informacji do podejmowania decyzji biznesowych. W odpowiedzi na to powstały inicjatywy takie jak openPDS i Privacy by Design, które starają się zrównoważyć korzyści płynące z nowych źródeł danych z umożliwieniem jednostkom kontrolowania dostępu do ich danych osobowych. Obecny stan przepisów dotyczących ochrony danych na całym świecie jest różny i nadal się rozwija.
12. Dane można również klasyfikować według sposobu, w jaki są uporządkowane, czyli strukturalne lub nieustrukturyzowane.
Dane strukturalne odnoszą się do danych wprowadzanych i przechowywanych w stałych polach w pliku lub rekordzie. Dane strukturalne są łatwe do wprowadzenia, klasyfikacji, zapytania i analizy przez komputer. Obejmuje to dane znajdujące się w bazach danych relacyjnych i arkuszach kalkulacyjnych. Na przykład, gdy podajesz swoje imię i nazwisko, adres i informacje o płatności na stronie internetowej, tworzysz dane strukturalne. Struktura wymusza określony format wprowadzania danych, aby zminimalizować błędy i ułatwić komputerowi ich interpretację.
Jeśli zbiór danych jest wystarczająco mały, dane strukturalne są często zarządzane za pomocą języka programowania Structured Query Language (SQL), stworzonego do zapytań o dane w bazach danych relacyjnych. SQL działa tylko na strukturalnych zbiorach danych. Jednak w przypadku Big Data dane strukturalne mogą być częścią zbioru danych, ale narzędzia Big Data nie zależą od tej struktury. Nie jest rzadkością, aby Big Data miała zbiory danych składające się z danych nieustrukturyzowanych.
13. Dane nieustrukturyzowane nie mają organizacji, jaką można znaleźć w danych strukturalnych. Dane nieustrukturyzowane to surowe dane. Dane nieustrukturyzowane nie są uporządkowane w predefiniowany sposób. Nie posiadają stałego schematu, który identyfikuje typ danych. Dane nieustrukturyzowane nie mają ustalonego sposobu wprowadzania lub grupowania danych, a następnie analizowania danych. Przykłady danych nieustrukturyzowanych obejmują treść zdjęć, dźwięków, filmów, stron internetowych, blogów, książek itp.
14. Wraz z rozwojem chmury obliczeniowej, Big Data i potrzebą analizy danych w czasie rzeczywistym, dane nadal są przechowywane w centrach danych, ale muszą być również dostępne do analizy bliżej miejsca, w którym są tworzone (fog coumptuing). Fog computing zapewnia usługi obliczeniowe, magazynowania i sieciowe między urządzeniami końcowymi a tradycyjnymi centrami danych. Fog computing generuje ogromną ilość danych z różnych czujników i kontrolerów. Przy podejmowaniu decyzji dotyczących danych w IoT trzeba wziąć pod uwagę trzy bardzo ważne czynniki:
- energię / baterię - Ilość energii zużywanej przez czujnik IoT zależy na przykład od częstotliwości próbkowania czujnika. Zasięg między urządzeniami może również wpłynąć na ilość energii, która musi być zużyta do przesyłania danych z czujnika do kontrolerów. Im dalej znajduje się czujnik, tym więcej energii musi zużyć nadajnik radiowy.
- przepustowość - Gdy wiele czujników przesyła dane, może wystąpić opóźnienie w komunikacji, jeśli nie ma wystarczającej przepustowości dla wszystkich urządzeń. Dodatkowa analiza w mgłach może pomóc złagodzić niektóre wymagania dotyczące przepustowości komunikacji.
- opóźnienie - Analiza danych w czasie rzeczywistym jest zaburzona, gdy w sieci występuje zbyt duże opóźnienie. Bardzo ważne jest, aby wykonywać tylko niezbędne komunikacje z chmurą i obliczenia jak najbliżej źródła danych.
15. Dane mogą być w spoczynku lub w ruchu. Dane w spoczynku to statyczne dane przechowywane w fizycznej lokalizacji, natomiast dane w ruchu to dynamiczne dane, które wymagają przetwarzania w czasie rzeczywistym, zanim staną się nieaktualne lub przestarzałe. W przypadku danych w ruchu działanie na danych następuje przed ich przechowaniem. Dane w ruchu są wykorzystywane przez różne branże, które polegają na wydobyciu wartości z danych przed ich przechowaniem. Ze względu na cechy Big Data nie jest już możliwe duplikowanie i przechowywanie wszystkich tych danych w scentralizowanym magazynie danych. Decyzje i działania muszą być podejmowane na krawędzi, tam gdzie i kiedy dane są tworzone. W tym przypadku dane w ruchu pozostają tam, gdzie są tworzone i prezentują wgląd w czasie rzeczywistym, co skłania do lepszych, szybszych decyzji.
16. Firmy zdają sobie sprawę, że inwestowanie w technologie Big Data jest ważne, aby pozostać konkurencyjnym na rynku. Obecnie ich infrastruktury danych występują z serwerami baz danych i tradycyjnymi narzędziami przetwarzania danych. Dostęp do danych jest zwykle ograniczony do kilku osób w organizacji. Według NIST, paradygmat Big Data polega na dystrybucji systemów danych na poziomo sprzężonych, niezależnych zasobach, aby osiągnąć skalowalność potrzebną do efektywnego przetwarzania obszernych zbiorów danych. Jest to skalowalność pozioma. Infrastruktury te mogą umożliwić wielu użytkownikom jednoczesny, bezproblemowy i bezpieczny dostęp do danych.
17. Zanim języki programowania baz danych, takie jak SQL, stały się powszechne, profesjonaliści pracowali z bazami danych typu flat file. Baza danych typu flat file przechowuje rekordy w jednym pliku bez hierarchicznej struktury. Te bazy danych składają się z kolumn i wierszy. Kolumny nazywane są również polami, a wiersze - rekordami. Plik arkusza kalkulacyjnego jest przykładem bazy danych typu flat file.
18. Następna generacja zarządzania danymi pojawiła się wraz z systemem zarządzania bazami danych relacyjnych (RDBMS). Bazy danych relacyjne ujmują relacje między różnymi zestawami danych, tworząc bardziej użyteczne informacje. Można te relacje pokazywać za pomocą linii.
Większość komercyjnych rozwiązań RDBMS do dziś używa SQL jako języka zapytań. Przykładem SQL jest: SELECT id,name,price FROM inventory WHERE price < 20. Przykłady produktów, które używają języka zapytań strukturalnych do dostępu do danych, to MySQL, SQLite, MS SQL, Oracle i IBM DB2.
Inną cechą baz danych relacyjnych jest rozróżnienie między bazą danych a systemem zarządzania używanym do wykonywania zapytań do bazy danych. Zwykle w przypadku RDMS i podstawowej bazy danych wielu użytkowników może jednocześnie wykonywać zapytania do bazy danych relacyjnej. Użytkownik zwykle nie zna wszystkich relacji istniejących w bazie danych. Raczej użytkownik abstrahuje widok bazy danych dostosowany do swoich potrzeb.
Uproszczony widok abstrakcji danych w bazie danych relacyjnej:
Najniższy poziom abstrakcji opisuje sposób fizycznego przechowywania danych. Kolejny poziom opisuje jakie dane są przechowywane i jakie są relacje między nimi. Jest to poziom, na którym działa administrator bazy danych. Poziom użytkownika jest najwyższym poziomem i opisuje, do jakiej części bazy danych dany użytkownik lub grupa użytkowników może mieć dostęp. Może być zdefiniowanych wiele różnych widoków i wiele jednoczesnych połączeń z bazą danych w danym momencie.
Najniższy poziom abstrakcji opisuje sposób fizycznego przechowywania danych. Kolejny poziom opisuje jakie dane są przechowywane i jakie są relacje między nimi. Jest to poziom, na którym działa administrator bazy danych. Poziom użytkownika jest najwyższym poziomem i opisuje, do jakiej części bazy danych dany użytkownik lub grupa użytkowników może mieć dostęp. Może być zdefiniowanych wiele różnych widoków i wiele jednoczesnych połączeń z bazą danych w danym momencie.
W przeciwieństwie do tradycyjnych systemów zarządzania bazami danych relacyjnych SQL, które mogą być trudne do skalowania, bazy danych nierelacyjnych SQL (NoSQL) skalują się bardzo dobrze jako rozproszone bazy danych Ponieważ NoSQL radzi sobie lepiej niż RDBMS z dużymi danymi i aplikacjami internetowymi w czasie rzeczywistym, zapytania do baz danych NoSQL skupiają się na zbiorze dokumentów, takich jak informacje zebrane z witryn internetowych. NoSQL pozwala również klastrach maszyn przetwarzać dane i zapewnia lepszą kontrolę nad dostępnością.
Bazy danych NoSQL są szeroko adoptowane w celu rozwiązywania problemów biznesowych.
19. Z perspektywy zarządzania danymi, analiza była prosta, gdy tylko ludzie tworzyli dane. Jednak z powodu wszechobecności systemów automatyzacji biznesu i eksplozji wzrostu aplikacji internetowych i danych generowanych przez maszyny, analiza staje się coraz trudniejsza do zarządzania tylko za pomocą rozwiązania RDBMS.
Zamiast dużych baz danych przetwarzanych przez duże i potężne komputery mainframe i przechowywanych w gigantycznych tablicach dysków (skalowanie pionowe), rozproszone przetwarzanie danych bierze dużą ilość danych i dzieli je na mniejsze kawałki. Każdy komputer w architekturze rozproszonej analizuje swoją część obrazu Big Data (skalowanie poziome).
Hadoop został stworzony, aby radzić sobie z tymi dużymi ilościami danych Big Data. Projekt Hadoop rozpoczął się od dwóch aspektów: Hadoop Distributed File System (HDFS) to rozproszony, odporny na awarie system plików, a MapReduce to rozproszony sposób przetwarzania danych.
Baza danych NoSQL przechowuje i uzyskuje dostęp do danych inaczej niż bazy danych relacyjne. Powodem stworzenia NoSQL było uproszczenie projektowania baz danych. Łatwiej jest skalować klastry węzłów za pomocą NoSQL niż w standardowych bazach danych relacyjnych.
Najpopularniejszymi bazami danych NoSQL w 2015 roku były MongoDB, Apache Cassandra i Redis.
20. SQLite to prosty i łatwy w użyciu silnik bazy danych SQL, którego użyjesz w laboratoriach później w tym kursie. SQLite to biblioteka wewnętrzna, która używa samodzielnej, transakcyjnej bazy danych SQL. Kod dla SQLite jest w domenie publicznej, co oznacza, że jest on darmowy do użytku komercyjnego lub prywatnego. SQLite jest najczęściej wdrażaną bazą danych na świecie.
SQLite to również wbudowany silnik bazy danych SQL. W przeciwieństwie do większości innych baz danych SQL, SQLite nie ma oddzielnego procesu serwera. SQLite odczytuje i zapisuje bezpośrednio do zwykłych plików dyskowych. Ma mały rozmiar kodu, efektywnie wykorzystuje pamięć, przestrzeń dyskową i przepustowość dysku, jest bardzo niezawodny i nie wymaga konserwacji przez administratora bazy danych.
21. SQLite ma kilka przydatnych funkcji. Oto kilka z nich:
- Nie wymaga konfiguracji ani administracji. Ma łatwe w użyciu API.
- Cała baza danych jest przechowywana w jednym, wieloplatformowym pliku dyskowym. Może być używany jako format pliku aplikacji.
- Ma mały rozmiar kodu.
- Jest to wieloplatformowy SQL. Obsługuje Androida, iOS, Linuxa, Maca, Windowsa i kilka innych systemów operacyjnych.
- Źródła dla SQLite są w domenie publicznej.
- Ma samodzielny interfejs wiersza poleceń (CLI).
- Wszystkie zmiany w ramach jednej transakcji zachodzą całkowicie lub wcale. Jest to prawdziwe nawet w przypadku awarii programu lub systemu operacyjnego lub awarii zasilania.
22. Użycie języka zapytań strukturalnych (SQL) i technologii baz danych jest bardzo skuteczne w wyodrębnianiu podzbioru danych z istniejącego zbioru danych przechowywanego w bazie danych. W biznesie wiele ważnych problemów nie może być rozwiązanych tylko za pomocą prostego zapytania SQL i wymaga bardziej złożonego procesu analitycznego. Tu pojawia się potrzeba użycia bardziej potężnego języka programowania do analizy danych, takiego jak R lub Python. R i Python mają bardzo duże społeczności i wiele modułów analizy danych jest udostępnionych bezpłatnie.
Chociaż narzędzia i moduły programów firm trzecich są bardzo przydatne, bardzo ważne jest umiejętność tworzenia własnych narzędzi do analizy danych. Zdolność tworzenia narzędzi do analizy danych od podstaw pozwala na tworzenie wysoce spersonalizowanych aplikacji. Proces tworzenia narzędzia do analizy danych od podstaw można podzielić na dwie główne części: model i kod:
- Modelowanie polega na decydowaniu, co zrobić z danymi, aby osiągnąć pożądane wyniki i wnioski.
- Kod (lub program) to druga część tworzenia narzędzi do analizy danych od podstaw. Kod to program przetwarzający dane i musi być napisany zgodnie z utworzonym modelem. Chociaż model i kod są dwoma odrębnymi bytami, są powiązane, ponieważ kod jest budowany na podstawie modelu. W tym kursie skupiamy się na języku programowania znanym jako Python.