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