Ich beschäftige mich beruflich gerade mit Big Data und deren Verarbeitung. Ich habe nur ein Problem, dass ich keine gute Hardware dafür habe, oder gar ein ganzes Rechenzentrum, wie Fratzenbuch oder google. Bei der Suche nach einem Lösungsansatz für mein Problem bin ich auf Hypertable gestoßen.
Wenn es um BigData geht, wird oft HBase genannt. In keinen kleinen Prototypen, war HBase in einer VM gefühlt viel langsamer als Hypertable. Deswegen habe ich mich weiter mit Hypertable und nicht mit HBase beschäftigt.
Hypertable ist eine verteilte Datenbank, welche vom Prinzip her spaltenorientiert ist. Dieses Prinzip kann mit Hilfe der Access Groups aufweichen. Man sollte auf keinen Fall versuchen aus Hypertable eine zeilenorientierte Datenbank zu machen.
Die aktuelle Zielarchitektur sieht wie folgt aus: Auf 12 Rechnern läuft HDFS von Hadoop. Auf 11 von diesen Rechnern läuft eine RangeServer für Hypertable. Dieser ist auf 2 GB RAM Verbrauch limitiert, weiterhin habe ich einen Hypertable Master. In meiner Testdatenbank habe ich 15,3 Millarden Datensätze. Auf dieser Datenmenge dauert ein random-Zugriff im Durchschnitt 200ms, wobei die worstcase Zeit einige Sekunden beträgt. Ich bin zumindest begeistert, dass ich derartig große Datenmengen auf schlechter Commodity Hardware handeln kann. Ich bin mir sicher, dass ich mit der zur Verfügung stehenden Hardware noch mehr haus holen kann.