Die CONNECT Storage Engine für MySQL Zugriff auf verschiedenste Daten

Ähnliche Dokumente
Im Vergleich: Hochverfügbarkeitslösungen für die MySQL -Datenbank

Wir bauen uns ein Data Warehouse mit MySQL

MySQL New Features 5.6

PHP- Umgang mit Datenbanken (1)

Datenaustausch Hadoop & Oracle DB Carsten Herbe metafinanz Informationssysteme GmbH München

DIMEX Data Import/Export

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

Übersicht SAP-BI. DOAG Regionaltreffen

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

OXO³ technische Aspekte der Oracle EMEA internen BI Implementierung

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Reporting Lösungen für APEX wähle Deine Waffen weise

Partitionieren über Rechnergrenzen hinweg

Criteria API: Komplexe SQL Queries mit Eclipslink bauen

ODBC-Verbindungen in Oracle-Datenbanken nutzen

MySQL Architekturen für Oracle DBA's

Getting Started Conquestor

Development auf der Plattform SAP HANA

NoSQL Datenbanken am Beispiel von HBase. Daniel Georg

Developing SQL Databases (MOC 20762)

1. Übersicht Public Cloud Anbieter (PaaS und IaaS)

Einführung in Hauptspeicherdatenbanken

Dineso Software - Technische Daten

MySQL, Wohin gehst Du?

Ein regulärer Bezeichner ist ein Name der nur A-Z, a-z, 0-9 und einen Unterstrich ( _ ) enthält.

MySQL Engine Infobright: Speicherplatz sparen und schnellere Anfragen

Optimierung der Datenbankstruktur einer Web-Anwendung zur Analyse von Fertigungsprozessen

O-BIEE Einführung mit Beispielen aus der Praxis

APEX und Drucken! - Die Schöne und das Biest!

SQL Server 2012 und SharePoint im Unternehmenseinsatz. Referent Daniel Caesar

Extreme Performance mit Oracle Times Ten

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

Data Warehouse Grundlagen

Datenbanken und Datenbanktypen Tag 1 : Kapitel 1. Christian Inauen. Lernziele. Entwicklung der Datenbanken.

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Data-Warehouse-Praktikum

MyCoRe > V1.0: Technische Weiterentwicklung

Bibliothekssysteme / Verbundsysteme / Netze

Datenbanken und Informationssysteme II

IN RAM we trust! In- Memory- Datenbanken SAP HANA. BI & Big Data Juli 2015 Seite 56

Willkommen. Datenbanken und Anbindung

Code Beispiel: /* path element */ var el = rc.path("m l 0-50 l l 0-50 l l 0 50 l l 0 50 z");

Oracle Application Express 3 für die schnelle und schlanke Business Intelligence Lösung

IBM SPSS Data Access Pack Installationsanweisungen für Linux

MySQL Architekturen für Oracle DBA's

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

ERSTELLUNG EINES DATENEXPORTS MIT ORGAMAX

Unternehmensdokumente mit dem XML Publisher erzeugen

Mail Integration Solution White Paper

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

Präsentation der Bachelorarbeit

Arbeiten im Arbeitsspeicher

Roadshow - What s new in SQL Server 2016

MySQL Administration. Seminarunterlage. Version 3.02 vom

MariaDB und Galera. Chemnitzer Linux-Tage März Ralf Lang Linux Consultant & Developer B1 Systems GmbH

PDF Ausgabe mit dem BI Publisher in ApEx 3.0

SAP BO Web Intelligence auf SQL Server [A4] Üetliberg,

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Schneller als Hadoop? Einführung in Spark Cluster Computing

BusinessObjects Was ist neu?

Ablösung von Oracle-Datenbanken mit PostgreSQL oder MariaDB. Präsentation 23. Juni 2016

Mandora Business Solutions

Vielseitig und flexibel InfoZoom in Ihrem Unternehmen

Übersicht Streams nach Liste Produkte/Themen

Persistenz. Ralf Gitzel

BIW - Überblick. Präsentation und Discoverer Demonstration - Teil 1 - Humboldt Universität zu Berlin am 10. Juni 2004

Reporting mit Application Express jenseits von BI Publisher

Cognos im Siebel Marketingprozess - die Integration zweier Welten

Zugriff aus Oracle via Proc SQL: Performanceprobleme

Lotus Notes Integration mit Oracle Applicationsserver

ComfortsAutomatic-Datamodel

3. Bestehende Dateien

HANA Solution Manager als Einstieg

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle

Datenbanken Grundlagen und Design

2018/08/12 07:36 1/2 CoDaBix - Die universelle Communication Data Bridge für Industrie 4.0

sou.matrixx Systemvoraussetzungen (Hardware- und Software-Anforderungen)

MySQL Replikation - Die Eier legende Wollmilchsau?

Oracle DB 12c: Die In-Memory-Option Oliver Zandner System-Berater für Oracle-DB-Technologien Oracle Hannover. Available July 2014

Tobias Braunschober DAS GENERISCHE DWH WENIGER CODE WENIGER KOSTEN

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

XML in der Oracle Datenbank

Quest Central for Oracle

Probeklausur Datenbanken und Informationssysteme II

Extensible Visualization

Oracle Real Application Cluster

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Enterprise Content Management für Hochschulen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

7. XML-Datenbanksysteme und SQL/XML

Systematische Rasterfahndung nach Performance-Antipattern

Business Intelligence

Mehrwegbäume Motivation

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Data Mart (Star Schema) Offload nach Hadoop

RavenDB, schnell und skalierbar

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1

Transkript:

Schlüsselworte Die CONNECT Storage Engine für MySQL Zugriff auf verschiedenste Daten Ralf Gebhardt SkySQL Ab Finnland - Esbo Storage Engine, CONNECT, MySQL, MariaDB, BI, Datenbank, SQL, Datei-Formate, XML, ODBC, CSV, DB-Links Einleitung Ein wesentliches Merkmal von MySQL Server, MariaDB und anderen MySQL hervorgegangenen Varianten im weiteren Verlauf unter dem Begriff MySQL zusammengefasst - ist deren Storage- Engine-Architektur. Diese Architektur ermöglicht es, neue Storage-Engines zu implementieren und diese mit MySQL einzusetzen. Mittlerweile existieren, außer den integrierten und bekannten Engines wie InnoDB, XtraDB, MyISAM und Aria eine ganze Reihe weiterer Storage-Engines. Die meisten davon adressieren spezielle Anwendungsgebiete wie Business Intelligence (BI), NO-SQL oder Volltext-Suche. In diesem Vortrag soll die Storage Engine CONNECT vorgestellt werden. Ein wesentliches Merkmal dieser Storage Engine ist, dass über diese Engine auf verschiedenste Quellen zugegriffen werden kann, wie z.b. CSV Dateien, ODBC Datenquellen, XML oder DBF. Aus diesen Beispielen ist schon zu erkennen, dass es hier weniger um den Einsatz der Engine im Bereich OLTP geht. Interessant sein dürfte die CONNECT-Engine jedoch im BI-Umfeld, wo Daten aus verschiedensten Formaten in MySQL weiter verarbeitet oder für Auswertungen verfügbar gemacht werden müssen. Entwicklung der CONNECT-Storage-Engine Wie es typisch für Open-Source Software ist, beginnt auch die Entwicklung der CONNECT-Storage- Engine mit einer Idee, in diesem Fall von Olivier Bertrand, der früher bei IBM in der Forschung tätig war. Er wollte neue Lösungen testen, um für im BI-Umfeld notwendige Daten in einer Datenbank zugreifbar zu machen, ohne den aufwändigen Weg über ETL-Tools oder eigens entwickelte Skripte gehen zu müssen. MySQL und MariaDB bieten hier die perfekte Plattform, da die verschiedensten Plugin-APIs existieren und somit eine einfache Integration in einen Datenbankserver möglich ist. Nicht zuletzt seine 50 jährige Berufserfahrung in verschiedensten Bereichen der Datenbankentwicklung und Business-Intelligence haben dazu beigetragen, dass aus diesem interessanten Ansatz eine Storage-Engine entstanden ist. Die Zusammenarbeit mit Monty Widenius führte dazu, dass die unter GPL verfügbare Engine in MariaDB integriert wurde und dass das MariaDB Team sich nun an Test und Bug-Fixing beteiligt.

BI und nicht-relationale Daten Der klassische Weg der Datenverarbeitung im BI-Umfeld ist, die Daten in nicht-relationaler Form auf Basis von Dateien über einen ETL-Prozess in das benötigte Format zu überführen, um dieses im nächsten Schritt in die Datenbank zu laden. Erst dann ist eine effiziente Abfrage möglich. Dies führt zu komplexen und langen Prozessen mit dem Resultat, dass die Analyse meist nicht auf Echtzeit-Daten ausgeführt werden kann. Vermehrt entsteht jedoch die Anforderung, direkten Zugriff auf Daten anderer Quellen zu haben, ohne jedoch auf das Expertenwissen eines typischen ETL- Prozesses zurückgreifen zu können. Hier könnte die CONNECT-Storage-Engine in Zukunft die Lösung sein. CONNECT- vs. CSV-, Federated- und Merge-Storage-Engine Die Möglichkeiten der CONNECT-Storage-Engine überschneidet sich teilweise mit den schon länger zur Verfügung stehenden Storage-Engines CSV, Federated und Merge. Die CSV-Storage-Engine, die seit Version 5.1 in MySQL enthalten ist, wurde als Beispiel- Implementierung bereitgestellt, um die Entwicklung einer eigenen Engine darzustellen. Wie der Name schon sagt, liegt hier der Fokus ausschließlich auf dem CSV-Format. Zudem wurde bei der Entwicklung das Thema Performance nicht betrachtet. Die Implementierung von blockweisem Lesen und Indizes fehlen hier. Die Federated- sowie die Federated(X)-Storage-Engine erlauben den Zugriff auf entfernte MySQL Server, leider mit einigen Einschränkungen. Die Merge-Storage-Engine erlaubt den Zugriff auf mehrere Tabellen über die Definition einer MERGE Tabelle. Leider gibt es auch hier einige Einschränkungen, es können zum Beispiel nur Tabellen vom Typ MyISAM zusammengeführt werden, zudem müssen alle Tabellen die exakt gleiche Struktur besitzen. Mit der Einführung von Partitioning konnte ein häufig genutztes Einsatzgebiet der Merge-Tabellen besser abgedeckt werden. Die CONNECT-Storage-Engine deckt die Funktionalitäten der Storage-Engines CSV, Federated und Merge ab und hat zudem einige der Einschränkungen der anderen Engines nicht. Sie bietet zudem einen breiteren Einsatz wie XML, dbase oder ODBC-Zugriff. Die Implementierung enthält erweiterte Funktionen wie Indexierung, Komprimierung oder Condition Push Down. Sie ist jedoch auf den Einsatz im Bereich BI hin konstruiert worden und für OLTP weniger geeignet.

Hauptmerkmale der CONNECT-Storage-Engine Wie schon erwähnt setzt die CONNECT-Storage-Engine den Fokus auf Funktionalitäten, die für den Einsatz im BI Umfeld interessant sein. Der Einsatz im OLTP-Umfeld ist nicht angedacht, daher fehlen auch OLTP-typische interne Mechanismen wie Transaktionen oder Multi-View-Consistency. Die CONNECT-Storage-Engine definiert eigene Tabellen-Typen und implementiert spezielle Funktionen, welche im Folgenden näher betrachtet werden sollen. Tabellen-Typ Multiple File Werden Multiple File Tables verwendet bedeutet dies, dass die Tabellendaten physikalisch in mehreren Dateien gespeichert werden. Diese Dateien werden für eine Abfrage sequentiell abgearbeitet, aus Sicht des Anwenders handelt es sich aber um eine Tabelle. Ein möglicher Anwendungsfall wäre die Analyse von Dateien verschiedener Quellen (Log-Dateien verschiedener Server) oder verschiedener Zeiträume (Monatsabrechnungen), welche aber als eine Tabelle angesehen werden können. Es können nur sequentielle Abfragen durchgeführt werden. Eine spezielle Spalte FILEID kann zur Filterung von Dateien verwendet werden. Big File Tabellen Standard Ein- und Ausgabefunktionen werden verwendet, um auf Dateien zuzugreifen. Dies bedeutet, dass im Allgemeinen auch die Limitierungen der Betriebssysteme greifen, wie z.b. die maximale Dateigröße von 2 GB. Einige der Tabellentypen der CONNECT-Storage-Engine können auch mit Dateien mit mehr als 2GB arbeiten. Dies gilt für die Tabellentypen FIX, BIN und VEC. Hierfür muss in der OPTION_LIST oder dem COMMENT String huge=1 angegeben werden. Die Einschränkung von 2GB pro Record kann nicht aufgehoben werden. Komprimierte Tabellen Bei einigen Tabellentypen der CONNECT-Storage-Engine können auch komprimierte Dateien verwendet werden. Das aktuell unterstützte Format hierfür ist gzlib. Die Tabellentypen, welche komprimiert werden können, sind DOS, FIX, BIN, CSV und FMT. Tabellen-Typ ODBC Die CONNECT-Storage-Engine erlaubt auch den Zugriff auf andere Datenquellen über einen ODBC- Treiber, was einen Zugriff auf lokale und entfernte Datenquellen erlaubt. Die aus den Quell-Daten verwendeten Spalten können dabei frei gewählt und sortiert werden. Eventuelle WHERE Bedingungen werden an das Quell-System weitergegeben, was die Menge der zu übertragenden Daten enorm reduzieren kann.

Dieser CONNECT-Tabellentyp erlaubt den Zugriff auf alle gängigen Datenquellen, wie MS Access, Excel, Firebird, SQLServer, DB2 und Oracle. Tabellen-Typ MySQL Auch der Zugriff auf MySQL Tabellen lokaler oder entfernter MySQL-Instanzen ist möglich. Dies wäre grundsätzlich auch über die vorher beschriebenen ODBC Tables möglich, der direktere Zugriff über die integrierte MySQL Client Library verringert jedoch den Overhead und die Komplexität des Setups. Im Unterschied zur Federated und Federated/X Storage-Engine können die verwendeten Spalten auch eine Teilmenge der Quell-Tabelle sein. Zudem sind Typ-Konvertierungen möglich. Auch hier kommt die Funktionalität Condition Pushdown zum Einsatz, eine eventuelle WHERE-Bedingung wird also direkt im Quell-System durchgeführt. Außerdem kann auch die LIMIT-Funktion direkt im Quell- System durchgeführt werden. Tabellen-Typ Table List Ein weiterer interessanter Tabellen-Typ innerhalb der CONNECT-Storage-Engine erlaubt die Definition einer Tabelle, welche selbst aus einer Liste anderer Tabellen aufgebaut wird. Von der grundsätzlichen Idee her also ähnlich der MERGE-Storage-Engine. Der große Unterschied liegt darin, dass verschiedene Tabellen-Typen der CONNECT-Storage-Engine als Teil-Tabellen fungieren können. So können also auch gemischte Gruppen aus ODBC- und MySQL-Tabellen gruppiert werden, auch von verschiedenen Servern. Zudem müssen die einzelnen Tabellen nicht den gleichen Aufbau haben. Im Vergleich zur MERGE-Storage-Engine also keine Limitierung auf MyISAM und gleichen Tabellenaufbau. Zudem können Spalten frei gewählt und sortiert werden. Tabellen-Typ Column Store / VEC Speziell im Bereich der BI-Anwendungen werden oft Tabellen verwendet, die eine große Anzahl an Spalten enthalten. Dies geschieht nicht zuletzt durch die Denormalisierung von Tabellen. Abfragen werden jedoch meist auf eine kleine Anzahl der Spalten durchgeführt. Hier ist es von Vorteil wenn die Daten der verschiedenen Spalten in eigenen Dateien gehalten werden. Die CONNECT-Storage-Engine bietet hierfür eine interessante Variante vom Typ VEC. Dahinter verbergen sich Binär-Dateien, welche dafür implementiert wurden, sehr guten Daten-Durchsatz für den lesenden Zugriff zu bewerkstelligen. Die CONNECT-Storage-Engine organisiert hierbei die Daten auf der Festplatte als Spalten von Werten gleichen Attributs.

Dies bedeutet bei Nutzung einer Datei, dass zuerst die kompletten Daten der ersten Spalte abgelegt werden, danach die der zweiten Spalte, usw. Es kann jedoch auch eine Datei pro Spalte genutzt werden, was speziell bei schreibendem Zugriff und bei gleichzeitigem Zugriff mehrerer Sessions von Vorteil ist. Bei breiten Tabellen, also Tabellen mit vielen Spalten und Abfragen, die nur auf eine kleine Anzahl der Spalten zugreift, würden bei zeilenorientierter Speicherung viele Daten von Platte gelesen werden müssen, die für das Ergebnis nicht relevant sind. Bei diesem spaltenorientierten Ansatz aber werden nur die Daten gelesen, welche für die Ausführung der Abfrage wirklich benötigt werden. Dies sorgt für verminderten I/O und somit bessere Performance. Tabellen-Typ XML Die CONNECT-Storage-Engine unterstützt auch Tabellen, welche auf Basis von XML-Dateien als Quelle vorliegen. Interessant ist hier, dass jede Spalte auf einer XPath-Abfrage basiert. XML-Dateien beschreiben Informationen in Form einer Tag-Hierarchie unter Verwendung einer Baum-Struktur der Daten. Diese muss von der CONNECT-Storage-Engine in eine Tabellen-Form umgestellt werden. Hier werden Multi-Node-Werte entweder als einzelne Zeilen oder als eine Spalte mit Werten, getrennt durch Komma, dargestellt. # # # MySQL ist ein eingetragenes Warenzeichen von Oracle und/oder seiner assoziierten Unternehmen. MariaDB ist ein eingetragenes Warenzeichen von Monty Program Ab. Andere verwendete Namen von Firmen oder Produkten sind Warenzeichen ihrer jeweiligen Eigentümer. # # #

Die Seitenzahl wird von uns eingefügt! Bitte fügen Sie Ihre Kontaktadresse hinzu. Kontaktadresse: Ralf Gebhardt SkySQL Ab Tekniikantie 12 02150 Esbo Finnland Telefon: +49 (0) 7457-930 646 Fax: +49 (0) 7457-930 645 E-Mail Internet: ralf.gebhardt@skysql.com www.skysql.com