Viele Menschen verwenden den Begriff Big Data eher kommerziell , um darauf hinzuweisen, dass große Datenmengen in die Berechnung einbezogen sind und daher potenzielle Lösungen eine gute Leistung aufweisen müssen. Natürlich sind Big Data immer mit Begriffen wie Skalierbarkeit und Effizienz verbunden, aber was genau definiert ein Problem als Big Data- Problem?
Muss sich die Berechnung auf bestimmte Zwecke beziehen, wie z. B. Data Mining / Informationsabruf, oder könnte ein Algorithmus für allgemeine Grafikprobleme als Big Data bezeichnet werden, wenn der Datensatz groß genug wäre ? Auch, wie groß ist groß genug (wenn dies definiert werden kann)?
Antworten:
Für mich (mit Hintergrundinformationen zu relationalen Datenbanken) geht es bei "Big Data" nicht in erster Linie um die Datengröße (was den größten Teil der bisherigen Antworten ausmacht).
"Big Data" und "Bad Data" hängen eng zusammen. Relationale Datenbanken erfordern "makellose Daten". Wenn sich die Daten in der Datenbank befinden, sind sie genau, sauber und zu 100% zuverlässig. Relationale Datenbanken erfordern "hervorragende Daten", und es wird viel Zeit, Geld und Rechenschaftspflicht aufgewendet, um sicherzustellen, dass die Daten gut vorbereitet sind, bevor sie in die Datenbank geladen werden. Wenn sich die Daten in der Datenbank befinden, handelt es sich um „Evangelium“ und definiert das Systemverständnis der Realität.
"Big Data" geht dieses Problem aus der anderen Richtung an. Die Daten sind schlecht definiert, ein Großteil davon ist möglicherweise ungenau und ein Großteil fehlt. Die Struktur und das Layout der Daten sind im Gegensatz zur relationalen linear.
Big Data muss über ein ausreichendes Volumen verfügen, damit die Menge fehlerhafter oder fehlender Daten statistisch unbedeutend wird. Wenn die Fehler in Ihren Daten häufig genug sind, um sich gegenseitig zu beseitigen, wenn die fehlenden Daten verhältnismäßig klein genug sind, um vernachlässigbar zu sein, und wenn Ihre Datenzugriffsanforderungen und -algorithmen auch bei unvollständigen und ungenauen Daten funktionieren, haben Sie "Big Data". .
Bei "Big Data" geht es nicht wirklich um das Volumen, sondern um die Eigenschaften der Daten.
quelle
Wie Sie zu Recht bemerken, ist "Big Data" heutzutage etwas, von dem jeder sagen möchte, dass es es es gibt, was eine gewisse Lockerheit in der Definition des Begriffs mit sich bringt. Im Allgemeinen würde ich jedoch sagen, dass Sie mit Big Data zu tun haben, wenn die Skalierung so ist, dass es nicht mehr möglich ist, mit traditionelleren Technologien wie RDBMS umzugehen, zumindest ohne sie durch Big Data-Technologien wie Hadoop zu ergänzen.
Wie groß Ihre Daten tatsächlich sein müssen, damit dies der Fall ist, ist umstritten. Hier ist ein (etwas provokanter) Blog-Post , der behauptet, dass dies bei weniger als 5 TB Daten nicht wirklich der Fall ist. (Um es klar auszudrücken: "Weniger als 5 TB sind keine großen Datenmengen", aber nur "Weniger als 5 TB sind nicht groß genug, um Hadoop zu benötigen".)
Aber auch bei kleineren Datenmengen können Big-Data-Technologien wie Hadoop andere Vorteile haben: Sie eignen sich gut für Batch-Vorgänge, spielen gut mit unstrukturierten Daten (sowie Daten, deren Struktur nicht im Voraus bekannt ist oder sich ändern könnte), horizontale Skalierbarkeit ( Skalierung durch Hinzufügen weiterer Knoten, anstatt die vorhandenen Server aufzufrischen) und (als einer der Kommentare zu den oben verlinkten Postnotizen) die Möglichkeit, Ihre Datenverarbeitung in externe Datensätze zu integrieren (denken Sie an eine Map-Reduzierung, bei der der Mapper arbeitet) einen anderen Server anrufen). Andere mit Big Data verbundene Technologien, wie beispielsweise NoSql-Datenbanken, legen Wert auf schnelle Leistung und konsistente Verfügbarkeit beim Umgang mit großen Datenmengen sowie auf die Fähigkeit, halb unstrukturierte Daten zu verarbeiten und horizontal zu skalieren.
Traditionelle RDBMS haben natürlich ihre eigenen Vorteile, einschließlich ACID-Garantien (Atomicity, Consistency, Isolation, Durability) und einer besseren Leistung für bestimmte Vorgänge sowie standardisierter, ausgereifter und (für viele Benutzer) vertrauter. Selbst für unbestritten "große" Daten kann es sinnvoll sein, mindestens einen Teil Ihrer Daten in eine herkömmliche SQL-Datenbank zu laden und diese in Verbindung mit Big-Data-Technologien zu verwenden.
Eine großzügigere Definition wäre also, dass Sie über Big Data verfügen, solange es groß genug ist, dass Big Data-Technologien einen Mehrwert für Sie darstellen. Wie Sie jedoch sehen, hängt dies nicht nur von der Größe Ihrer Daten ab, sondern auch davon, wie Sie damit arbeiten möchten und welche Anforderungen Sie an Flexibilität, Konsistenz und Leistung haben. Wie Sie Ihre Daten verwenden ist mehr relevant für die Frage , als was Sie es verwenden für (zB Data Mining). Allerdings führen Anwendungen wie Data Mining und maschinelles Lernen mit größerer Wahrscheinlichkeit zu nützlichen Ergebnissen, wenn Sie über ausreichend große Datenmengen verfügen, mit denen Sie arbeiten können.
quelle
Gesamtdatenmenge in der Welt: 2,8 Zetabyte im Jahr 2012, schätzungsweise 8 Zetabyte bis 2015 ( Quelle ) und eine Verdopplungszeit von 40 Monaten. Kann nicht größer werden :)
Als Beispiel für eine einzelne große Organisation zieht Facebook 500 Terabyte pro Tag in ein 100-Petabyte-Warehouse und führt dort ab 2012 70.000 Abfragen pro Tag durch ( Quelle ). Das aktuelle Warehouse ist> 300 Petabyte.
Big Data ist wahrscheinlich ein guter Bruchteil der Facebook-Zahlen (1/100 wahrscheinlich ja, 1/10000 wahrscheinlich nicht: es ist ein Spektrum, keine einzelne Zahl).
Zusätzlich zur Größe sind einige der Merkmale, die es "groß" machen:
es wird aktiv analysiert und nicht nur gespeichert (Zitat: "Wenn Sie keine großen Datenmengen nutzen, haben Sie keine großen Datenmengen, Sie haben nur einen Datenstapel" Jay Parikh @ Facebook)
Der Aufbau und Betrieb eines Data Warehouse ist ein großes Infrastrukturprojekt
es wächst mit einer erheblichen Geschwindigkeit
es ist unstrukturiert oder unregelmäßig aufgebaut
Gartner-Definition: "Big Data ist ein Datenbestand mit hohem Datenvolumen, hoher Geschwindigkeit und / oder großer Vielfalt, der neue Verarbeitungsformen erfordert." auch über die Geschwindigkeit und Struktur und die Art der Werkzeuge benötigt.
quelle
Für mich geht es bei Big Data in erster Linie um die Tools (schließlich hat dort alles begonnen). Ein "großer" Datensatz ist zu groß, um mit herkömmlichen Tools verarbeitet zu werden. Insbesondere ist er groß genug, um Speicher und Verarbeitung auf einem Cluster statt auf einem einzelnen Computer zu erfordern. Dies schließt ein herkömmliches RDBMS aus und erfordert neue Verarbeitungstechniken. Insbesondere machen es verschiedene Hadoop-ähnliche Frameworks einfach, eine Berechnung über einen Cluster zu verteilen, was die Form dieser Berechnung einschränkt. Ich werde den Verweis auf http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html unterstützen; Big-Data-Techniken sind der letzte Ausweg für Datensätze, die einfach zu groß sind, um auf andere Weise verarbeitet zu werden. Ich würde sagen, dass jeder Datensatz für jeden Zweck qualifiziert werden kann, wenn er groß genug ist. Wenn die Form des Problems jedoch so ist, dass vorhandene "Big Data" -Tools nicht geeignet sind, ist es wahrscheinlich besser, einen neuen zu entwickeln Name.
Natürlich gibt es einige Überlappungen; Als ich (kurz) bei last.fm gearbeitet habe, haben wir mit Hadoop an demselben 50-TB-Datensatz gearbeitet und auch in einer SQL-Datenbank auf einem ziemlich lächerlichen Server (ich erinnere mich, dass es 1 TB RAM hatte, und das ist ein paar Jahre her). In gewisser Hinsicht bedeutete dies, dass es sich um Big Data handelte und nicht, je nachdem, an welchem Job Sie arbeiteten. Aber ich denke, das ist eine genaue Charakterisierung. Die Leute, die an den Hadoop-Jobs gearbeitet haben, fanden es nützlich, zu Big Data-Konferenzen und Websites zu gehen, während die Leute, die an den SQL-Jobs gearbeitet haben, dies nicht taten.
quelle
Daten werden "groß", wenn ein einzelner Computer die Datenmenge, die Sie haben, nicht mehr verarbeiten kann. Es gibt den Punkt an, an dem Sie über den Bau von Supercomputern oder die Verwendung von Clustern zur Verarbeitung Ihrer Daten nachdenken müssen.
quelle
Big Data definiert sich über das Datenvolumen, das stimmt, aber nicht nur. Die Besonderheit der großen Daten ist , dass Sie eine speichern müssen viele von verschiedenen und manchmal unstrukturierten stopft alle Zeiten und von einem Tonnen Sensoren , in der Regel für Jahre oder zehn Jahre .
Außerdem benötigen Sie etwas Skalierbares, damit Sie nicht ein halbes Jahr brauchen, um Daten wiederzufinden.
Hier kommt Big Data, bei dem herkömmliche Methoden nicht mehr funktionieren. SQL ist nicht skalierbar. Und SQL arbeitet mit sehr strukturierten und verknüpften Daten (mit all dem Primär- und Fremdschlüssel-Durcheinander, Innerjoin, einer imbrizierten Anfrage ...).
Grundsätzlich, weil Speicher immer billiger wird und Daten immer wertvoller werden, bitten große Manager den Ingenieur, alles aufzuzeichnen. Fügen Sie zu dieser Unmenge neuer Sensoren all diese mobilen, sozialen Netzwerke, eingebetteten Dinge hinzu ... usw. Da klassische Methoden nicht funktionieren, müssen sie neue Technologien finden (alles in Dateien speichern, im json-Format, mit großem Index, was wir noSQL nennen).
Big Data kann also sehr groß sein, aber nicht so groß, sondern komplex, unstrukturiert, oder verschiedene Daten, die schnell und laufend in einem unformatierten Format gespeichert werden müssen. Zuerst konzentrieren und speichern wir uns und dann schauen wir, wie wir alles miteinander verbinden können.
quelle
Ich werde berichten, wie Big Data in der Genomik aussieht, insbesondere bei der De-novo-Assemblierung.
Wenn wir Ihr Genom sequenzieren (z. B. neue Gene nachweisen), werden Milliarden von Lesevorgängen der nächsten Generation durchgeführt. Schauen Sie sich das Bild unten an, in dem wir versuchen, einige Lesevorgänge zusammenzustellen.
Das sieht einfach aus? Aber was ist, wenn Sie Milliarden davon lesen? Was ist, wenn diese Lesevorgänge Sequenzfehler enthalten? Was ist, wenn Ihr RAM nicht genug Speicher hat, um die Lesevorgänge aufrechtzuerhalten? Was ist mit repetitiven DNA-Regionen, wie dem alltäglichen Alu-Element ?
Die De-novo-Montage erfolgt durch Erstellen eines De-Bruijn-Diagramms :
Das Diagramm ist eine ausgeklügelte Datenstruktur zur Darstellung überlappender Lesevorgänge. Es ist nicht perfekt, aber es ist besser, als alle möglichen Überlappungen zu generieren und sie in einem Array zu speichern.
Der Assemblierungsprozess kann Tage in Anspruch nehmen, da es eine ganze Reihe von Pfaden gibt, die ein Assemblierer durchlaufen und reduzieren müsste.
In der Genomik haben Sie große Datenmengen, wenn:
https://en.wikipedia.org/wiki/De_Bruijn_graph
quelle
Graph-Algorithmen haben eine Besonderheit: Sie stellen originelle Fragen, die sie zu etwas Besonderem machen, nämlich der Fähigkeit, die Daten im Wesentlichen zu partitionieren.
Für einige Dinge, wie das Sortieren von Zahlen in einem Array, ist es nicht allzu schwierig, das Problem in der Datenstruktur in kleinere disjunktive Teile zu unterteilen, z. B. Here: Parallel in Place Merge Sort
Während also das Sortieren von 10 GB Zahlen auf einem normalen PC ein sehr gut zugängliches Problem sein kann (Sie können einfach über dynamische Programmierung einsteigen und haben eine sehr gute Vorhersagbarkeit über den Programmfluss), kann das Arbeiten mit einer 10 GB-Grafikdatenstruktur bereits eine Herausforderung darstellen.
Es gibt eine Reihe spezialisierter Frameworks wie GraphX, die Methoden und spezielle Rechenparadigmen verwenden, um die inhärenten Herausforderungen von Graphen einigermaßen zu umgehen.
Um Ihre Frage kurz zu beantworten: Wie bereits von anderen erwähnt, ist ein guter Hinweis darauf, dass Ihre Daten bereits ziemlich groß sind, wenn Ihre Daten auf einem normalen PC nicht in den Hauptspeicher passen, Sie jedoch alle benötigen, um Ihr Problem zu lösen. Die genaue Beschriftung hängt allerdings meiner Meinung nach ein wenig von der Datenstruktur und der gestellten Frage ab.
quelle
Ich denke, dass Big Data an dem Punkt beginnt, an dem die Größe Sie daran hindert, das zu tun, was Sie wollen. In den meisten Szenarien gibt es eine Laufzeitbegrenzung, die als machbar angesehen wird. In einigen Fällen ist es eine Stunde, in einigen Fällen können es einige Wochen sein. Solange die Daten nicht groß genug sind, dass nur O (n) -Algorithmen im realisierbaren Zeitrahmen ausgeführt werden können, haben Sie keine großen Datenmengen erreicht.
Ich mag diese Definition, da sie unabhängig von Volumen, Technologie und spezifischen Algorithmen ist. Es ist keine Ressourcenunabhängigkeit, so dass ein Doktorand den Punkt von Big Data schon lange vor Google erreicht.
Um quantifizieren zu können, wie groß die Daten sind, überlege ich mir, wie viel Zeit für die Sicherung erforderlich ist. Seit dem technologischen Fortschritt sind die Volumina, die vor einigen Jahren als groß galten, moderat. Die Sicherungszeit verbessert sich mit der Verbesserung der Technologie ebenso wie die Laufzeit der Lernalgorithmen. Ich halte es für sinnvoller, über einen Datensatz zu sprechen, dessen Sicherung X Stunden dauert, und nicht über einen Datensatz von Y Bytes.
PS.
Es ist wichtig zu beachten, dass Sie auch dann viel tun können, wenn Sie den Big-Data-Punkt erreicht haben und keine Algorithmen mit einer Komplexität von mehr als O (n) auf einfache Weise ausführen können, um weiterhin von solchen Algorithmen zu profitieren.
Zum Beispiel kann die Featureauswahl die Anzahl der Features reduzieren, von denen viele Algorithmen abhängig sind. Bei vielen Langschwanzverteilungen kann die Fokussierung auf wenige Objekte im Kopf von Vorteil sein. Sie können ein Beispiel verwenden und darauf die langsameren Algorithmen ausführen.
quelle
Daten sind "Big Data", wenn sie so groß sind, dass die Analyse auf zwei oder mehr Standardcomputern kostengünstiger ist als auf einem High-End-Computer.
So entstand im Wesentlichen das Google-Dateisystem "BigFiles". Page und Brin konnten sich keinen ausgefallenen Sun-Server leisten, um ihren Webindex zu speichern und zu durchsuchen. Deshalb schlossen sie mehrere Standardcomputer an
quelle
Ich stimme dem zu, was @Dan Levin bereits gesagt hat. Letztendlich ist es die Fähigkeit von Lernalgorithmen / -systemen, die bestimmen sollen, was als "Big Data" bezeichnet wird, da wir nützliche Erkenntnisse aus den Daten ziehen wollen, anstatt sie nur zu speichern . Während sich ML-Systeme weiterentwickeln, wird Big Data morgen nicht mehr Big Data sein.
Eine Möglichkeit, Big Data zu definieren, könnte sein:
Angenommen, diese Definition gilt, solange der von einer einzelnen Zeile belegte Speicher (alle Variablen für einen einzelnen Datenpunkt) den Arbeitsspeicher der Maschine nicht überschreitet, sollten wir uns im Nicht-Big-Data- Regime befinden.
Hinweis: Vowpal Wabbit (mit Abstand das derzeit schnellste ML-System) kann mit jedem Datensatz lernen, solange eine einzelne Zeile (Datenpunkt) <RAM ist (z. B. 4 GB). Die Anzahl der Zeilen ist keine Einschränkung, da SGD für mehrere Kerne verwendet wird. Erfahrungsgemäß können Sie ein Modell mit 10.000 Funktionen und 10 Millionen Zeilen an einem Tag auf einem Laptop trainieren.
quelle
"Big Data" ist buchstäblich nur eine Menge Daten. Obwohl dies eher ein Marketingbegriff ist, bedeutet dies in der Regel, dass Sie über so viele Daten verfügen, dass Sie nicht alle Daten gleichzeitig analysieren können, da die Größe des Arbeitsspeichers (RAM) ausreicht, um die Daten im Arbeitsspeicher zu speichern verarbeiten und analysieren ist größer als der verfügbare Speicher.
Dies bedeutet, dass in der Regel Analysen an zufälligen Datensegmenten durchgeführt werden müssen, sodass Modelle erstellt werden können, die mit anderen Teilen der Daten verglichen werden können.
quelle