Der Cloud-Markt ist weiter hart umkämpft – Microsoft und Amazon sind ganz klar (noch?) die Platzhirsche bezüglich Public Cloud Computing. In den letzten Jahren hat sich die Google Cloud als sehr gute Alternative zu den beiden genannten Angeboten etabliert. Hinsichtlich eines neuen Big Data Analytics Projekts haben wir aus folgenden Gründen auf Google Cloud gesetzt:

  1. Managed Kubernetes Cluster
  2. Intuitive Oberfläche und Produktübersicht, insbesondere wenn sich viele Softwareentwickler im Team befinden
  3. Der Hidden Champion: Google BigQuery

Mit diesem Artikel möchten wir Euch unsere Erfahrungen mit BigQuery präsentieren – zunächst zur Problematik.

Problematik

Haben Sie schon einmal versucht in einer Excel Datei mit wenigen Gigabyte eine Rechenoperation auszuführen? Das macht nicht wirklich Spaß und kostet wertvolle Zeit. In unserem Fall haben wir eine Analytics Platform konzipiert, welche in der Lage ist Terabytes an Transaktionsdaten in annehmbarer Zeit auszuwerten. Hier versagt nicht nur Excel, sondern auch die meisten Datenbanken wie z. B. MySQL, MSSQL und Oracle. Natürlich kann man für solche Herausforderungen EXASOL, SAP HANA oder ähnliche (massive parallel processing) Lösungen verwenden, jedoch kosten Sie diese Anwendungen mehrere (zehn-)tausend Euro nur für entsprechende Lizenzen.

Open Source und „Serverless“ MPP-Datenbanken

Im Gegensatz zu den oben genannten lizenzpflichtigen MPP Lösungen, existieren  auf dem Markt seit einiger Zeit Open Source und „Serverless“ Cloud MPP Datenbanken. Wir haben uns mit diversen Lösungen tiefergehend beschäftigt und fokussieren uns letztendlich auf Apache Impala (Cloudera), Pivotal Greenplum und Google BigQuery.

 

Kosten

Impala und Greenplum überzeugen hinsichtlich des Preises, da für die reine Anwendung keine Kosten entstehen. BigQuery , als spaltenorientierte Cloudlösung agiert hier mit einem Pay-As-You-Go Modell. bezüglich der Speicherung fallen rund 2 Cent pro Gigabyte und Monat an. Weiterhin berechnet Google das Abfragen der Datenbank. Dies ist mit  5€/TB  nicht zu unterschätzen – fairerweise muss man sagen, dass dabei nur die selektierten Spalten ins Gewicht fallen.

Dementsprechend sollten die Abfragen mit größter Sorgfalt konzipiert und möglichst vermieden werden.

Usability & Dokumentation

Jeder, der schon eimal eine Datenbank verwaltet hat, weiß  wie arbeitsintensiv diese Aufgabe sein kann. Bei den Open Source Lösungen kann man das Hosting natürlich selbst übernehmen – mit diesbezüglich resultierendem Overhead und mutmaßlich frustrierten Mitarbeitern. Installation, Wartung, Update und noch mehr Wartung…….Oder alternativ übernimmt das Hosting ein Drittanbieter (z. B. Pivotal oder Cloudera).

Google BigQuery gibt es nur als „serverless“ Angebot – man aktiviert die API in der Google Cloud und voilà MPP-Database-as-a-Service. Besonders erwähnenswert ist, dass BigQuery automatisch skaliert und dem Endanwender die Komplexität rund um Infrastruktur verbirgt.

Die Dokumentation aller drei Produkten ist sehr gut. Es gibt viele Tutorials bezüglich dieser drei MPP Datenbanken. Überzeugt hat uns die Dokumentation von BigQuery  – insbesondere durch die bestehende Vertrautheit der Dokumentationen hinsichtlich anderer Google Produkten.

Die Sache mit den SQL Standards…

Viele Anbieter geben offiziell an gewisse SQL Standards zu unterstützen und meistens stimmt diese Aussage. Greenplum Database kann laut eigener Aussage mit der SQL 2003 Spezifikation verwendet werden. Google BigQuery mit SQL 2011. Erwähnenswert ist hier aber, dass man immer wieder an Grenzen stößt, da manchmal Datentypen und Standardfunktionen fehlen. Unser Rat ist zunächst alle Features (SELBST!) zu prüfen. Im Fall von BigQuery wurde Decimal/Numeric, ein Datentyp zur Vermeidung von Rundungsfehlern, noch nicht offiziell unterstützt. Nach diversen  E-Mails mit dem Google Support wurden wir jedoch für die BETA Version mit Numeric freigeschaltet.

Performance

Unser Performance Ranking basiert auf den Benchmarks aus [1] und [2]. Für die Benchmarks wurden die Testdaten aus TPC-DS und TPC-H verwendet. Impala und BigQuery liefern sich dabei ein Kopf an Kopf rennen. Im „Concurrency“ Benchmark überzeugt BigQuery, und ist für unsere Zwecke auch dementsprechend auf Platz 1. Greenplum konnte Impala und BigQuery leider nicht das Wasser reichen. Unsere SQL Abfragen, die über mehrere hundert Gigabyte analysieren, wurden innerhalb weniger Sekunden beantwortet.

Unsere Empfehlung: Google BigQuery

Wir empfehlen ganz klar BigQuery . Die Einfachheit kombiniert mit dieser Leistung ist heutzutage in unseren Augen unübertroffen. Sowohl im Bereich Rapid Data Prototyping als auch für den Einsatz als Data Warehouse (Data Vault) ist BigQuery zu empfehlen. Natürlich hat BigQuery noch einige Kinderkrankheiten und fehlende Features (Rollen und Rechte lässt zu wünschen…) – dennoch finden wir, dass es sich lohnt zumindest BigQuery anzuschauen. Diesbezüglich entstehen keine Kosten.

 

Quellen:

[1] https://de.slideshare.net/cloudera/new-performance-benchmarks-apache-impala-incubating-leads-traditional-analytic-database

[2] http://blog.atscale.com/BI-Benchmarks-with-Google-BigQuery