Greenplum 6 Bewertung: Alleskönner, Meister einiger

Eine MPP-Datenbank (Massively Parallel Processing) verteilt Daten und Abfragen auf jeden Knoten in einem Cluster von Commodity-Servern. Der Ansatz von Greenplum beim Aufbau eines MPP-Data-Warehouse ist einzigartig. Durch den Aufbau auf einer etablierten Open-Source-Datenbank, PostgreSQL, können sie ihre technischen Anstrengungen auf die Wertschöpfung konzentrieren, wo es darauf ankommt: Parallelisierung und zugehörige Abfrageplanung, einen spaltenweisen Datenspeicher für Analysen und Verwaltungsfunktionen.

Greenplum gehört und wird von Pivotal mit Unterstützung der Open Source-Community entwickelt und ist kostenlos unter der Apache 2-Lizenz erhältlich. Die neueste Version, Greenplum 6.0, trägt wesentlich zur Wiedereingliederung des Greenplum-Kerns in PostgreSQL bei und beinhaltet fast sechs Jahre Verbesserungen aus dem PostgreSQL-Projekt. Diese Bemühungen bedeuten, dass Greenplum in Zukunft kostenlos neue Funktionen und Verbesserungen erhalten wird, während Pivotal sich darauf konzentriert, dass diese Ergänzungen in einer parallelen Umgebung gut funktionieren.

Greenplum-Architektur

Eine MPP-Datenbank verwendet eine sogenannte Shared-Nothing- Architektur. In dieser Architektur verarbeiten einzelne Datenbankserver (basierend auf PostgreSQL), sogenannte Segmente, jeweils einen Teil der Daten, bevor die Ergebnisse an einen Master-Host zurückgegeben werden. Ähnliche Architekturen sind in anderen Datenverarbeitungssystemen wie Spark oder Solr zu sehen. Dies ist eines der wichtigsten Architekturmerkmale, mit denen Greenplum andere parallele Systeme wie maschinelles Lernen oder Textanalyse integrieren kann.

Da Solr beispielsweise über eine ähnliche verteilte Architektur verfügt, kann Greenplum die einzelnen Solr-Verarbeitungsinstanzen mit den Segmenthosts verknüpfen, um eine mehr oder weniger nahtlose Abfrage- und Analyseerfahrung bereitzustellen. Dies bedeutet auch, dass die Daten direkt verarbeitet werden, wodurch kostspielige Datenbewegungen über das Netzwerk vermieden werden.

Pivotal

Bereitstellen von Greenplum

Greenplum kann auf verschiedene Arten eingesetzt werden: in allen drei Hauptwolken über ihre jeweiligen Marktplätze, in Containern oder auf Bare-Metal-Basis. Wie bei jeder Clusteranwendung wird die beste Leistung auf dedizierten Bare-Metal-Maschinen erzielt. Ich habe in wenigen Minuten einen Cluster mit zwei Knoten auf der Google Cloud Platform bereitgestellt, in dem alle Schnickschnack erledigt sind. Und ich habe Greenplum lokal in einer VM installiert, wobei ich die vorkompilierten Binärdateien in ungefähr einer Stunde verwendet habe.

Die lokale Installation war erforderlich, da Greenplum 6 in den Clouds noch nicht verfügbar ist. Es ist für November 2019 geplant. Die lokale Installation gab mir auch die Möglichkeit, die Qualität der Greenplum-Dokumentation zu bewerten. Wie Sie es von einem ehemals geschlossenen, proprietären Produkt erwarten können, ist es ausgezeichnet.

Mit mehreren Bereitstellungsoptionen können Unternehmen ihre Bereitstellungen an die betrieblichen Anforderungen anpassen. Beispielsweise können Modelle für eine schnelle Modellentwicklung auf einem Bare-Metal-Cluster mit mehreren Knoten trainiert und dann auf einer einzelnen Instanz von Pivotal Postgres bereitgestellt werden, auf der ein REST-Endpunkt in einem Container ausgeführt wird, um das Modell zu operationalisieren.

Greenplum-Verbundabfragen

Daten sind heute überall - an verschiedenen Orten, in verschiedenen Formaten und bei verschiedenen „Temperaturen“. Das in Greenplum 5 eingeführte Pivotal Extension Framework (PXF) hat sich aus dem alten HDFS-Connector zu einer Allzweckmethode für den Zugriff auf externe Datentabellen in Greenplum entwickelt. PXF stellt auch eine Verbindung zu verschiedenen Datenformaten her, z. B. zu Textdateien (z. B. Weblogs), fremden Datenbanken, ORC, Parkett und HBase. Neue Datenquellen können mithilfe einer Java-API zu PFX hinzugefügt werden.

Durch die Kombination von PXF mit den mit PostgreSQL 9.4 bereitgestellten externen Zugriffsfunktionen kann Greenplum Verbundabfragen über Datenstandorte hinweg durchführen, einschließlich Kafka-Streams, HDFS-, Spark- und Amazon S3-Objektspeichern. Die letztere Funktion, bei der Amazon S3-Objektspeicher abgefragt werden, umfasst die native S3 SELECT-API von Amazon, mit der die Leistung durch Filtern am Rand verbessert wird. 

Verbundabfragen können nützlicher sein, als Sie sich vorstellen. Angenommen, wir möchten alle Personen lokalisieren, die:

arbeiten bei '' und kennen sich 'direkt' und deren Namen wie 'Doug' oder 'Steve' klingen und haben sich innerhalb von 24 Stunden von Singapur oder San Francisco aus telefoniert

Diese Art von Abfrage kann in einer Betrugsuntersuchung oder als Antwort auf die Informationsanfrage einer Finanzaufsichtsbehörde auftreten. In einem typischen Unternehmen werden diese Informationen auf ein halbes Dutzend oder mehr verschiedene Systeme verteilt und benötigen möglicherweise eine Woche oder länger, um beantwortet zu werden. Mit der Verbundabfrage können wir diese zu einer einzigen Abfrage zusammenfügen und innerhalb einer Stunde beantworten. In einer Zeit zunehmender regulatorischer Aufsicht haben viele Unternehmen Schwierigkeiten, Bußgelder für die verspätete Beantwortung von Anfragen zu vermeiden, und föderierte Anfragen helfen hier sehr.

Greenplum Analytics und maschinelles Lernen

Die MADlib-Erweiterung von Greenplum, eine SQL-basierte Bibliothek für Datenanalyse und maschinelles Lernen, wurde ursprünglich von mehreren Universitäten und Greenplum entwickelt. MADlib wurde entwickelt, um mit der parallelen Architektur von Greenplum zu arbeiten. Nicht alle Algorithmen für maschinelles Lernen können parallel geschaltet werden, aber für diejenigen, die dies können, erreicht MADlib eine mehr oder weniger lineare Skalierbarkeit mit der Größe des Datensatzes, während Datenübertragungen vermieden werden. MADlib enthält etwas mehr als 50 der am häufigsten verwendeten Algorithmen für maschinelles Lernen.

Eine der nützlichsten Funktionen von MADlib ist die SQL-Schnittstelle, mit der der Bürgerdatenwissenschaftler einen Mehrwert erzielen kann, ohne die Lernkurve von Python oder R erklimmen zu müssen. Modelle können über einen MADlib-REST-Endpunkt bereitgestellt werden, um die analytischen Erkenntnisse zu operationalisieren. Für ein Unternehmen mit einem mittleren Grad an analytischer Reife, das Entscheidungsmanagementstrategien für Champions / Herausforderer implementiert, kann die Verwendung von SQL die Anzahl der betrachteten Modelle erhöhen, ohne dass zusätzliche Ressourcen von einem zentralen Team umgeleitet werden.

Für den traditionellen Datenanalysten bietet der PivotalR-Connector (verfügbar in CRAN) eine klassische R-Sprachschnittstelle für MADlib, indem R-Code in die entsprechenden SQL-Anweisungen auf dem Client übersetzt und zur Ausführung an den Greenplum-Cluster gesendet wird. Dies vermeidet die Datenübertragung und ermöglicht die Manipulation großer Datenrahmen, die in R aufgrund von Speicherbeschränkungen sonst unmöglich wären.

Pivotal

HTAP Data Warehouse

Hybrid Transactional / Analytical Processing (HTAP) ist ein Begriff, der von Gartner geprägt wurde. Ihre Definition:

Hybrid Transaction / Analytical Processing (HTAP) ist eine aufstrebende Anwendungsarchitektur, die die Grenze zwischen Transaktionsverarbeitung und Analyse sprengt. Es ermöglicht fundiertere Entscheidungen in Echtzeit. 

In der Praxis bedeutet dies, dass die Anwendungsfälle des Systems eine Mischung aus langen und kurzen Abfragen sowie Aktualisierungen und Löschungen sind. Um HTAP zu unterstützen und Ressourcenmangel zu verhindern, implementiert Greenplum eine Form der SQL-Containerisierung, die als Ressourcengruppen bezeichnet wird und die Ressourcenisolierung in einer HTAP-Umgebung mit mehreren Mandanten ermöglicht. Durch die Verwendung einer Ressourcengruppe können Sie CPU, RAM (nach Gruppe oder Abfrage) und maximale Parallelität einschränken. Ressourcengruppen verbessern die Leistung bei gemischten Workloads und verhindern den Abfragewettbewerb um Ressourcen.

Einer der Hauptunterschiede zwischen PostgreSQL und Greenplum ist der Abfrageplaner. Obwohl Greenplum den PostgreSQL-Abfrageplaner beim Verzweigen geerbt hat, unterscheidet sich die effiziente Abfrageplanung in einer verteilten Umgebung erheblich von der auf einem einzelnen Computer. Aus diesem Grund machte sich Greenplum daran, einen eigenen Abfrageplaner zu erstellen, der auf dem Cascades Framework für die Abfrageoptimierung basiert. Dieser Algorithmus wertet alle möglichen Abfragepläne aus und weist ihnen Kosten zu, wobei der Plan mit den niedrigsten Kosten (am schnellsten) für die Ausführung ausgewählt wird.

Greenplum bietet einige Funktionen, mit denen der Abfrageplaner Datenverschiebungen vermeiden kann, z. B. die Möglichkeit, Dimensionstabellen auf jeden Knoten im Cluster zu replizieren, um schnellere lokale Verknüpfungsvorgänge und eine einstellbare Datenkomprimierung zu erzielen.

Die halbstrukturierte Datenverarbeitung wird von PostgreSQL geerbt und umfasst JSON und JSONB, XML, Schlüssel-Wert-Paare (HSTORE) und einfachen Text. GIN (Generalized Inverted Index), ebenfalls von PostgreSQL geerbt, kann zum Indizieren einer häufig verwendeten Textspalte verwendet werden. Für komplexere Textabfragen kann GPText verwendet werden. GPText integriert Greenplum-Segmente in Apache Solr-Shards, um Suchanfragen in natürlicher Sprache bereitzustellen. Da sich die Solr-Shards auf demselben Knoten befinden, haben sie dieselbe parallele Architektur.

Greenplum Leistung

HTAP-Datenbanken erfordern einen Spagat zwischen großen, lang laufenden analytischen Abfragen, kurzen Ad-hoc-Abfragen und den ACID-Transaktionen auf der OLTP-Seite der Gleichung. Eine gute Leistung in diesem Szenario mit gemischter Arbeitslast ist wichtig für den von Greenplum angestrebten hybriden Anwendungsfall. Der PostgreSQL 9.4-Kernel gab Greenplum 6 eine Reihe von Optimierungen, hauptsächlich zur Vermeidung von Sperren, die zu einer 60-fachen Leistungssteigerung gegenüber Greenplum 5 bei TPC-B-Benchmarks führen.

Pivotal

Angesichts der Tatsache, dass PostgreSQL den Weg für weitere Optimierungen geebnet hat (und jetzt Version 12 ist), können wir weitere Verbesserungen in Greenplum erwarten, da der Kernel in Greenplum 7 erneut aktualisiert wird.

Greenplum Command Center

Das Greenplum Command Center ist Teil des Pivotal-Angebots und bietet eine webbasierte Schnittstelle zur Überwachung und Verwaltung eines Greenplum-Clusters (oder mehrerer Cluster). Obwohl es unwahrscheinlich ist, dass Hardcore-DBAs ihre Befehlszeilenschnittstellen aufgeben, ist das Command Center ein willkommenes Verwaltungstool für Bereitstellungen auf Abteilungsebene, die möglicherweise keinen Zugriff auf einen Vollzeit-DBA haben. Ich fand es einfach zu navigieren und gut dokumentiert. Benutzer, Abfragen, Knoten, Segmente und Ressourcengruppen können einfach über die Schnittstelle verwaltet werden.

Greenplum im Unternehmen

Greenplum ist eine ideale Wahl für einen Abteilungsstandard, da es gemischte Workloads, einschließlich Predictive Analytics, auf einer einzigen Plattform bewältigen kann. Wenn Sie keine Software à la carte aus einem ELA-Menü auswählen oder dem „Pilot-Fegefeuer“ der KI entgehen möchten, bietet die Investition in den HTAP-Ansatz von Greenplum möglicherweise eine Möglichkeit, den innovativen Einsatz von maschinellem Lernen und Analytik zu einem niedrigeren Preis zu steigern als konkurrierende Lösungen.

Greenplum ist auch ein Kinderspiel für Netezza- oder Teradata-Ersatzprodukte auf Unternehmensebene. Und obwohl Greenplum nicht in der Lage ist, OLTP von Unternehmen wie Oracle Database oder Microsoft SQL Server im gesamten Unternehmen zu entfernen, eignet es sich gut für mittelgroße Transaktionssysteme.

Greenplum ist ein gutes Beispiel für die 80/20-Regel. Es führt zwar keine einzelne Aufgabe sowie kein spezielles Tool aus, aber die meisten davon sind gut genug, um 80% der Anwendungsfälle abzudecken, und dies ohne den organisatorischen und betrieblichen Aufwand, der mit dem Zusammenfügen mehrerer Systeme und Systeme verbunden ist Integration in eine Analytics-Pipeline. Dies wirkt sich stark positiv auf die Gesamtbetriebskosten aus.

Kosten : Kostenloses Open Source unter der Apache 2.0 Lizenz. 

Plattformen : Verfügbar als Quellcode; als Pakete für CentOS-, Red Hat-, Debian- und Ubuntu Linux-Distributionen; und auf den Marktplätzen Amazon Web Services, Microsoft Azure und Google Cloud Platform.