Jak duże są duże zbiory danych?

86

Wiele osób używa terminu „ duże zbiory danych” w sposób raczej komercyjny , jako sposób wskazania, że ​​duże zbiory danych są zaangażowane w obliczenia, a zatem potencjalne rozwiązania muszą mieć dobrą wydajność. Oczywiście duże zbiory danych zawsze zawierają 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ć powiązane z jakimś zestawem konkretnych celów, takich jak eksploracja danych / wyszukiwanie informacji, czy może algorytm dla ogólnych problemów z grafem można nazwać dużymi danymi, jeśli zestaw danych jest wystarczająco duży ? A także, jak duży jest wystarczająco duży (jeśli można to zdefiniować)?

Rubens
źródło
7
Fajny artykuł o tym, kiedy Twoje dane stają się zbyt duże do normalnego użytkowania chrisstucchio.com/blog/2013/hadoop_hatred.html
Johnny000
18
„Wszystko, co jest zbyt duże, aby załadować do Excela”, to żart.
Spacedman
1
To zależy od tego, czy jest to po prostu wrzucane jako modne słowo.
John Robertson,
To dokładnie 1 GB. To jest granica w zbiorze reguł. Nie ma miejsca na dwuznaczności.
Hack-R
To doskonałe pytanie. Jak wynika z różnorodności odpowiedzi, definicja jest ... niezdefiniowana
Manu H

Odpowiedzi:

86

Dla mnie (pochodzącego z relacyjnej bazy danych) „Big Data” nie dotyczy przede wszystkim rozmiaru danych (który stanowi większość dotychczasowych odpowiedzi).

„Duże zbiory danych” i „Złe dane” są ściśle powiązane. Relacyjne bazy danych wymagają „nieskazitelnych danych”. Jeśli dane znajdują się w bazie danych, są dokładne, czyste i w 100% niezawodne. Relacyjne bazy danych wymagają „wielkich danych” oraz ogromnej ilości czasu, pieniędzy i odpowiedzialności, aby upewnić się, że dane są dobrze przygotowane przed załadowaniem ich do bazy danych. Jeśli dane znajdują się w bazie danych, są to „ewangelia” i definiują systemowe rozumienie rzeczywistości.

„Big Data” rozwiązuje ten problem z drugiej strony. Dane są źle zdefiniowane, wiele z nich może być niedokładnych, a znacznej części może brakować. Struktura i układ danych są liniowe, a nie relacyjne.

Big Data musi mieć wystarczającą ilość wolumenu, aby ilość złych danych lub brakujących danych stała się statystycznie nieistotna. Kiedy błędy w Twoich danych są na tyle powszechne, że się wzajemnie znoszą, gdy brakujące dane są wystarczająco małe, aby były nieistotne, a wymagania i algorytmy dostępu do danych działają nawet przy niekompletnych i niedokładnych danych, wtedy masz „Big Data” .

„Big Data” nie dotyczy tak naprawdę wolumenu, lecz cech charakterystycznych danych.

rolfl
źródło
6
+1 Bardzo doceniam nacisk na to, że duże zbiory danych nie polegają na tym, jaki jest rozmiar , a raczej na zawartości (cechach) .
Rubens
4
To bardzo odświeżająca perspektywa. Nigdy wcześniej tego nie słyszałem, ale to bardzo prawda. Sugeruje to, że technologie SQL i NoSQL nie są konkurencyjne, ale się uzupełniają.
Jay Godse
7
Mówisz o nieuporządkowanych danych, a nie dużych danych. Nieustrukturyzowane dane zwykle prowadzą do rozwiązań NoSQL i dużych zbiorów danych w aplikacji, ale nadal są różne.
TheGrimmScientist,
Myślę, że jest to dobra perspektywa biznesowa dotycząca 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”?
wabbit
33

Jak słusznie zauważasz, w dzisiejszych czasach „duże zbiory danych” to coś, co każdy chce powiedzieć, że je posiada, co pociąga za sobą pewną swobodę w definiowaniu tego terminu przez ludzi. Ogólnie rzecz biorąc, powiedziałbym, ż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 dużych zbiorów danych, takimi jak Hadoop.

Jak duże muszą być twoje dane, aby tak się stało, można dyskutować. Oto (nieco prowokujący) post na blogu, który twierdzi, że tak naprawdę nie jest tak w przypadku mniej niż 5 TB danych. (Żeby było jasne, nie twierdzi, że „mniej niż 5 TB to nie duże dane”, ale po prostu „Mniej niż 5 TB nie jest wystarczająco duże, abyś potrzebował Hadoop”.)

Ale nawet w przypadku mniejszych zestawów danych technologie dużych zbiorów danych, takie jak Hadoop, mogą mieć inne zalety, w tym dobre dopasowanie do operacji wsadowych, dobrą zabawę z nieustrukturyzowanymi danymi (a także danymi, których struktura nie jest wcześniej znana lub może ulec zmianie), skalowalność pozioma ( skalowanie poprzez dodanie większej liczby węzłów zamiast rozbudowywania istniejących serwerów) i (jako jeden z komentujących powyższe uwagi do postów) możliwość zintegrowania przetwarzania danych z zewnętrznymi zestawami danych (pomyśl o zmniejszeniu mapy tam, gdzie mapujący wykonuje połączenie z innym serwerem). Inne technologie związane z dużymi zbiorami danych, takie jak bazy danych NoSql, kładą nacisk na szybką wydajność i stałą dostępność przy obsłudze dużych zestawów danych, a także zdolność do obsługi częściowo nieustrukturyzowanych danych 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. Dlatego nawet w przypadku niekwestionowanych „dużych” danych sensowne może być załadowanie przynajmniej części danych do tradycyjnej bazy danych SQL i użycie ich w połączeniu z technologiami dużych zbiorów danych.

Bardziej hojną definicją byłoby posiadanie dużych zbiorów danych, o ile jest wystarczająco duże, aby technologie dużych zbiorów danych stanowiły dla ciebie pewną wartość dodaną. Ale jak widać, może to zależeć nie tylko od wielkości danych, ale także od tego, jak chcesz z nimi pracować i jakie masz wymagania w zakresie elastyczności, spójności i wydajności. Jak używasz danych jest bardziej istotne pytanie, niż to, co używasz go do (np data mining). To powiedziawszy, zastosowania takie jak eksploracja danych i uczenie maszynowe są bardziej prawdopodobne, aby uzyskać przydatne wyniki, jeśli masz wystarczająco duży zestaw danych do pracy.

Tim Goodman
źródło
Ten komentarz ma prawie 5 lat i chociaż niektóre z nich są nadal prawdziwe, próg 5 TB z blogu, który zacytowałem, z pewnością nie jest już prawdziwy. Na przykład firma Microsoft oferuje bazy danych SQL w „hiperskali” 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 dużymi bazami danych SQL ma również , powiedzmy, klaster Spark do obsługi różnych obciążeń. Nie ma zasady, że musisz wybrać jedną lub drugą.
Tim Goodman
21

Całkowita ilość danych na świecie: 2,8 zetabajtów w 2012 r., Szacuje się, że do 2015 r. Osiągnie 8 zetabajtów ( źródło ), a czas podwojenia wyniesie 40 miesięcy. Nie może być większy niż to :)

Jako przykład jednej dużej organizacji Facebook pobiera 500 terabajtów dziennie do magazynu o pojemności 100 petabajtów i uruchamia na nim 70 tys. Zapytań dziennie od 2012 r. ( Źródło ) Ich obecny magazyn wynosi> 300 petabajtów.

Big data jest prawdopodobnie czymś, co stanowi dobry ułamek liczb na Facebooku (1/100 prawdopodobnie tak, 1/10000 prawdopodobnie nie: to spektrum nie jest pojedynczą liczbą).

Oprócz rozmiaru niektóre funkcje, dzięki którym jest on „duży”, to:

  • jest aktywnie analizowany, a nie tylko przechowywany (cytat „Jeśli nie korzystasz z dużych danych, to nie masz dużych danych, masz tylko stos danych” Jay Parikh @ Facebook)

  • budowa i prowadzenie hurtowni danych to duży projekt infrastrukturalny

  • rośnie w znacznym tempie

  • jest nieustrukturyzowany lub ma nieregularną strukturę

Definicja Gartnera: „Duże zbiory danych to zasoby informacji o dużej objętości, dużej prędkości i / lub dużej różnorodności, które wymagają nowych form przetwarzania” (The 3Vs). Sądzą więc, że „duży charakter” nie dotyczy wyłącznie wielkości zbioru danych, ale także o prędkości i strukturze oraz rodzaju potrzebnych narzędzi.

Alex I.
źródło
2
Jeśli całkowita ilość danych na świecie podwaja się co 40 miesięcy, to z pewnością może być większa. ; p
Air
2
Inni opisują 4 V dużych zbiorów danych IBM, a nawet 5 V DAVE BEULKE 2011
nmtoken
2
Oryginalne 3 V zostały opracowane w 2001 r. Przez Doug Laney 3D Data Management: Controlling Data Volume, Velocity and Variety .
nmtoken
13

Dla mnie Big Data dotyczy przede wszystkim narzędzi (w końcu od tego się zaczęło); „duży” zestaw danych to taki, który jest zbyt duży, aby można go było obsłużyć konwencjonalnymi narzędziami - w szczególności wystarczająco duży, aby wymagać przechowywania i przetwarzania w klastrze, a nie na pojedynczym komputerze. Wyklucza to konwencjonalny RDBMS i wymaga nowych technik przetwarzania; w szczególności różne struktury zbliżone do platformy 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 są ostatecznością dla zbiorów danych, które są po prostu zbyt duże, aby można je było obsłużyć w jakikolwiek inny sposób. Powiedziałbym, że dowolny zestaw danych do dowolnego celu mógłby się kwalifikować, gdyby był wystarczająco duży - choć jeśli kształt problemu jest taki, że istniejące narzędzia do „dużych zbiorów danych” nie są odpowiednie, prawdopodobnie lepiej byłoby wymyślić nowy imię.

Oczywiście pewne nakładanie się; kiedy (krótko) pracowałem w końcu.fm, pracowaliśmy nad tym samym zestawem danych o pojemności 50 TB przy użyciu Hadoop, a także w bazie danych SQL na dość niedorzecznym serwerze (pamiętam, że miał 1 TB pamięci RAM i to jest kilka lat temu). Co w pewnym sensie oznaczało, że oba były i nie były dużymi zbiorami danych, w zależności od zadania, nad którym pracowałeś. Ale myślę, że to dokładna charakterystyka; ludzie, którzy pracowali nad zadaniami Hadoop, uznali za przydatne przejście na konferencje i strony internetowe Big Data, podczas gdy ludzie, którzy pracowali nad zadaniami SQL, nie.

lmm
źródło
10

Dane stają się „duże”, gdy pojedynczy komputer towarowy nie jest już w stanie obsłużyć ilości danych. Oznacza punkt, w którym musisz zacząć myśleć o budowaniu superkomputerów lub używaniu klastrów do przetwarzania danych.

TheGrimmScientist
źródło
7

Big Data jest definiowane przez ilość danych, to prawda, ale nie tylko. Specyfika dużym danych jest to, że trzeba przechowywać wiele o różnych i czasami niestrukturalnych spożywczych wszystkich czasów iz mnóstwem czujników , zwykle przez lata lub dekady .

Ponadto potrzebujesz czegoś skalowalnego, aby znalezienie danych nie zajęło Ci pół roku.

Oto Big Data, gdzie tradycyjna metoda już nie działa. SQL nie jest skalowalny. A SQL działa z bardzo ustrukturyzowanymi i połączonymi danymi (z całym tym bałaganem klucza podstawowego i obcego, wewnętrznym połączeniem, zaimprowizowanym żądaniem ...).

Zasadniczo, ponieważ przechowywanie staje się tańsze i tańsze, a dane stają się coraz bardziej cenne, wielki menedżer prosi inżyniera o zapisanie wszystkiego. Dodaj do tego mnóstwo nowych czujników z tymi wszystkimi urządzeniami mobilnymi, sieciami społecznościowymi, osadzonymi rzeczami ... itd. Aby klasyczne metody nie działały, muszą znaleźć nowe technologie (przechowywanie wszystkiego w plikach, w formacie json, z dużym indeksem, co nazywamy noSQL).

Tak więc Big Data może być bardzo duży, ale może nie być tak duży, ale może składać się z nieustrukturyzowanych lub różnych danych, które muszą być przechowywane szybko i na bieżąco w surowym formacie. Na początku koncentrujemy się i przechowujemy, a następnie przyglądamy się, jak połączyć wszystko ze sobą.

tanou
źródło
6

Podzielę się tym, jak Big Data jest w genomice, w szczególności w montażu de-novo.

Kiedy sekwencjonujemy twój genom (np. Wykrywając nowe geny), bierzemy miliardy krótkich odczytów nowej generacji. Spójrz na obrazek poniżej, gdzie staramy się zebrać kilka odczytów.

wprowadź opis zdjęcia tutaj

To wygląda prosto? Ale co, jeśli masz miliard takich odczytów? Co jeśli te odczyty zawierają błędy sekwencji? Co jeśli Twoja pamięć RAM nie ma wystarczającej ilości pamięci, aby zachować odczyty? Co z powtarzającymi się regionami DNA, takimi jak bardzo powszechny element Alu ?

Montaż de-novo odbywa się poprzez zbudowanie wykresu De-Bruijna :

wprowadź opis zdjęcia tutaj

Wykres jest sprytnie wydobytą strukturą danych, która reprezentuje nakładające się odczyty. To nie jest idealne, ale lepsze niż generowanie wszystkich możliwych nakładek i przechowywanie ich w tablicy.

Proces montażu może zająć kilka dni, ponieważ istnieje wiele ścieżek, które asembler musiałby przejść i zwinąć.

W genomice masz duże dane, 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 .: zwinięte zbędne ścieżki wykresu)
  • Wkurza cię to, że będziesz musiał czekać dni, aby cokolwiek zrobić
  • Potrzebujesz specjalnej struktury danych do reprezentowania danych
  • Musisz przefiltrować zestaw danych pod kątem błędów (np .: błędów sekwencjonowania)

https://en.wikipedia.org/wiki/De_Bruijn_graph

SmallChess
źródło
5

Algorytmy graficzne mają specjalną cechę, oryginalne pytania, które czynią je wtedy wyjątkowymi, a mianowicie umiejętność dzielenia danych w zasadzie.

W przypadku niektórych rzeczy, takich jak sortowanie liczb w tablicy, nie jest zbyt trudne podzielenie problemu dotyczącego struktury danych na mniejsze części rozłączne, np. Tutaj: Sortowanie scalone równolegle w miejscu

NPhard

Tak więc, podczas gdy sortowanie 10 GB liczb może być bardzo łatwo dostępnym problemem na normalnym komputerze (można to zrobić za pomocą programowania dynamicznego i mieć bardzo dobrą przewidywalność przepływu programu), praca ze strukturą danych grafowych 10 GB może już stanowić wyzwanie.

Istnieje wiele wyspecjalizowanych struktur, takich jak GraphX, wykorzystujących metody i specjalne paradygmaty obliczeniowe, aby w pewien sposób ominąć nieodłączne wyzwania związane z grafami.

Tak więc, aby krótko odpowiedzieć na twoje pytanie: jak wspomniano wcześniej, gdy dane nie mieszczą się w głównej pamięci na normalnym komputerze, ale potrzebujesz ich wszystkich, aby odpowiedzieć na problem, to dobra wskazówka, że ​​Twoje dane są już dość duże. Dokładne etykietowanie zależy jednak od struktury danych i zadanego pytania.

Hlaubisch
źródło
4

Myślę, że duże zbiory danych zaczynają się w punkcie, w którym rozmiar uniemożliwia robienie tego, co chcesz. W większości scenariuszy istnieje limit czasu działania, który uważa się za możliwy. W niektórych przypadkach jest to godzina, w niektórych przypadkach może to być kilka tygodni. Dopóki dane nie są wystarczająco duże, aby tylko możliwe algorytmy O (n) mogły działać w możliwym przedziale czasowym, nie osiągnąłeś dużych zbiorów danych.

Podoba mi się ta definicja, ponieważ jest niezależna od głośności, poziomu technologii i określonych algorytmów. Zasoby nie są zależne od zasobów, więc absolwent osiągnie punkt big data przed Google.

Aby móc oszacować, jak duże są dane, lubię rozważać czas potrzebny na ich utworzenie. Ponieważ technologia się rozwija, wolumeny, które kilka lat temu były uważane za duże, są obecnie umiarkowane. Czas tworzenia kopii zapasowej poprawia się wraz z poprawą technologii, podobnie jak czas działania algorytmów uczenia się. Wydaje mi się, że rozsądniej jest rozmawiać o zbiorze danych, którego utworzenie zajmuje X godzin, a nie o zbiorze danych o bajtach Y.

PS.

Ważne jest, aby pamiętać, że nawet jeśli osiągnąłeś punkt dużych zbiorów danych i nie możesz uruchomić algorytmów złożoności więcej niż O (n) w prosty sposób, możesz wiele zrobić, aby nadal korzystać z takich algorytmów.

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ługich ogonów korzystne może być skupienie się na kilku przedmiotach w głowie. Możesz użyć próbki i uruchomić na niej wolniejsze algorytmy.

DaL
źródło
O(n)
4

Dane to „duże zbiory danych”, jeśli mają taką objętość, że ich analiza na dwóch lub więcej komputerach towarowych jest tańsza niż na jednym komputerze wysokiej klasy.

Zasadniczo tak powstał system plików Google „BigFiles”. Page i Brin nie mogli sobie pozwolić na fantazyjny serwer Sun do przechowywania i przeszukiwania swojego indeksu internetowego, więc podłączyli kilka komputerów towarowych

Neil McGuigan
źródło
1

Zgadzam się z tym, co powiedział już @Dan Levin. Ostatecznie, ponieważ chcemy wyciągnąć użyteczne spostrzeżenia z danych, a nie tylko je przechowywać, to zdolność uczenia się algorytmów / systemów powinna określać to, co nazywa się „Big data”. W miarę ewolucji systemów ML dzisiejsze Big Data nie będzie już jutro Big Data.

Jednym ze sposobów definiowania dużych zbiorów danych może być:

  • Duże zbiory danych : dane, na których nie można zbudować modeli ML w rozsądnym czasie (1-2 godziny) na typowej stacji roboczej (powiedzmy 4 GB pamięci RAM)
  • Dane inne niż duże : uzupełnienie powyższych

Przyjmują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 reżimie danych innych niż duże .

Uwaga: Vowpal Wabbit (zdecydowanie najszybszy system ML na dzień dzisiejszy) może uczyć się na dowolnym zestawie danych, o ile pojedynczy wiersz (punkt danych) wynosi <RAM (powiedzmy 4 GB). Liczba wierszy nie jest ograniczeniem, ponieważ używa SGD na wielu rdzeniach. Mówiąc z doświadczenia, możesz trenować model z 10k funkcjami i rzędami 10MN na laptopie w ciągu jednego dnia.

wabbit
źródło
1

„Duże zbiory danych” to dosłownie dużo danych. Chociaż jest to bardziej termin marketingowy niż cokolwiek innego, implikacja jest zwykle taka, że ​​masz tyle danych, że nie możesz przeanalizować wszystkich danych naraz, ponieważ ilość pamięci (RAM) potrzebna do przechowywania danych w pamięci przetworzenie i analiza jest większa niż ilość dostępnej pamięci.

Oznacza to, że analizy należy zwykle przeprowadzać na losowych segmentach danych, co pozwala budować modele w celu porównania z innymi częściami danych.

JacKyou
źródło