Wiele osób używa terminu big data w raczej komercyjny sposób, jako środek wskazując, że w obliczeniach zaangażowane są duże zbiory danych, a zatem potencjalne rozwiązania muszą mieć dobrą wydajność. Oczywiście duże zbiory danych zawsze mają powiązane terminy, takie jak skalowalność i wydajność, ale co dokładnie definiuje problem jako problem dużych zbiorów danych ?
Czy obliczenia muszą być związane z jakimś zestawem konkretnych celów, takich jak eksploracja danych / wyszukiwanie informacji, lub czy algorytm dla ogólnych problemów z grafami może być oznaczony jako duże zbiory danych , gdyby zbiór danych był wystarczająco duży ? Ponadto, jak duże jest wystarczająco duże (jeśli można to zdefiniować)?
Komentarze
- Ładny artykuł o tym, kiedy Twoje dane stają się zbyt duże do normalnego użytkowania chrisstucchio.com/blog/2013/hadoop_hatred.html
- ” Cokolwiek też big do załadowania do Excela ” to kolejny żart.
- Zależy to od tego, czy jest po prostu wrzucany jako modne słowo.
- Ma ' dokładnie 1 GB. To ' jest punktem końcowym w książce zasad. Nie ma miejsca na dwuznaczność.
- To doskonałe pytanie. Jak wskazuje różnorodność odpowiedzi, definicja jest … niezdefiniowana
Odpowiedź
Do mnie (nadchodzi z relacyjnej bazy danych), „Big Data” nie dotyczy przede wszystkim rozmiaru danych (który stanowi większość odpowiedzi na te pytania).
„Big Data” i „Bad Data” to blisko związane. Relacyjne bazy danych wymagają „nieskazitelnych danych”. Jeśli dane znajdują się w bazie danych, są dokładne, czyste i w 100% wiarygodne. Relacyjne bazy danych wymagają „świetnych danych”, a zapewnienie odpowiedniego przygotowania danych przed załadowaniem ich do bazy danych wymaga ogromnej ilości czasu, pieniędzy i odpowiedzialności. Jeśli dane znajdują się w bazie danych, są to „ewangelie” i definiują systemowe rozumienie rzeczywistości.
„Big Data” rozwiązuje ten problem z innej strony. Dane są słabo zdefiniowane, wiele z nich może być niedokładnych, a wielu może faktycznie brakować. Struktura i układ danych są liniowe, a nie relacyjne.
Big Data musi mieć wystarczającą objętość, aby ilość złych lub brakujących danych stała się statystycznie nieistotna. Kiedy błędy w Twoich danych są na tyle powszechne, że wykluczają się wzajemnie, kiedy brakujące dane są na tyle małe, że można je pominąć, a Twoje wymagania dotyczące dostępu do danych i algorytmy działają nawet przy niekompletnych i niedokładnych danych, wtedy masz „Big Data” .
„Big Data” nie dotyczy tak naprawdę ilości, chodzi o charakterystykę danych.
Komentarze
- +1 Doceniam nacisk na duże zbiory danych, który nie dotyczy rozmiaru , a raczej zawartości (cech) .
- To bardzo odświeżająca perspektywa. Nigdy wcześniej tego nie słyszałem, ale to prawda. Sugeruje to, że technologie SQL i NoSQL nie są konkurencyjne, ale uzupełniają się.
- Mówisz ' o nieustrukturyzowanych danych, a nie o dużych zbiorach danych. Dane nieustrukturyzowane zwykle prowadzą do rozwiązań NoSQL i dużych zbiorów danych w aplikacji, ale nadal są one różne.
- Myślę, że jest to dobra perspektywa biznesowa tego, czym są duże zbiory danych, ale nie odpowiada na konkretne pytanie, które jest dość wskazane ” jak duże są duże zbiory danych? ”
Odpowiedź
Jak słusznie zauważyłeś, w dzisiejszych czasach „duże zbiory danych” to coś, co każdy chce powiedzieć, że „już je dostali”, co pociąga za sobą pewną luźność w definiowaniu tego terminu. „powiedz, że” z pewnością masz do czynienia z dużymi zbiorami danych, jeśli skala jest taka, że nie jest już możliwe zarządzanie bardziej tradycyjnymi technologiami, takimi jak RDBMS, przynajmniej bez uzupełniania ich technologiami Big Data, takimi jak Hadoop.
Jak duże muszą być Twoje dane, aby tak było, jest dyskusyjne. Oto (nieco prowokacyjny) post na blogu , w którym stwierdzono, że tak naprawdę nie jest w przypadku mniej niż 5 TB danych. (Żeby było jasne, nie twierdzi, że „mniej niż 5 TB to nie duże zbiory danych”, ale po prostu „mniej niż 5 TB nie jest wystarczająco duże, abyś potrzebował Hadoopa”).
Ale nawet na mniejszych zbiorach danych technologie big data, takie jak Hadoop, mogą mieć inne zalety, w tym być dobrze przystosowane do operacji wsadowych, dobrze bawić się danymi nieustrukturyzowanymi (a także danymi, których struktura nie jest znana z góry lub może się zmienić), skalowalność poziomą (skalowanie przez dodawanie większej liczby węzłów zamiast ulepszania istniejących serwerów) oraz (jako jeden z komentatorów w wyżej podlinkowanych notatkach do postów) możliwość zintegrowania przetwarzania danych z zewnętrznymi zestawami danych (pomyśl o zmniejszeniu mapy, w której mapper tworzy połączenie z innym serwerem).Inne technologie związane z dużymi zbiorami danych, takie jak bazy danych NoSql, kładą nacisk na wysoką wydajność i stałą dostępność podczas obsługi dużych zbiorów danych, a także możliwość obsługi danych częściowo nieustrukturyzowanych i skalowania w poziomie.
Oczywiście tradycyjne RDBMS mają swoje zalety, w tym gwarancje ACID (atomowość, spójność, izolacja, trwałość) i lepszą wydajność dla niektórych operacji, a także są bardziej znormalizowane, bardziej dojrzałe i (dla wielu użytkowników) bardziej znane. Tak więc nawet w przypadku bezsprzecznie „dużych” danych sensowne może być załadowanie przynajmniej części danych do tradycyjnej bazy danych SQL i wykorzystanie ich w połączeniu z technologiami dużych zbiorów danych.
Zatem bardziej hojna definicja oznaczałoby to, że masz duże zbiory danych, o ile są one wystarczająco duże, aby technologie dużych zbiorów danych zapewniały pewną wartość dodaną. Ale jak widać, może to zależeć nie tylko od rozmiaru danych, ale także od tego, jak chcesz pracować i jakie masz wymagania w zakresie elastyczności, spójności i wydajności. Sposób, w jaki wykorzystujesz swoje dane, jest bardziej odpowiedni dla pytania niż do czego ich używasz (np. eksploracja danych). To powiedziawszy, zastosowania takie jak eksploracja danych i uczenie maszynowe z większym prawdopodobieństwem przyniosą użyteczne wyniki, jeśli masz wystarczająco duży zestaw danych do pracy.
Komentarze
- Ten komentarz ma prawie 5 lat i chociaż niektóre z niego są nadal prawdziwe, próg 5 TB z bloga, który zacytowałem, z pewnością nie jest t już prawda. Na przykład firma Microsoft oferuje ” hyperscale ” bazy danych SQL o pojemności do 100 TB: docs.microsoft.com/en-us/azure/sql-database/… Oczywiście można założyć, że wiele organizacji z ogromnymi bazami danych SQL również Mam, powiedzmy, klaster Spark do obsługi różnych obciążeń. Nie ma ' reguły, którą musisz wybrać.
Odpowiedź
Całkowita ilość danych na świecie: 2,8 zetabajtów w 2012 r., szacowana na 8 zetabajtów do 2015 r. ( źródło ) i podwojony czas 40 miesięcy. Nie może być większe 🙂
Jako przykład pojedynczej dużej organizacji, Facebook pobiera 500 terabajtów dziennie do magazynu o pojemności 100 petabajtów i wykonuje 70 000 zapytań dziennie od 2012 r. ( źródło ) Ich obecny magazyn ma> 300 petabajtów.
Big data to prawdopodobnie coś, co stanowi dobry ułamek liczb na Facebooku (1 / 100 prawdopodobnie tak, 1/10000 prawdopodobnie nie: to „widmo nie jest pojedynczą liczbą).
Oprócz rozmiaru, niektóre z funkcji, które sprawiają, że jest„ duże ”to:
-
jest aktywnie analizowany, a nie tylko przechowywany (cytuj „Jeśli nie korzystasz z dużych zbiorów danych, to nie masz dużych zbiorów danych, masz tylko stos danych” Jay Parikh @ Facebook)
-
budowa i prowadzenie hurtowni danych to duży projekt infrastrukturalny
-
rozwija się w znacznym tempie
-
jest nieustrukturyzowany lub ma nieregularną strukturę
Definicja Gartnera: „Duże zbiory danych to duża ilość, duża prędkość i / lub różnorodne zasoby informacyjne, które wymagają nowych form przetwarzania ”(3V). Dlatego też uważają, że„ wielkość ”nie dotyczy wyłącznie rozmiaru zbioru danych, ale także szybkości i struktury oraz rodzaju potrzebnych narzędzi.
Komentarze
- Jeśli łączna ilość danych na świecie podwaja się co 40 miesięcy, to z pewnością może być większa niż że. ; p
- Inni opisują 4 V ' s dużych zbiorów danych IBM lub nawet 5 V ' s DAVE BEULKE 2011
- Oryginalne 3 V ' zostały opracowane w 2001 roku przez Douga Laneya Zarządzanie danymi 3D: kontrolowanie ilości, szybkości i różnorodności danych .
Odpowiedź
Dla mnie Big Data to przede wszystkim narzędzia (w końcu od tego się zaczęło); „duży” zbiór danych to taki, który jest zbyt duży, aby można go było obsługiwać za pomocą konwencjonalnych narzędzi – w szczególności wystarczająco duży, aby wymagać przechowywania i przetwarzania na klastrze, a nie na pojedynczej maszynie. Wyklucza to konwencjonalny RDBMS i wymaga nowych technik przetwarzania; w szczególności różne struktury podobne do Hadoop ułatwiają dystrybucję obliczeń w klastrze kosztem ograniczenia formy tego obliczenia. Drugie odniesienie do http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html ; Techniki Big Data to ostatnia deska ratunku dla zbiorów danych, które są po prostu zbyt duże aby poradzić sobie w jakikolwiek inny sposób. Powiedziałbym, że każdy zbiór danych do dowolnego celu mógłby zostać zakwalifikowany, gdyby był wystarczająco duży – chociaż jeśli kształt problemu jest taki, że istniejące narzędzia „dużych zbiorów danych” nie są odpowiednie, to prawdopodobnie byłoby lepiej wymyślić nową nazwę.
Oczywiście jest pewne nakładanie się; kiedy (krótko) pracowałem w last.fm, pracowaliśmy na tym samym zestawie danych 50TB przy użyciu Hadoop, a także w bazie danych SQL na dość absurdalnym serwerze (pamiętam, że miał 1 TB RAM, a to kilka lat temu). Co w pewnym sensie oznaczało, że zarówno były, jak i nie były duże zbiory danych, w zależności od tego, na jakim stanowisku pracujesz. Ale myślę, że to dokładna charakterystyka; ludzie, którzy pracowali przy zadaniach Hadoop, uznali za przydatne odwiedzanie konferencji i stron internetowych Big Data, podczas gdy ludzie, którzy pracowali przy zadaniach SQL, nie.
Odpowiedź
Dane stają się „duże”, gdy pojedynczy komputer nie może już obsłużyć ilości posiadanych danych. punkt, w którym musisz zacząć myśleć o zbudowaniu superkomputerów lub wykorzystaniu klastrów do przetwarzania danych.
Odpowiedź
Big Data jest zdefiniowane przez ilość danych, to prawda, ale nie tylko. Cechą szczególną dużych zbiorów danych jest to, że musisz przechowywać partie z różne , a czasem niestrukturalne elementy cały czas i z ton czujników , zwykle przez lata lub dekadę .
Ponadto potrzebujesz czegoś skalowalnego, aby nie zajmować pół roku na odzyskanie danych.
Nadchodzi więc Big Data, gdzie tradycyjne metody już nie działają. SQL nie jest skalowalny. SQL działa z bardzo ustrukturyzowanymi i połączonymi danymi (ze wszystkimi te Bałagan klucza podstawowego i obcego, wewnętrzne połączenie, wbudowane żądanie …).
Zasadniczo, ponieważ pamięć masowa staje się coraz tańsza i tańsza, a dane stają się coraz bardziej wartościowe, duży menedżer prosi inżyniera o zapisanie wszystkiego. mnóstwo nowych czujników z tymi wszystkimi urządzeniami mobilnymi, sieciami społecznościowymi, elementami osadzonymi … itd. Ponieważ klasyczne metody nie działają, muszą znaleźć nowe technologie (przechowywanie wszystkiego w plikach, w formacie json, z dużym indeksem, co nazywamy noSQL).
Big Data może być bardzo duże, ale mogą być nie tak duże, ale złożone, nieustrukturyzowane lub różne dane, które muszą być przechowywane szybko i na bieżąco w surowym formacie. Najpierw skupiamy się i przechowujemy, a potem zastanawiamy się, jak połączyć wszystko razem.
Odpowiedź
Podzielę się tym, czym są Big Data w genomice, w szczególności montaż de novo.
Kiedy sekwencjonujemy genom (np. wykrywamy nowe geny), pobieramy miliardy krótkich odczytów nowej generacji. Spójrz na poniższy obrazek, na którym próbujemy zebrać odczyty.
To wygląda prosto? Ale co, jeśli masz miliard tych odczytów? Co jeśli te odczyty zawierają błędy sekwencji? Co się stanie, jeśli w pamięci RAM nie ma wystarczającej ilości pamięci, aby zachować odczyty? A co z powtarzającymi się regionami DNA, takimi jak bardzo powszechny element aluminiowy ?
Montaż de-novo odbywa się poprzez utworzenie wykresu De-Bruijna :
Wykres jest sprytnie przemyślaną strukturą danych reprezentującą nakładające się odczyty. Nie jest doskonały, ale To lepsze niż generowanie wszystkich możliwych nakładek i przechowywanie ich w tablicy.
Proces asemblacji może zająć kilka dni, ponieważ istnieje wiele ścieżek, które asembler musiałby przejść i zwinąć.
W genomice masz duże zbiory danych, gdy:
- Nie możesz brutalnie wymusić wszystkich kombinacji
- Twój komputer nie ma wystarczającej ilości pamięci fizycznej do przechowywania danych
- Musisz zmniejszyć wymiary (np. zwijanie zbędnych ścieżek wykresów)
- Wkurza Cię, bo musiałbyś czekaj dni, aby cokolwiek zrobić
- Potrzebujesz specjalnej struktury danych do reprezentowania danych
- Musisz filtrować zestaw danych pod kątem błędów (np. błędów sekwencjonowania)
Odpowiedź
W algorytmach grafowych jest coś specjalnego, oryginalne pytania, które sprawiają, że są one wyjątkowe, a mianowicie zdolność do zasadniczego podziału danych.
W przypadku niektórych rzeczy, takich jak sortowanie liczb w tablicy, nie jest zbyt trudne podzielenie problemu dotyczącego struktury danych na mniejsze rozłączne fragmenty, np. Tutaj: Równoległe sortowanie przez scalanie w miejscu
Jednak w przypadku algorytmów grafowych istnieje wyzwanie polegające na tym, że znane jest znalezienie opcjonalnego partycjonowania dla danej metryki graficznej być $ NP-twardym $.
Tak więc, podczas gdy 10 GB liczb do sortowania może być bardzo łatwo dostępnym problemem na normalnym komputerze (możesz po prostu wejść za pomocą dynamicznego programowania i mieć bardzo dobrą przewidywalność co do przepływu programu), praca z wykresem 10 GB struktura danych może już być trudna.
Istnieje wiele wyspecjalizowanych struktur, takich jak GraphX , które wykorzystują metody i specjalne paradygmaty obliczeniowe, aby w pewnym stopniu obejść nieodłączne wyzwania związane z grafami.
A zatem, aby odpowiedzieć krótko na pytanie: Jak wspomnieli wcześniej inni, kiedy dane nie mieszczą się w pamięci głównej normalnego komputera, ale potrzebujesz ich wszystkich, aby rozwiązać problem, jest to dobra wskazówka, że dane są już dość duże. Dokładne oznaczenie zależy jednak trochę od struktury danych i zadanego pytania.
Odpowiedź
Myślę, że big data zaczyna się w punkcie, w którym rozmiar uniemożliwia ci robienie tego, co chcesz. W większości scenariuszy istnieje ograniczenie czasu działania, które uważa się za wykonalne. W niektórych przypadkach jest to godzina, w niektórych może to być kilka tygodni. Dopóki dane nie są wystarczająco duże, aby tylko algorytmy O (n) mogły działać w możliwym czasie, nie dotarłeś do dużych zbiorów danych.
Podoba mi się ta definicja, ponieważ jest niezależna od ilości, poziom technologii i określone algorytmy. Nie jest to agnostyk do zasobów, więc student studiów magisterskich dotrze do punktu big data na długo przed Google.
Aby móc określić ilościowo, jak duże są dane, lubię weź pod uwagę czas potrzebny do wykonania kopii zapasowej. Ponieważ technologia rozwija się, woluminy, które były uważane za duże kilka lat temu, są teraz umiarkowane. Czas tworzenia kopii zapasowych poprawia się wraz z ulepszaniem technologii, podobnie jak czas działania algorytmów uczenia się. Uważam, że jest to bardziej rozsądne aby porozmawiać o zbiorze danych, wykonanie kopii zapasowej zajmuje X godzin, a nie zbioru danych o rozmiarze Y bajtów.
PS.
Ważne jest, aby pamiętać, że nawet jeśli osiągniesz punkt big data i nie możesz uruchomić algorytmów o złożoności większej niż O (n) w prosty sposób, jest wiele do zrobienia, aby nadal korzystać z takiego algorytmu s.
Na przykład wybór funkcji może zmniejszyć liczbę funkcji, od których zależy czas działania wielu algorytmów. W wielu rozkładach długiego ogona korzystne może być skupienie się na kilku pozycjach w głowie. Możesz użyć próbki i uruchomić na niej wolniejsze algorytmy.
Komentarze
- Zwróć uwagę, że bariera $ O (n) $ również została przekroczona teraz w niektórych domenach ML. Zobacz [ grigory.us/mpc-workshop-dimacs.html] , aby zapoznać się z Warsztatami na temat algorytmów Sublinear dla ML [1]: grigory.us/mpc-workshop-dimacs.html
Odpowiedź
Dane są „dużymi zbiorami”, jeśli mają taką wielkość, że ich analiza na dwóch lub większej liczbie zwykłych komputerów jest tańsza niż na jednym komputerze wysokiej klasy.
W ten sposób Google „s” Powstał system plików BigFiles ”. Page i Brin nie mogli sobie pozwolić na wyszukany serwer Sun do przechowywania i przeszukiwania ich indeksu internetowego, więc podłączyli kilka komputerów handlowych
Odpowiedź
Zwykle zgadzam się z tym, co powiedział @Dan Levin. Ostatecznie, ponieważ chcemy wyciągnąć użyteczne wnioski z danych, a nie tylko je przechowywać, jest to umiejętność uczenia się algorytmów / systemów , co powinno określać to, co nazywa się „Big Data”. W miarę ewolucji systemów ML to, co dziś było Big Data, jutro nie będzie już Big Data.
Jednym ze sposobów zdefiniowania Big Data może być:
- Big data : dane, na podstawie których nie można budować modeli ML w rozsądnym czasie (1-2 godziny) na typowej stacji roboczej (powiedzmy 4 GB RAM)
- Non-Big data : uzupełnienie powyższego
Zakładając tę definicję, o ile pamięć zajmowana przez pojedynczy wiersz (wszystkie zmienne dla pojedynczego punktu danych) nie przekracza pamięci RAM maszyny, powinniśmy znajdować się w Non-big data reżim.
Uwaga: Vowpal Wabbit (zdecydowanie najszybszy obecnie system ML) może uczyć się na dowolnym zestawie danych, o ile pojedynczy wiersz (punkt danych) ma < RAM (powiedzmy 4 GB) . Liczba wierszy to , a nie ograniczenie , ponieważ używa SGD na wielu rdzeniach. Z doświadczenia wiemy, że dziennie możesz wytrenować model z 10 tys. Funkcji i 10 mln wierszy na laptopie.
Odpowiedź
„Duże dane ”to dosłownie dużo danych. Chociaż jest to bardziej termin marketingowy niż cokolwiek innego, zwykle oznacza to, że masz tak dużo danych, że nie możesz przeanalizować wszystkich danych naraz, ponieważ ilość pamięci (RAM) potrzebna do przechowywania danych pamięć do przetworzenia i analizy jest większa niż ilość dostępnej pamięci.
Oznacza to, że analizy zwykle muszą być przeprowadzane na losowych segmentach danych, co umożliwia budowanie modeli w celu porównania ich z innymi częściami danych.