SlideShare a Scribd company logo
1 of 37
SkySQL
MariaDB
CONNECT Storage Engine
Serge Frezefond
http://serge.frezefond.com
@sfrezefond

SkySQL Ab 2012 Confidential
Goal of the CONNECT Storage Engine :
BI on various file formats
Most of the data in companies is in various external
datasources (many in non relational database format) :
–
–
–
–
–
–
–

Dbase, Firebird, SQlite
DOS,FIX,BIN,CSV
XML
stored per column...
Microsoft Access & Excel
Distributed mysql servers
Non MySQL relational databases: Oracle, SQL Server…

Targeting BI data access on these formats.
Not targeted for OLTP
SkySQL Ab 2012 Confidential
Behind the scene
Traditional BI
Data is processed by an ETL
– Change in the data model(denormalization...)

Agregates are computed
– Need to be defined and maintained

Might need to move data out of RDBMS to other kind of
datastore
– OLAP, Collumn store, Hadoop/Hbase ...

Specific tools are used to query the data
IT is involved to maintain this machinery
SkySQL Ab 2012 Confidential
MariaDB CONNECT Storage Engine : created
by Olivier Bertrand
IBM database researcher
– Independant, 50 years expertise programing

Very experienced on databases
– Worked on system-R, DB2, natural language query ...

Discovered MySQL when looking for friendly place to test
new concepts.(2004)
– Decided to go open source
– Started to appreciate the MariaDB openess and
friendlyness

SkySQL Ab 2012 Confidential
How did the CONNECT Storage Engine move to
MariaDB?
Olivier met Monty creator of MySQL and MariaDB a few years
ago (2004 for other concepts)
MariaDB team helped Olivier to work with them:
– First access to launchpad, go to linux,

Olivier start working with MariaDB team :
– Testing, bug fixes, security, test cases, doc ...

MariaDB and Olivier agreed that is was ready to be released and
supported under GPL
– MariaDB flexibility ease integration
SkySQL Ab 2012 Confidential
The CONNECT Storage Engine
Uses the MySQL Plugin Architecture
•
•
•

Plugin Architectureis a major differentiator of MySQL
Datastores can interact with the MySQL sql layer
Allow advanced interaction
– Specific Create Table parameters(MariaDB)
– Auto-discovery of table structure (MariaDB)
– Condition push down

•

Allow join with other storage engines
– InnoDB / MyISAM tables

SkySQL Ab 2012 Confidential
The CONNECT Storage Engine
implements advanced features
Support of external data sources :


–

Support multi files tables
Support Big File Table > 2G
Support virtual tables (DIR)
Add autocreate of tables :





–





Odbc, MySQL, WMI, INI ...

The structure is discovered from the data source

Use MariaDB create table new parameters capability
(avoid comments polution)
Support compressed tables
SkySQL Ab 2012 Confidential
The CONNECT Storage Engine
implements advanced features


Add indexing to files
– index optimized for read



Condition Push down
– Used with ODBC and MySQL to push condition to the
target database. Big perf gain.




Support MariaDB virtuals columns
Support of special columns :
– Rowid, fileid, tabid, servid



Muti tables table (like merge)
– Different structure, not myisam only, remotely distributed
tables
SkySQL Ab 2012 Confidential
The CONNECT Storage Engine
implements advanced features
Catalog table :
– For Example Describe for odbc table
– No need to do create table
– Access to data / column metadata

Memory file maping
– For file type table (not xml)

Table format .ini
Multiple CONNECT tables can be created on the same
underlying file
– Indexes can be shared between tables
SkySQL Ab 2012 Confidential
XML Table Type
<?xml version="1.0" encoding="ISO-8859-1"?>
<BIBLIO SUBJECT="XML">
<BOOK ISBN="9782212090819" LANG="fr" SUBJECT="applications">
<AUTHOR>
<FIRSTNAME>Jean-Christophe</FIRSTNAME>
<LASTNAME>Bernadac</LASTNAME>
</AUTHOR>
<TITLE>Construire une application XML</TITLE>
<PUBLISHER>
<NAME>Eyrolles</NAME>

<PLACE>Paris</PLACE>

</PUBLISHER>
<DATEPUB>1999</DATEPUB>
</BOOK>
</BIBLIO>
October 2012

SkySQL Ab 2012 Confidential
XML Table Type
create table xsampall (
isbn char(15) field_format='@ISBN',
language char(2) field_format='@LANG',
authorln char(20) field_format='AUTHOR/LASTNAME',
title char(32) field_format='TITLE',
translated char(32) field_format='TRANSLATOR/@PREFIX',
tranln char(20) field_format='TRANSLATOR/LASTNAME',
publisher char(20) field_format='PUBLISHER/NAME',
year int(4) field_format='DATEPUB')
engine=CONNECT table_type=XML file_name='Xsample.xml'
tabname='BIBLIO' option_list='rownode=BOOK,skipnull=1';
October 2012

SkySQL Ab 2012 Confidential
XMLTable Type
query result
select isbn, subject, title, publisher from xsamp2;

ISBN

SUBJEC

TTITLE

PUBLISHER

9782212090819 applications Construire une application XML

Eyrolles Paris

9782840825685 applications XML en Action

Microsoft Press

Can also generate HTML

October 2012

SkySQL Ab 2012 Confidential
XCOL Table Type
Name
Sophie
Valentine

childlist
Manon, Alice, Antoine
Arthur, Sidonie, Prune

CREATE TABLE xchild (
mother char(12) NOT NULL flag=1,
child varchar(30) DEFAULT NULL flag=2
) ENGINE=CONNECT table_type=XCOL tabname='children'
option_list='colname=child';

October 2012

SkySQL Ab 2012 Confidential
XCOL Table Type
select * from xchild;
mother
child
Sophie
Manon
Sophie
Alice
…
select count(child) from xchild;

October 2012

SkySQL Ab 2012 Confidential

returns 10
OCCUR Table Type
Name
John
Bill
Mary
…

dog cat rabbit bird fish
2
0 0
0 0
0
1 0
0 0
1
1 0
0 0

create table xpet ( name varchar(12) not null,
race char(6) not null, number int not null)
engine=connect table_type=occur tabname=pets
option_list='OccurCol=number,RankCol=race'
Colist='dog,cat,rabbit,bird,fish';
October 2012

SkySQL Ab 2012 Confidential
OCCUR Table Type
select * from xpet;
Name
John
Mary
Mary
Lisbeth
Kevin
Kevin

October 2012

race number
dog 2
dog 1
cat
1
rabbit 2
cat
2
bird 6

SkySQL Ab 2012 Confidential
PIVOT Table Type

Who Week What Amount
Joe
3
Beer 18.00
Beth 4
Food 17.00
Janet 5
Beer 14.00
Joe
3
Food 12.00
…
create table pivex
Engine=connect table_type=pivot tabname=expenses;

October 2012

SkySQL Ab 2012 Confidential
PIVOT Table Type

select * from pivex;
Who
Beth
Beth
Beth
Janet
…

October 2012

Week
3
4
5
3

Beer
16.00
15.00
20.00
18.00

Car
0.00
0.00
0.00
19.00

Food
0.00
17.00
12.00
18.00

SkySQL Ab 2012 Confidential
Connect Storage Engine
VEC table / Column store
col1

col1

-1 or per column file
- Indexes work
- Fixed size record

col3

row1

row2

col1

col2
free

col1

col3
free

free

col3

col2
free

row3

free
SkySQL Ab 2012 Confidential

free
CONNECT Storage Engine
ODBC table type
Allow to access to any datasource accessible through
ODBC.
–
–
–
–
–
–

Excel
Access
Firebird
SQLite
SQL Server, Oracle, DB2
...

Possibility to do multifiles ODBC
– To query consolidated monthly excel datasheet
SkySQL Ab 2012 Confidential
ODBC table type
Access db example
create table customers engine=connect table_type=ODBC
block_size=10 tabname='Customers'
Connection='DSN=MS Access Database;DBQ=C:/Program
Files/Microsoft Office/Office/1033/FPNWIND.MDB;';

SkySQL Ab 2012 Confidential
ODBC database access
From a linux box
•

UnixODBC must be used as an ODBC Driver manager.

•

The ODBC driver of the target database must be
installed
– For Oracle, DB2
– install Oracle Database instant Client with ODBC
suplement

SkySQL Ab 2012 Confidential
ODBC access database
can pass any command to ODBC target
create table crlite ( command varchar(128) not null,
number int(5) not null flag=1,
message varchar(255) flag=2)
engine=connect table_type=odbc
connection='Driver=SQLite3 ODBC
Driver;Database=test.sqlite3;NoWCHAR=yes'
option_list='Execsrc=1';

SkySQL Ab 2012 Confidential
ODBC access database
can pass any command to ODBC target
select * from crlite where command =
'update lite set birth = ''2012-07-14'' where ID = 2';
Can be wrapped in a procedure :
create procedure send_cmd(cmd varchar(255))
MODIFIES SQL DATA
select * from crlite where command = cmd;
call send_cmd('drop tlite');
SkySQL Ab 2012 Confidential
Connect Storage Engine
MYSQL table type (a proxy table)
- same syntax as federatedx :

create Table lineitem1
ENGINE=CONNECT TABLE_TYPE=MYSQL
connection='mysql://proxy:pwd1@node1:3306/dbt3/lineitem3';

Server 1

node1

SkySQL Ab 2012 Confidential
MYSQL table Type
agregation on the remote server
create Table lineitem1
ENGINE=CONNECT TABLE_TYPE=MYSQL
SRCDEF='select l_suppkey, sum(l_quantity) qt from
dbt3.lineitem3 group by l_suppkey'
connection='mysql://proxy:pwd1@node1:3306/dbt3/lineitem3’;
Node 0

Node 1

SkySQL Ab 2012 Confidential
CONNECT Storage Engine
MYSQL table type vs. Federated(X)
•
•
•
•

support the limit clause
Implements condition push down
Autodiscovery of table structure
Can define the columns we want to see

SkySQL Ab 2012 Confidential
Connect Storage Engine
TBL table type (// Merge)
col1
col1

col2

col2

col3
ODBC table

col1

col2 col3

MySQL table

Muti tables table (like merge)
– Different structure, not myisam only,
– remotely distributed tables

col1 col2 col3

SkySQL Ab 2012 Confidential

col4
Table List Table (// Merge)
works with a distributed configuration
Node 1
col1 col2

Node 0

ODBC table

MySQL table
Node 2
col1 col2 col3

TBL

MYSQL /
ODBC

Node 3
col1 col2 col3

SkySQL Ab 2012 Confidential

col4
Parallel execution on distributed sharded
tables
Node 1
col1 col2

Node 0

ODBC table

Node 2
col1 col2 col3

TBL

MYSQL /
ODBC

Node 3
col1 col2 col3

SkySQL Ab 2012 Confidential

MySQL table

col4
Connect Storage Engine vs.
MySQL Merge tables
Table list table :
- support non MyISAM tables
- no need to the exact same structure for table
- underlying tables can be remote
– Distributed architecture

SkySQL Ab 2012 Confidential
Importing /exporting MySQL data
in various formats
Importing file data into MySQL tables
– Here for example from an XML file :
create table biblio select * from xsampall2;

Exporting data from MySQ: Here f we export to XML format :
create table handout engine=CONNECT table_type=XML
file_name='handout.htm' header=yes
option_list='name=TABLE,coltype=HTML,attribute=border=1;cellpadding=5'
select plugin_name handler, plugin_version version, plugin_author
author, plugin_description description, plugin_maturity maturity
from information_schema.plugins where plugin_type = 'STORAGE ENGINE';
SkySQL Ab 2012 Confidential
Ideas / Roadmap








ODBC type improvement
MySQL table type improvement
Batch key access
Adaptative query ( // MySQL Cluster) ?
Partition based TBL type(Like Spider)
Transactional / XA support
JSON File format

SkySQL Ab 2012 Confidential
Where is the MariaDB Connect Storage Engine
available ?







100 % open source on launchpad
Binary packages on MariaDB.org
Open Bug database
Public Roadmap
Released test cases
Improvement request / worklog

SkySQL Ab 2012 Confidential
How you can help
•
•
•
•

Adopt it / Test it.
Bugs : report bugs / propose fixes
Documentation : help improve it
Sharing : test it, blog about it,
– Share your experience about interesting usages.

SkySQL Ab 2012 Confidential
Conclusion


The MariaDB Connect Storage Engine :





Open MariaDB to BI and data analysis
Brings real value to MariaDB users
Illustrates openess of MariaDB community
Supported by SkySQL / MariaDB

SkySQL Ab 2012 Confidential
Thank You
Documentation:
https://mariadb.com/kb/en/connect/
Serge Frezefond
@sfrezefond
http://serge.frezefond.com

SkySQL Ab 2012 Confidential

37

More Related Content

What's hot

Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesDave Stokes
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle DevelopersRonald Bradford
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)kayokogoto
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesDave Stokes
 
MySQL Storage Engines Landscape
MySQL Storage Engines LandscapeMySQL Storage Engines Landscape
MySQL Storage Engines LandscapeColin Charles
 
Dd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinDd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinStåle Deraas
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDBJongJin Lee
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Ted Wennmark
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 
Data dictionary pl17
Data dictionary pl17Data dictionary pl17
Data dictionary pl17Ståle Deraas
 
MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0Ted Wennmark
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019Alkin Tezuysal
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document StoreTed Wennmark
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?Colin Charles
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8 Ted Wennmark
 
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptJavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptDave Stokes
 
Exploring Oracle Multitenant in Oracle Database 12c
Exploring Oracle Multitenant in Oracle Database 12cExploring Oracle Multitenant in Oracle Database 12c
Exploring Oracle Multitenant in Oracle Database 12cZohar Elkayam
 

What's hot (20)

Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
Introduction to Mysql
Introduction to MysqlIntroduction to Mysql
Introduction to Mysql
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle Developers
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
MySQL database
MySQL databaseMySQL database
MySQL database
 
MySQL Storage Engines Landscape
MySQL Storage Engines LandscapeMySQL Storage Engines Landscape
MySQL Storage Engines Landscape
 
Dd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinDd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublin
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDB
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 
Data dictionary pl17
Data dictionary pl17Data dictionary pl17
Data dictionary pl17
 
MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019
 
MySQL DBA
MySQL DBAMySQL DBA
MySQL DBA
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8
 
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptJavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
 
Exploring Oracle Multitenant in Oracle Database 12c
Exploring Oracle Multitenant in Oracle Database 12cExploring Oracle Multitenant in Oracle Database 12c
Exploring Oracle Multitenant in Oracle Database 12c
 

Similar to MariaDB CONNECT Storage Engine

Interfacing python to mysql (11363255151).pptx
Interfacing python to mysql (11363255151).pptxInterfacing python to mysql (11363255151).pptx
Interfacing python to mysql (11363255151).pptxcavicav231
 
20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shellIvan Ma
 
android sqlite
android sqliteandroid sqlite
android sqliteDeepa Rani
 
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗YUCHENG HU
 
The Ring programming language version 1.5.2 book - Part 27 of 181
The Ring programming language version 1.5.2 book - Part 27 of 181The Ring programming language version 1.5.2 book - Part 27 of 181
The Ring programming language version 1.5.2 book - Part 27 of 181Mahmoud Samir Fayed
 
web programming using html,css, JavaScript ,php etc
web programming using html,css, JavaScript ,php etcweb programming using html,css, JavaScript ,php etc
web programming using html,css, JavaScript ,php etcalbinjamestpra
 
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Altinity Ltd
 
The Ring programming language version 1.5.1 book - Part 26 of 180
The Ring programming language version 1.5.1 book - Part 26 of 180The Ring programming language version 1.5.1 book - Part 26 of 180
The Ring programming language version 1.5.1 book - Part 26 of 180Mahmoud Samir Fayed
 
Graph db as metastore
Graph db as metastoreGraph db as metastore
Graph db as metastoreHaris Khan
 
Lecture3 mysql gui by okello erick
Lecture3 mysql gui by okello erickLecture3 mysql gui by okello erick
Lecture3 mysql gui by okello erickokelloerick
 
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...Trivadis
 
The Ring programming language version 1.7 book - Part 31 of 196
The Ring programming language version 1.7 book - Part 31 of 196The Ring programming language version 1.7 book - Part 31 of 196
The Ring programming language version 1.7 book - Part 31 of 196Mahmoud Samir Fayed
 
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdf
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdfmysqlanditsbasiccommands-150226033905-conversion-gate02.pdf
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdfpradnyamulay
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMiguel Araújo
 
RMySQL Tutorial For Beginners
RMySQL Tutorial For BeginnersRMySQL Tutorial For Beginners
RMySQL Tutorial For BeginnersRsquared Academy
 
Ibi Open Visualizations
Ibi Open VisualizationsIbi Open Visualizations
Ibi Open VisualizationsClif Kranish
 

Similar to MariaDB CONNECT Storage Engine (20)

Interfacing python to mysql (11363255151).pptx
Interfacing python to mysql (11363255151).pptxInterfacing python to mysql (11363255151).pptx
Interfacing python to mysql (11363255151).pptx
 
20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell
 
android sqlite
android sqliteandroid sqlite
android sqlite
 
Sq lite database
Sq lite databaseSq lite database
Sq lite database
 
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
 
The Ring programming language version 1.5.2 book - Part 27 of 181
The Ring programming language version 1.5.2 book - Part 27 of 181The Ring programming language version 1.5.2 book - Part 27 of 181
The Ring programming language version 1.5.2 book - Part 27 of 181
 
web programming using html,css, JavaScript ,php etc
web programming using html,css, JavaScript ,php etcweb programming using html,css, JavaScript ,php etc
web programming using html,css, JavaScript ,php etc
 
My sql basic
My sql basicMy sql basic
My sql basic
 
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
 
5c8605.ado.net
5c8605.ado.net5c8605.ado.net
5c8605.ado.net
 
The Ring programming language version 1.5.1 book - Part 26 of 180
The Ring programming language version 1.5.1 book - Part 26 of 180The Ring programming language version 1.5.1 book - Part 26 of 180
The Ring programming language version 1.5.1 book - Part 26 of 180
 
Graph db as metastore
Graph db as metastoreGraph db as metastore
Graph db as metastore
 
Lecture3 mysql gui by okello erick
Lecture3 mysql gui by okello erickLecture3 mysql gui by okello erick
Lecture3 mysql gui by okello erick
 
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...
Trivadis TechEvent 2017 Oracle to My SQL Migration - Challenges by Robert Bia...
 
The Ring programming language version 1.7 book - Part 31 of 196
The Ring programming language version 1.7 book - Part 31 of 196The Ring programming language version 1.7 book - Part 31 of 196
The Ring programming language version 1.7 book - Part 31 of 196
 
MySQL and its basic commands
MySQL and its basic commandsMySQL and its basic commands
MySQL and its basic commands
 
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdf
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdfmysqlanditsbasiccommands-150226033905-conversion-gate02.pdf
mysqlanditsbasiccommands-150226033905-conversion-gate02.pdf
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA Tool
 
RMySQL Tutorial For Beginners
RMySQL Tutorial For BeginnersRMySQL Tutorial For Beginners
RMySQL Tutorial For Beginners
 
Ibi Open Visualizations
Ibi Open VisualizationsIbi Open Visualizations
Ibi Open Visualizations
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

MariaDB CONNECT Storage Engine

  • 1. SkySQL MariaDB CONNECT Storage Engine Serge Frezefond http://serge.frezefond.com @sfrezefond SkySQL Ab 2012 Confidential
  • 2. Goal of the CONNECT Storage Engine : BI on various file formats Most of the data in companies is in various external datasources (many in non relational database format) : – – – – – – – Dbase, Firebird, SQlite DOS,FIX,BIN,CSV XML stored per column... Microsoft Access & Excel Distributed mysql servers Non MySQL relational databases: Oracle, SQL Server… Targeting BI data access on these formats. Not targeted for OLTP SkySQL Ab 2012 Confidential
  • 3. Behind the scene Traditional BI Data is processed by an ETL – Change in the data model(denormalization...) Agregates are computed – Need to be defined and maintained Might need to move data out of RDBMS to other kind of datastore – OLAP, Collumn store, Hadoop/Hbase ... Specific tools are used to query the data IT is involved to maintain this machinery SkySQL Ab 2012 Confidential
  • 4. MariaDB CONNECT Storage Engine : created by Olivier Bertrand IBM database researcher – Independant, 50 years expertise programing Very experienced on databases – Worked on system-R, DB2, natural language query ... Discovered MySQL when looking for friendly place to test new concepts.(2004) – Decided to go open source – Started to appreciate the MariaDB openess and friendlyness SkySQL Ab 2012 Confidential
  • 5. How did the CONNECT Storage Engine move to MariaDB? Olivier met Monty creator of MySQL and MariaDB a few years ago (2004 for other concepts) MariaDB team helped Olivier to work with them: – First access to launchpad, go to linux, Olivier start working with MariaDB team : – Testing, bug fixes, security, test cases, doc ... MariaDB and Olivier agreed that is was ready to be released and supported under GPL – MariaDB flexibility ease integration SkySQL Ab 2012 Confidential
  • 6. The CONNECT Storage Engine Uses the MySQL Plugin Architecture • • • Plugin Architectureis a major differentiator of MySQL Datastores can interact with the MySQL sql layer Allow advanced interaction – Specific Create Table parameters(MariaDB) – Auto-discovery of table structure (MariaDB) – Condition push down • Allow join with other storage engines – InnoDB / MyISAM tables SkySQL Ab 2012 Confidential
  • 7. The CONNECT Storage Engine implements advanced features Support of external data sources :  – Support multi files tables Support Big File Table > 2G Support virtual tables (DIR) Add autocreate of tables :     –   Odbc, MySQL, WMI, INI ... The structure is discovered from the data source Use MariaDB create table new parameters capability (avoid comments polution) Support compressed tables SkySQL Ab 2012 Confidential
  • 8. The CONNECT Storage Engine implements advanced features  Add indexing to files – index optimized for read  Condition Push down – Used with ODBC and MySQL to push condition to the target database. Big perf gain.   Support MariaDB virtuals columns Support of special columns : – Rowid, fileid, tabid, servid  Muti tables table (like merge) – Different structure, not myisam only, remotely distributed tables SkySQL Ab 2012 Confidential
  • 9. The CONNECT Storage Engine implements advanced features Catalog table : – For Example Describe for odbc table – No need to do create table – Access to data / column metadata Memory file maping – For file type table (not xml) Table format .ini Multiple CONNECT tables can be created on the same underlying file – Indexes can be shared between tables SkySQL Ab 2012 Confidential
  • 10. XML Table Type <?xml version="1.0" encoding="ISO-8859-1"?> <BIBLIO SUBJECT="XML"> <BOOK ISBN="9782212090819" LANG="fr" SUBJECT="applications"> <AUTHOR> <FIRSTNAME>Jean-Christophe</FIRSTNAME> <LASTNAME>Bernadac</LASTNAME> </AUTHOR> <TITLE>Construire une application XML</TITLE> <PUBLISHER> <NAME>Eyrolles</NAME> <PLACE>Paris</PLACE> </PUBLISHER> <DATEPUB>1999</DATEPUB> </BOOK> </BIBLIO> October 2012 SkySQL Ab 2012 Confidential
  • 11. XML Table Type create table xsampall ( isbn char(15) field_format='@ISBN', language char(2) field_format='@LANG', authorln char(20) field_format='AUTHOR/LASTNAME', title char(32) field_format='TITLE', translated char(32) field_format='TRANSLATOR/@PREFIX', tranln char(20) field_format='TRANSLATOR/LASTNAME', publisher char(20) field_format='PUBLISHER/NAME', year int(4) field_format='DATEPUB') engine=CONNECT table_type=XML file_name='Xsample.xml' tabname='BIBLIO' option_list='rownode=BOOK,skipnull=1'; October 2012 SkySQL Ab 2012 Confidential
  • 12. XMLTable Type query result select isbn, subject, title, publisher from xsamp2; ISBN SUBJEC TTITLE PUBLISHER 9782212090819 applications Construire une application XML Eyrolles Paris 9782840825685 applications XML en Action Microsoft Press Can also generate HTML October 2012 SkySQL Ab 2012 Confidential
  • 13. XCOL Table Type Name Sophie Valentine childlist Manon, Alice, Antoine Arthur, Sidonie, Prune CREATE TABLE xchild ( mother char(12) NOT NULL flag=1, child varchar(30) DEFAULT NULL flag=2 ) ENGINE=CONNECT table_type=XCOL tabname='children' option_list='colname=child'; October 2012 SkySQL Ab 2012 Confidential
  • 14. XCOL Table Type select * from xchild; mother child Sophie Manon Sophie Alice … select count(child) from xchild; October 2012 SkySQL Ab 2012 Confidential returns 10
  • 15. OCCUR Table Type Name John Bill Mary … dog cat rabbit bird fish 2 0 0 0 0 0 1 0 0 0 1 1 0 0 0 create table xpet ( name varchar(12) not null, race char(6) not null, number int not null) engine=connect table_type=occur tabname=pets option_list='OccurCol=number,RankCol=race' Colist='dog,cat,rabbit,bird,fish'; October 2012 SkySQL Ab 2012 Confidential
  • 16. OCCUR Table Type select * from xpet; Name John Mary Mary Lisbeth Kevin Kevin October 2012 race number dog 2 dog 1 cat 1 rabbit 2 cat 2 bird 6 SkySQL Ab 2012 Confidential
  • 17. PIVOT Table Type Who Week What Amount Joe 3 Beer 18.00 Beth 4 Food 17.00 Janet 5 Beer 14.00 Joe 3 Food 12.00 … create table pivex Engine=connect table_type=pivot tabname=expenses; October 2012 SkySQL Ab 2012 Confidential
  • 18. PIVOT Table Type select * from pivex; Who Beth Beth Beth Janet … October 2012 Week 3 4 5 3 Beer 16.00 15.00 20.00 18.00 Car 0.00 0.00 0.00 19.00 Food 0.00 17.00 12.00 18.00 SkySQL Ab 2012 Confidential
  • 19. Connect Storage Engine VEC table / Column store col1 col1 -1 or per column file - Indexes work - Fixed size record col3 row1 row2 col1 col2 free col1 col3 free free col3 col2 free row3 free SkySQL Ab 2012 Confidential free
  • 20. CONNECT Storage Engine ODBC table type Allow to access to any datasource accessible through ODBC. – – – – – – Excel Access Firebird SQLite SQL Server, Oracle, DB2 ... Possibility to do multifiles ODBC – To query consolidated monthly excel datasheet SkySQL Ab 2012 Confidential
  • 21. ODBC table type Access db example create table customers engine=connect table_type=ODBC block_size=10 tabname='Customers' Connection='DSN=MS Access Database;DBQ=C:/Program Files/Microsoft Office/Office/1033/FPNWIND.MDB;'; SkySQL Ab 2012 Confidential
  • 22. ODBC database access From a linux box • UnixODBC must be used as an ODBC Driver manager. • The ODBC driver of the target database must be installed – For Oracle, DB2 – install Oracle Database instant Client with ODBC suplement SkySQL Ab 2012 Confidential
  • 23. ODBC access database can pass any command to ODBC target create table crlite ( command varchar(128) not null, number int(5) not null flag=1, message varchar(255) flag=2) engine=connect table_type=odbc connection='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes' option_list='Execsrc=1'; SkySQL Ab 2012 Confidential
  • 24. ODBC access database can pass any command to ODBC target select * from crlite where command = 'update lite set birth = ''2012-07-14'' where ID = 2'; Can be wrapped in a procedure : create procedure send_cmd(cmd varchar(255)) MODIFIES SQL DATA select * from crlite where command = cmd; call send_cmd('drop tlite'); SkySQL Ab 2012 Confidential
  • 25. Connect Storage Engine MYSQL table type (a proxy table) - same syntax as federatedx : create Table lineitem1 ENGINE=CONNECT TABLE_TYPE=MYSQL connection='mysql://proxy:pwd1@node1:3306/dbt3/lineitem3'; Server 1 node1 SkySQL Ab 2012 Confidential
  • 26. MYSQL table Type agregation on the remote server create Table lineitem1 ENGINE=CONNECT TABLE_TYPE=MYSQL SRCDEF='select l_suppkey, sum(l_quantity) qt from dbt3.lineitem3 group by l_suppkey' connection='mysql://proxy:pwd1@node1:3306/dbt3/lineitem3’; Node 0 Node 1 SkySQL Ab 2012 Confidential
  • 27. CONNECT Storage Engine MYSQL table type vs. Federated(X) • • • • support the limit clause Implements condition push down Autodiscovery of table structure Can define the columns we want to see SkySQL Ab 2012 Confidential
  • 28. Connect Storage Engine TBL table type (// Merge) col1 col1 col2 col2 col3 ODBC table col1 col2 col3 MySQL table Muti tables table (like merge) – Different structure, not myisam only, – remotely distributed tables col1 col2 col3 SkySQL Ab 2012 Confidential col4
  • 29. Table List Table (// Merge) works with a distributed configuration Node 1 col1 col2 Node 0 ODBC table MySQL table Node 2 col1 col2 col3 TBL MYSQL / ODBC Node 3 col1 col2 col3 SkySQL Ab 2012 Confidential col4
  • 30. Parallel execution on distributed sharded tables Node 1 col1 col2 Node 0 ODBC table Node 2 col1 col2 col3 TBL MYSQL / ODBC Node 3 col1 col2 col3 SkySQL Ab 2012 Confidential MySQL table col4
  • 31. Connect Storage Engine vs. MySQL Merge tables Table list table : - support non MyISAM tables - no need to the exact same structure for table - underlying tables can be remote – Distributed architecture SkySQL Ab 2012 Confidential
  • 32. Importing /exporting MySQL data in various formats Importing file data into MySQL tables – Here for example from an XML file : create table biblio select * from xsampall2; Exporting data from MySQ: Here f we export to XML format : create table handout engine=CONNECT table_type=XML file_name='handout.htm' header=yes option_list='name=TABLE,coltype=HTML,attribute=border=1;cellpadding=5' select plugin_name handler, plugin_version version, plugin_author author, plugin_description description, plugin_maturity maturity from information_schema.plugins where plugin_type = 'STORAGE ENGINE'; SkySQL Ab 2012 Confidential
  • 33. Ideas / Roadmap        ODBC type improvement MySQL table type improvement Batch key access Adaptative query ( // MySQL Cluster) ? Partition based TBL type(Like Spider) Transactional / XA support JSON File format SkySQL Ab 2012 Confidential
  • 34. Where is the MariaDB Connect Storage Engine available ?       100 % open source on launchpad Binary packages on MariaDB.org Open Bug database Public Roadmap Released test cases Improvement request / worklog SkySQL Ab 2012 Confidential
  • 35. How you can help • • • • Adopt it / Test it. Bugs : report bugs / propose fixes Documentation : help improve it Sharing : test it, blog about it, – Share your experience about interesting usages. SkySQL Ab 2012 Confidential
  • 36. Conclusion  The MariaDB Connect Storage Engine :     Open MariaDB to BI and data analysis Brings real value to MariaDB users Illustrates openess of MariaDB community Supported by SkySQL / MariaDB SkySQL Ab 2012 Confidential

Editor's Notes

  1. If column given . Eliminate, reorder type conversion