IT-Administrator März 2017

Werbung
3 I 17
Sonderdruck für EXASOL
Praxis:
Datenbanksystem
Exasol
www.it-administrator.de
Praxis
Exasol
Datenbanksystem Exasol
Die schnellste Maus
von Mexiko
ING, Sony Music, Olympus, media
control, Zalando, Stayfriends,
Coop. Die Liste der Unternehmen, die bereits mit einem Exasol-Datenbanksystem
[1] arbeiten, ist lang. Erstaunlicherweise
wird das maßgeblich in Nürnberg entwickelte Datenbanksystem wenig in der Öffentlichkeit wahrgenommen. Ein Blick in
die Ranking-Statistiken der Webseite DBEngines [2] offenbart die gefühlte Einschätzung, dass Oracle-Datenbanken, der
MySQL-Server und Microsofts SQL Server die am häufigsten eingesetzten Datenbanksysteme sind. Die drei Platzhirsche teilen den Markt nahezu alleine unter
sich auf. Exasol taucht in der Liste der beliebtesten Datenbanken, die fast 300 Einträge aufweist, nicht einmal auf.
In Entwicklung seit 2000
Da Performance im Big-Data-Zeitalter eines der herausragenden Features ist, verwundert es, dass Exasol bislang ein derartiges Mauerblümchendasein führt. Den
Entwicklern zufolge führt Exasol allerdings
das TPC-Ranking [3] an. Dabei handelt
es sich um eine Non-Profit-Organisation,
die mit dem Ziel gegründet wurde, Datenbank-Benchmarks zu definieren, die
insbesondere die Performance fokussieren.
In der Rubrik TPC-H [4] werden alle Testergebnisse von Exasol angeführt.
Die Nürnberger Entwickler stellen neben
der Performance eine hohe Skalierbarkeit
und Flexibilität bei gleichzeitiger Erschwinglichkeit in den Fokus ihrer Arbeit.
Exasol ist laut Hersteller selbstoptimierend
und Tuning-frei. Die Datenbank lässt sich
eigenständig, aber auch in Verbindung
mit Tools wie Hadoop einsetzen.
X
2
Exasol kann auf eine lange Tradition zurückblicken. Das Datenbanksystem wird
bereits seit 2000 entwickelt und ist aktuell
in Version 6 verfügbar. Es handelt sich um
eine In-Memory-Datenbank, die speziell
für Analysezwecke entwickelt wurde. Das
System lässt sich für kommerzielle Datenanwendungen bis hin zu komplexen Analysen großer Datenvolumen in Echtzeit
verwenden. Exasol ist insbesondere für
die Ausführung von Business-IntelligenceAnwendungen geeignet, verspricht die Beschleunigung des Reportings und erlaubt
die Durchführung von Real-Time-Analysen. Und all das unabhängig von der
Datenquelle, dem Einsatzmodell und der
verwendeten Programmiersprache.
Blick unter die Haube
Exasol kommt üblicherweise in einer
Cluster-Umgebung mit mehreren Servern
Auszug aus IT-Administrator März 2017
ur
–
Im Big-Data-Zeitalter sind Hochleistungsdatenbanken gefragt, die ein Maximum
an Stabilität und Performance bieten. Jedes
Prozent mehr an Leistung verspricht schnellere
Kalkulationen und Abfragen – und bringt bei
gigantischen Datenbeständen mehr Produktivität und damit mehr Wirtschaftlichkeit. Das vergleichsweise unbekannte In-Memory-System Exasol sagt etablierten
Produkten den Kampf an. IT-Administrator hat sich die Umgebung näher angesehen.
12
3RF
von Dr. Holger Reibold
en
: Juli
Quelle
me
Tro
zum Einsatz. Dabei wird kein Master-Server verwendet, der Verbindungen verwaltet und die Aufgaben delegiert. Der Client
selbst stellt entweder eine Verbindung zu
einem Cluster-Knoten oder simultan zu
allen Knoten her. Im ersten Fall spricht
man von einer Single Node, im zweiten
Fall von einer Multi Node Connection.
Single-Node-Verbindungen kommen
überwiegend in Verbindung mit älteren
Protokollen wir ODBC und JDBC zum
Einsatz. Multi-Node-Verbindungen unterstützen High-Performance-Datenübermittlungen, speziell für ETL-Szenarien.
Um ein Maximum an Performance zu erzielen, ist Exasol so konzipiert, dass das
System alle verfügbaren Hardware-Ressourcen für die Bearbeitung von Datenbankanfragen nutzt. Sowie eine Datenbankabfrage an Exasol gerichtet ist, wird
diese für alle Knoten zugänglich gemacht.
Auf jedem System erzeugt der SQL-Compiler ein Ausführungsdiagramm. Diese
Abfolge wird auf den einzelnen ClusterKnoten asynchron ausgeführt. Diese Ansätze folgen dem SPMD-Progammierparadigma (Single Program, Multiple Data).
Auch hinsichtlich des Datenmanagements
schlägt Exasol einen eigenen Weg ein.
Um die Performance zu optimieren, wer-
www.it-administrator.de
Exasol
Praxis
Nun können Sie Ihr Datenbanksystem mit
Daten füttern. Dazu stehen Ihnen verschiedene Wege offen. Mit dem SQL-Kommando IMPORT steht Ihnen ein mächtiger Befehl zur Seite. Die Exasol-Entwickler stellen
verschiedene Skripte bereit, die sich diesen
Befehl zu Nutze machen. Sie müssen lediglich die Verbindungsdaten und den Benutzer angeben. Diese Skripte finden Sie
im GitHub Repository [5]. Das IMPORTKommando können Sie unter anderem
für den Import von CSV-Dateien verwenden. Der Import kann vom lokalen System,
per (S)FTP, (S)HTTP, Amazon S3 oder
Hadoop erfolgen.
Bild 1: Bei lokalen Installationen, AWS und der Community Edition steht ein
Webinterface für die Administration von Exasol zur Verfügung.
den die Tabellen horizontal über alle Maschinen verteilt und jeder Rechner verwahrt nur einen Teil.
Exasol weiß mit den verschiedenen, teilweise inkompatiblen SQL-Dialekten umzugehen. Ein Problem, von dem Administratoren ein Lied singen können. Dazu
findet vor der eigentlichen Ausführung eine Prüfung des Codes durch einen SQLPreprozessor statt. Hat die Abfrage diesen
Schritt durchlaufen, wird sie in ein für Exasol optimiertes Format umgewandelt, damit ein Maximum an Performance sichergestellt ist. Die Ausführung verschiedener
Operationen ist in der Praxis bei replizierten Inhalten schneller. Aus diesem Grund
legt Exasol auf jedem Rechner eine Kopie
der vollständigen Tabelle an. Durch die
Cluster-weite Verfügbarkeit der Tabellen
wird die Cluster-Kommunikation reduziert
und gleichzeitig die Skalierbarkeit erhöht.
Exaplus, ein Java-basierter Client, der unter Linux und Windows läuft. Der Client
erlaubt die Ausführung von SQL-Kommandos und die Ausgabe der QueryErgebnisse. Die Arbeit mit riesigen Datenbankbeständen vereinfacht sich durch
die Verwendung von Vorlagen, in denen
beispielsweise SQL-Statements und
-Funktionen sowie Lua- und ExaplusKommandos ausgeführt werden. Der Datenbankbrowser dient der Anzeige der
existierenden Datenbankobjekte wie Schemas, Tabellen, Skripte und Nutzer. Für
die Verbindung zum Exasol-Datenbanksystem benötigen Sie neben der IP-Adresse des Datenbanksystems den Benutzernamen (sys) und das Passwort (exasol).
Nachdem Sie das Datenbanksystem mit
ersten Daten befüllt haben, können Sie
sich an die Analyse machen. Dazu nutzen
Sie den Exaplus-Client, eine SQL-Konsole
oder ein Business-Intelligence-Werkzeug.
Exasol generiert nach dem Einlesen einen
eigenen Index. Dieser muss weder gepflegt noch bearbeitet werden, denn das
Datenbanksystem erzeugt ihn bei der
Durchführung von Datenbankabfragen.
Typischerweise werden Datenbanken von
mehreren Benutzern über parallele Verbindungen gleichzeitig abgefragt. Exasol
begrenzt die Anzahl der gleichzeitig zu
verarbeitenden Abfragen standardmäßig
auf 100 SQL-Prozesse pro Rechner. Exasol
verfügt über eine sogenannte Execution
Pipeline, ein Framework, das die parallele
Verarbeitung von Anfragen optimiert.
Schnelle Inbetriebnahme
Um erste Erfahrungen mit Exasol zu sammeln, richten Sie im ersten Schritt eine
Exasol-Instanz ein. Hierfür können Sie
beispielsweise die Small-Business-Variante
verwenden. Diese steht über die Website
der Entwickler in entsprechenden Paketen
zum Download bereit. Sie können Exasol
einfach als virtuelle Maschine oder in Verbindung mit Microsoft Azure, Amazon
Web Services oder Bigstep verwenden.
Als Nächstes installieren Sie auf einem
Rechner den Exasol-Datenbank-Client
www.it-administrator.de
Bild 2: Die Nutzung der Datenbank erfolgt immer über einen SQL-fähigen Client,
vorzugsweise über den Exaplus-Client des Herstellers.
Auszug aus IT-Administrator März 2017
3
Praxis
Exasol
Exasol-Editionen
Das Exasol-Datenbanksystem ist in fünf verschiedenen Varianten verfügbar, die sich mit
ebenfalls vier Support-Paketen kombinieren
lassen: Free Small Business Edition Standard/Advanced, Enterprise Cluster Edition
Standard, Enterprise Cluster Edition Advanced und Tableau Turbo Enterprise. Das
Kennenlernen vereinfachen die Entwickler interessierten Unternehmen mit der Free Small
Business Edition Standard, die keinerlei Beschränkungen bei der Datenbankgröße vorsieht. Allerdings herrscht eine Obergrenze von
200 GByte RAM und ist lediglich die Nutzung
eines Knotens möglich. Auch Hochverfügbarkeit wird von der freien Version nicht unterstützt. Die Advanced-Variante bietet erweiterte analytische Funktionen. Die beiden Small
Business Editionen sind für den privaten und
kommerziellen Einsatz kostenlos.
Bild 3: Die Architektur des Exasol-Systems – die Daten können aus den unterschiedlichsten Quellen
stammen und für spezifische Zwecke aufbereitet werden.
Pro Query werden eine oder bei Bedarf
mehrere solcher Pipelines erzeugt. Exasol
weitet diesen Ansatz auf verteiltes Processing aus. Bei der verteilten Verarbeitung sind bei Verwendung des PipelineMechanismus der Steuerungs- und der
Datenfluss entkoppelt, die für die verteilten Berechnungen notwendig sind.
Datenintegration
In den meisten Unternehmen existieren
bereits Unmengen an Daten, die erst in
das Exasol-Datenbanksystem übernommen werden müssen, bevor sie sich einer
Analyse unterziehen lassen. Bei der Datenintegration exportieren Sie diese in
der Regel zunächst aus dem Quellsystem
heraus. Dann laden Sie sie per SQL in das
Exasol-System. Dabei sind die Formate
anzupassen sowie die verschiedenen
Schlüssel und die Datenqualität zu prüfen.
Sie sollten zudem eine Normalisierung
durchführen und die Integration der Daten in das Zielschema vornehmen.
Die Exasol-Entwickler raten davon ab,
ein Vorab-Aggregat in der Hoffnung auf
eine bessere Performance zu erstellen.
Auch auf die Nutzung von Data Marts
und die Durchführung von De-Norma-
4
lisierungen sollte verzichtet werden. Der
Big-Data-Spezialist verfügt mit dem Exaloader über einen internen Service für
den Import und Export von Daten. Der
Aufruf des Moduls erfolgt über die SQLKommandos IMPORT und EXPORT. Aktuell kann Exasol außerdem Flat-File-Dateien und Daten von Oracle-Datenbanken
sowie von jeder JDBC-kompatiblen Quelle beziehen. Das Exaloader-Modul lässt
sich insbesondere für den Remote-Zugriff
auf Daten einsetzen.
Neben dem JDBC- bringt Exasol ab Werk
den ODBC- und ADO.NET-Treiber mit,
die die Anbindung entsprechender Systeme erlauben. Es steht außerdem ein
OLE-DB-Interface zur Verfügung. Bei der
Integration dieser Treiber in Ihre Applikationen können Sie SQL-Requests an
die entsprechenden Quellen senden und
die Daten in das Exasol-System laden.
Exasol bietet außerdem ein Client-SDK,
das die Integration von Exasol in eigene
Anwendungen erlaubt.
Exemplarisch sei hier die Übernahme von
Daten aus einer MySQL-Datenbank skizziert. Besonders einfach ist das möglich,
wenn Sie mit dem Datenbankmanager
Auszug aus IT-Administrator März 2017
Die Enterprise Cluster Edition begrenzt zwar
den Arbeitsspeicher, unterstützt aber unbegrenzt viele Knoten und Hochverfügbarkeit.
Die Advanced-Cluster-Variante bietet zusätzlich Analyse- und Integrationsfunktionen.
Diese Variante eignet sich für komplexe Analyse- und Data Warehouse-Aufgaben. Speziell
für die Anforderungen im Big-Data-Umfeld
ist die Tableau Turbo Enterprise Edition konzipiert. Alle fünf Varianten lassen sich mit den
Support-Paketen Basic, Standard und Premium buchen. Außerdem steht beim Einsatz der
Small Business Edition der Support der Community zur Verfügung. Die wesentlichen Unterschiede der verschiedenen Varianten fasst
die Tabelle "Vergleich der Exasol-Editionen"
auf einen Blick zusammen.
MySQL Workbench arbeiten. Hier markieren Sie die Tabelle in der Strukturansicht mit der rechten Maustaste und führen aus dem Kontextmenü heraus den
Exportbefehl aus. Wählen Sie die Spalten
aus, die exportiert werden sollen. Wenn
Sie auch das Datum exportieren wollen,
müssen Sie das If-Statement erweitern
und "FoundingDate" durch "CURDATE"
ersetzen. Nach der Wahl des Zielverzeichnisses führen Sie den Export aus. Beachten Sie, dass MySQL Workbench die Query-Ausführung standardmäßig auf 1000
Zeilen beschränkt. Diesen Wert müssen
Sie gegebenenfalls über die Begrenzung
des Query-Menüs hochsetzen. Alternativ
können Sie auch den zugehörigen SQLBefehl verwenden. Seine allgemeine Form
lautet wie folgt:
www.it-administrator.de
Exasol
Praxis
SQL Query * SELECT … INTO… FROM…
Die Export-Datei können Sie dann mit
Hilfe vom Exaplus importieren. Intern
verwendet Exasol das Exaloader-Modul
für den Import. Dabei handelt es sich allerdings nicht um eine komplexe ETLSuite, doch für den Transfer der Daten
zwischen zwei Systemen ist das Modul
vollkommen ausreichend. Es ist ein paralleler Transport der Daten möglich. Dabei können mehrere Verbindungen zwischen der Datenquelle und dem Ziel
verwendet werden.
Datenbankadministration
Eine weitere Besonderheit von Exasol ist
die weitgehende Automatisierung der Datenbankadministration. Diese Automatisierung erfolgt auf verschiedenen Ebenen.
Die Datenverteilung innerhalb des Datenbanksystems geschieht auf Basis der Verwendungsprofile. Der Optimierungsmechanismus analysiert dazu Daten sowie
Abfragen und optimiert die Datenbankzugriffe. Das System automatisiert außerdem
die Erzeugung und Verwaltung der Indizes
on the fly auf Basis der Query-Analyse.
Der Automatismus ermittelt ferner die
optimale JOIN-Reihenfolge auf Grundlage der Tabellenstatistiken. Die Indizes
werden ebenfalls automatisch optimiert
und bei Bedarf neu berechnet. Beim Ein-
Bild 4: Die Übersicht der installierten Cluster-Knoten im Web-Interface.
satz in einer Cluster-Umgebung verteilt
Exasol die Tabelle automatisch entsprechend seinen Verteilungsattributen über
alle aktive Cluster-Konten. Tabellen mit
einer bestimmten Größe, die standardmäßig unter 100 KByte liegt, werden repliziert. Durch die lokale Verfügbarkeit
der Tabellen ist eine schnellere Verarbeitung sichergestellt.
Exasol speichert die Datenzellen im Arbeitsspeicher und auf Speichermedien
und verteilt dabei jede Zelle in physischen
Blöcken über verschiedene Knoten. Lediglich die Blöcke, die für die Bearbeitung
einer Abfrage benötigt werden, werden
in den Hauptspeicher geladen. Indizes erfahren eine ähnliche Behandlung. Normalerweise müssen keine vollständigen
Datensätze im Speicher gehalten werden.
Das System lädt die Daten bei Bedarf in
den Hauptspeicher und tauscht sie gegebenenfalls aus. Das Datenbanksystem
überwacht permanent den Speicherverbrauch und gibt Hinweise zur Optimierung aus.
Vergleich der Exasol-Editionen
Small Business
Edition Standard/
Advanced
Enterprise Cluster
Edition Standard
Enterprise Cluster
Edition Advanced
Tableau
Turbo Enterprise
Maximale Datenbankgröße
Unbegrenzt
Unbegrenzt
Unbegrenzt
Pro Lizenz
Maximales RAM pro Instanz
200 GByte
Pro Lizenz
Pro Lizenz
Unbegrenzt
1
Unbegrenzt
Unbegrenzt
Unbegrenzt
Hochverfügbarkeit
Nein
Ja
Ja
Ja
Dual Data Center
Nein
Nein
Optional
Nein
Nur Advanced Edition
Nein
Ja
Nein
Ja
Ja
Ja
Ja
Optional / Optional /
Nein
Ja / Ja /
Optional
Ja / Ja /
Optional
Nein / Ja /
Optional
Ja / Ja /
Nein
Ja / Nein /
Optional
Ja / Nein /
Optional
Ja / Nein /
Optional
Nein
Ja
Ja
Nein
Knoten
Erweiterte Analyse und
Integrationsfunktionen
Community Support
Basic / Standard /
Premium Support
ISO-Image / SW-Appliance /
HW-Appliance
Cloud
www.it-administrator.de
Auszug aus IT-Administrator März 2017
5
Praxis
Exasol
Exasol besitzt ein automatisiertes Ressourcenmanagement, das die verfügbaren
Ressourcen den aktiven Datenbankabfragen zuweist. Dabei werden die Ressourcen CPU, RAM, Netzwerk und Speichermedien überwacht. Der Clou: Das System
versucht, so viele Ressourcen wie möglich
zu nutzen, um die interne Parallelisierung
zu optimieren. Prinzipiell werden alle Abfragen gleich behandelt, allerdings ist auch
eine Priorisierung möglich.
Das Ressourcen-Management unterscheidet zwischen kurzen und langen Abfragen. Kurze Anfragen werden weniger als
fünf, lange mehr als fünf Sekunden ausgeführt. Überschreitet die Anzahl der langen die Anzahl der kurzen Abfragen, werden die langen für eine bestimmte Zeit
angehalten. Dieses Konzept bewirkt einen
optimalen Durchsatz.
Voraussetzungen für Clustering
Exasol ist für den Cluster-Einsatz konzipiert und wird in einem solchen Einsatzszenario unter Exacluster OS ausgeführt,
einem Linux-Derivat. Dieses speziell für
die Ausführung von Datenbankapplikationen entwickelte System soll Hochverfügbarkeit bieten und die Administration
von Cluster-Konfigurationen vereinfachen. Bekanntermaßen werden beide
Aufgaben mit der wachsenden Zahl an
Knoten schwieriger. Damit sich Exacluster
OS auch von Monitoring-Umgebungen
wie beispielsweise Nagios überwachen
lässt, bietet das Betriebssystem ein XMLRPC-Interface.
Die Installation eines Clusters setzt zunächst verschiedene Vorbereitungen auf
Seiten der Netzwerk- und Firewall-Konfiguration voraus. Dann stehen verschiedene Hardware-spezifische Änderungen
an, konkret müssen Sie beispielsweise EFI
deaktivieren und PXE und Hyper Threading im BIOS der Cluster-Rechner aktivieren. Wichtig sind zudem verschiedene
RAID-spezifische Anpassungen.
Bezüglich der Netzwerkkonfiguration
ist zu beachten, dass ein Cluster-Knoten
mit zwei Netzwerktypen verbunden ist:
dem "privaten" Netzwerk für die Cluster-interne Kommunikation und dem
"öffentlichen" Netzwerk für den Zugriff
6
der Clients. Die beiden Netzwerktypen
müssen verschiedene Voraussetzungen
erfüllen. So etwa muss das private Netzwerk völlig isoliert von anderen Netzwerken sein. Es wird ausschließlich für
das Booten und die Konfiguration der
Knoten verwendet.
Über das private Netzwerk werden außerdem Status- und Konfigurationsinformationen ausgetauscht. Auch der Payload,
der zwischen den Knoten abgeglichen
wird, läuft über das private Netzwerk. Aus
technischer Sicht ist wichtig, dass es sich
um ein Layer-2-Netzwerk (VLAN) handelt und der Traffic nicht gefiltert wird.
Das Netzwerk lässt sich außerdem über
die Cluster-Administration verwalten.
Das öffentliche Netzwerk kommt für den
Client-Zugriff auf die Datenbankinstanzen und das administrative Interface zum
Einsatz. Die IP-Adressen sollten keine
Lücken in der Nummerierung aufweisen
und wie folgt konfiguriert sein:
- 10.1.50.10 = Lizenz-Server
- 10.1.50.11 = Datenbankknoten 1
- 10.1.50.12 = Datenbankknoten 2
- 10.1.50.13 = Datenbankknoten 3
Hierbei sollte es sich um ein Layer-3Netzwerk handeln, wobei sich die Knoten über die webbasierte Administrationsschnittstelle integrieren lassen. Auch
auf Seiten der Switch-Ports sind manche
Anpassungen notwendig. Hier sind gegebenenfalls die Optionen "EEE" (Energy
Efficient Ethernet) und "Flow Control"
zu deaktivieren.
Auf Seiten der Hardware sind einige Voraussetzungen zu erfüllen. Sie sollten lediglich 64-Bit-Intel-CPUs mit SSE3-Unterstützung (Xeon Woodcrest oder höher)
verwenden. Als Speichersysteme kommen
SAS und RAID in Frage.
Cluster-Aufbau im Detail
Ein Exasol-Cluster besteht aus einem
oder mehreren Datenbankknoten und
mindestens einem Managementknoten,
der auch als Lizenz-Server bezeichnet
wird. Die Datenbankknoten tragen die
eigentliche Rechenlast und sind auch für
die Speicherung zuständig. Die Datenbankknoten sollten möglichst eine ho-
Auszug aus IT-Administrator März 2017
mogene Hardware-Ausstattung besitzen.
Das Exasol-Modul ExaStorage ist für die
gleichmäßige Lastverteilung zuständig.
Insbesondere unterschiedliche RAM-Bestückungen und verschiedene Festplattengrößen können aber unerwünschte
Nebeneffekte bewirken, die im ungünstigsten Fall in eine ungenügende Performance umschlagen.
Einzig die Lizenz-Server werden innerhalb des Clusters von einer lokalen Festplatte gebootet. Sie installieren sie mithilfe
eines ISO-Images. Die Datenbankserver
werden vom Lizenz-Server per PXE
(DHCP und TFTP) gebootet. Die Anforderungen an die Hardware-Ausstattung
eines Datenbankknotens sind indes nicht
übermäßig hoch. Der Server sollte mindestens über zwei Quad-Core-Intel-CPUXEON-Prozessoren und 32 GByte RAM
verfügen. Benötigt werden außerdem ein
Hardware-RAID-Controller und folgende
Festplattenkonfiguration:
- 2x 128 GByte SAS/RAID-1
(Betriebssystem)
- 4x 300 GByte SAS/RAID-1
(Datenbanklast)
Außerdem werden zwei Netzwerkadapter
benötigt. Ein Lights-Out-ManagementInterface wird empfohlen.
Fazit
Mit Exasol steht Unternehmen eine Highend-Datenbanklösung für höchste Anforderungen zur Verfügung. Gemäß den
Ergebnissen der TPC stellt das System die
gesamte Konkurrenz in Sachen Performance in den Schatten. Dank der kostenlosen Small-Business-Variante können Sie
sich in aller Ruhe einen Eindruck von
dem System verschaffen. (ln)
Link-Codes
[1] Homepage Exasol
H3P31
[2] DB-Engines Ranking
H3P32
[3] Homepage TPC
H3P33
[4] TPC-H Benchmark
H3P34
[5] Import-Skripte für Exasol
H3P35
Link-Codes eingeben auf www.it-administrator.de
Herunterladen