SlideShare a Scribd company logo
1 of 31
© MariaDB Corporation Ab
MariaDB
Storage Engines
Serge Frezefond, Cloud Solution Architect
serge.frezefond@mariadb.com
@sfrezefond
http://serge.frezefond.com
* *23/02/2015 1
© MariaDB Corporation Ab
Agenda
• TokuDB
• Spider
• CONNECT
• Conclusion
23/02/2015 2
© MariaDB Corporation Ab
TokuDB - Better Performance
• TokuDB® uses Fractal Tree® technology:
– Internal nodes are similar to B-trees, but they also have
message buffers
– Large block size (4M) enables better compression performance
and range queries.
– Basement nodes support point queries
o Default size 128K
– Optimal I/O utilization:
o Reads: highly compressed data
o Writes: aggregation of multiple operations + high compression.
© MariaDB Corporation Ab
TokuDB - Fractal Tree Indexes
Each node has
pivots & Buffers
Buffers fill
as updates arrive
© MariaDB Corporation Ab
Fractal Tree Indexes
Each node
has pivots & Buffers
Buffers fill
as updates arrive
Flush a buffer
when it fills
A flush might take an I/O,
but it does lots of useful work
More changes per write ➔
fewer changes for same write load ➔
less SSD wear
© MariaDB Corporation Ab
Better Indexing Improves Performance
•
• High performance during INSERT/UPDATE/DELETE operations
© MariaDB Corporation Ab
Typical Strategies
• Partitioning
– Adds complexity
– Table scans, when needed, are slower
• Covering indexes
– Secondary keys require additional PK lookup
– Slows down write operations
• InnoDB compression
– Affects performance
• Read-only slaves
– Adds complexity
– Slave delays
• SSD
© MariaDB Corporation Ab
Using TokuDB
• Partitioning
– Better performance w/ bigger partitions
• CLUSTERING KEY
– Better secondary key insertion
– Less indexes overall
• TokuDB compression
– Always on
– Compression alternatives: quicklz, zlib, lzma
• Read-only slaves
– Upsert / Insert optimization
• SSD
– Compression == better utilization
© MariaDB Corporation Ab
Spider Storage Engine
• Developed by Kentoku Shiba
• Storage Engine „partitions“ tables
across multiple Database Server instances
• Based on Partitions with integrated Sharding
• Virtual view on tables distributed
across Instances
• Supports XA transactions
• Transactional Storage Engine
• Provides Scale-Out
in Combination with HA
9
Application
Customer
A-H
I-P
Q-Z
Spider
Customet
A-H
Shard 1
Customer
I-P
Shard 2
Customer
Q-Z
Shard 3
© MariaDB Corporation Ab
Sharding using Spider
10
Backend 2
Application
Spider
Backend 3
T1
P1
P2
P3
T1 P2 T1
P3
Backend 1
T1
P1
XA 2 PC
© MariaDB Corporation Ab
Sharding with Spider and HA
11
Backend 2
Application
Spider
Backend 3
T1
P1
P2
P3
T1 P2 T1
P3
Backend 1
T1
P1
XA 2 PC
P2
P3
P1
© MariaDB Corporation Ab
Spider Storage Engine
Installation
• Installation
• Spider will be shown as active Storage Engine
12
mysql -uroot -p < /usr/share/mysql/install_spider.sql
SELECT engine, support, transactions, xa FROM
information_schema.engines;
+--------------------+---------+--------------+------+
| engine | support | transactions | xa |
+--------------------+---------+--------------+------+
| SPIDER | YES | YES | YES |
| CSV | YES | NO | NO |
© MariaDB Corporation Ab
Spider Storage Engine
Installation
• Spider creates tables in Schema „mysql“
13
MariaDB [mysql]> show tables like 'spider%';
+---------------------------+
| Tables_in_mysql (spider%) |
+---------------------------+
| spider_link_failed_log |
| spider_link_mon_servers |
| spider_tables |
| spider_xa |
| spider_xa_failed_log |
| spider_xa_member |
+---------------------------+
6 rows in set (0.00 sec)
© MariaDB Corporation Ab
Spider Storage Engine
Installation
• 93 Spider System-Variables will be added
• 4 Spider Status-Values will be added
• More Spider Variables related to tables using CREATE
TABLE
• In MariaDB use COMMENT
• In MySQL use CONNECTION
14
MariaDB [mysql]> show global variables like 'spider%’;
MariaDB [mysql]> show global status like 'spider%’;
© MariaDB Corporation Ab
Spider Storage Engine
Example without Sharding
• Table definition on Spider Proxy-Node
• Table definition on Backend-Nodes
15
CREATE TABLE spiderfederation(id INT NOT NULL, code
VARCHAR(10), PRIMARY KEY(id))
ENGINE=SPIDER
COMMENT 'host "192.168.56.21", user "backend", password
"backend", port "3306"';
CREATE TABLE spiderfederation(id INT NOT NULL, code
VARCHAR(10), PRIMARY KEY(id))
ENGINE=INNODB;
© MariaDB Corporation Ab
Spider Storage Engine
Example using Sharding
• Table definition on Spider Proxy-Node
16
CREATE TABLE sharding(id INT NOT NULL, code VARCHAR(10),
PRIMARY KEY(id))
ENGINE=SPIDER COMMENT='user "backend", password
"backend", port "3306", table "sharding"'
PARTITION BY RANGE(id)
(
PARTITION p1 VALUES LESS THAN (100000)
COMMENT 'host "192.168.56.21"',
PARTITION p2 VALUES LESS THAN (200000)
COMMENT 'host "192.168.56.22"',
PARTITION p3 VALUES LESS THAN MAXVALUE
COMMENT 'host "192.168.56.23"'
);
© MariaDB Corporation Ab
Spider Storage Engine
Installation
• Spider UDFs will be added
• SPIDER_DIRECT_SQL
• Execute SQL on Backend-Server
• SPIDER_BG_DIRECT_SQL
• Execute SQL on Backend-Server
• SPIDER_COPY_TABLES
• SPIDER_FLUSH_TABLE_MON_CACHE
• Reset Spider Monitoring Information
17
© MariaDB Corporation Ab
CONNECT Storage Engine
23/02/2015 18
© MariaDB Corporation Ab
Goal of the CONNECT Storage Engine :
BI on various targets
Most of the data in companies is in various
external datasources (many in non relational
database format) :
– relational databases: Oracle, SQL Server…
– Dbase, Firebird, SQlite
– Microsoft Access & Excel
– Distributed mysql servers
– DOS,FIX,BIN,CSV, XML
– stored per column...
Not targeted for OLTP
2014/02/02 19
© MariaDB Corporation Ab
The CONNECT Storage Engine
2014/02/02 20
MySQL Server / MariaDB
MyISA
M
InnoDB Memory Connect
Federate
d
Merge CSV ...
ODBC MySQL XML CSV DIR TBL JSON ...
XML CSV ODBC
MySQ
L
DIR ...
© MariaDB Corporation Ab
The CONNECT Storage Engine
implements advanced features
 Condition Push down
– Used with ODBC and MySQL to push condition
to the target database. Big perf gain
set optimizer_switch='engine_condition_pushdown=on‘
• Support MariaDB virtuals columns
• Support of special columns :
– Rowid, fileid, tabid, servid
• Extensible with the OEM file type
• Catalog table for table metadata(ODBC …)
© MariaDB Corporation Ab
CONECT
File table type
• DOS,FIX,BIN,FMT,CSV,INI,XML, JSON
• Support virtual tables (DIR)
• Large tables support (>2GB)
• Compression - gzlib format
• Memory file maping
• Add read optimized indexing to files
• Multiple CONNECT tables can be created on the
same underlying file
• Indexes can be shared between tables
© MariaDB Corporation Ab
CONNECT Storage Engine
ODBC table type
Allow to access to any ODBC datasource.
– Excel, Access, Firebird, SQLite
– SQL Server, Oracle, DB2
• Supports insert, update, delete and any other
commands
• Multi files ODBC: consolidated monthly excel
datasheet
• Access to ODBC and UnixODBC data sources
• WHERE conditions are push to the ODBC source
© MariaDB Corporation Ab
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>
© MariaDB Corporation Ab
XML Table Type
create table xsampall (
isbn char(15) field_format='@ISBN',
authorln char(20) field_format='AUTHOR/LASTNAME',
title char(32) field_format='TITLE',
translated char(32) field_format='TRANSLATOR/@PREFIX',
year int(4) field_format='DATEPUB')
engine=CONNECT table_type=XML file_name='Xsample.xml'
tabname='BIBLIO' option_list='rownode=BOOK,skipnull=1';
© MariaDB Corporation Ab
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
© MariaDB Corporation Ab
JSON Table Type
[
{
"ISBN": "9782212090819",
"LANG": "fr",
"SUBJECT": "applications",
"AUTHOR": [
{
"FIRSTNAME": "Jean-Christophe",
"LASTNAME": "Bernadac"
},
… ],
"TITLE": "Construire une application XML",
"PUBLISHER": {
…
© MariaDB Corporation Ab
JSON Table Type
create table jsampall (
ISBN char(15),
Language char(2) field_format='LANG',
Subject char(32) field_format='SUBJECT',
Author char(128) field_format='AUTHOR:[" and "]',
Title char(32) field_format='TITLE',
Publisher char(20) field_format='PUBLISHER:NAME',
Location char(16) field_format='PUBLISHER:PLACE',
Year int(4) field_format='DATEPUB')
engine=CONNECT table_type=JSON File_name='biblio3.jsn';
© MariaDB Corporation Ab
JSON Table Type
Query Result
select title, author, publisher, location from jsampall;
The result is:
Title author publisher location
Construire application XML Jean Bernadac and François Knab Eyrolles Paris
XML en Action William J. Pardi Microsoft Press Paris
© MariaDB Corporation Ab
JSON Table Type
The Jpath Specification
Specification Array Type Description
[n] All Take the nth value of the array. Ignore it if n is 0.
[X] or [x] All Expand. Generate one row for each array value.
["string”] String Concatenate all values separated by the specified string.
[+] Numeric Make the sum of all the array values.
[*] Numeric Make the product of all array values.
[!] Numeric Make the average of all the array values.
[>] or [<] All Return the greatest or least value of the array.
[#] All Return the number of values in the array.
[] All Sum if numeric, else concatenation separated by “, “.
All Take the first value if an array.
© MariaDB Corporation Ab
Questions?
www.mariadb.com
www.facebook.com/mariadb.dbms
www.twitter.com/mariadb
------------------------------------
Serge Frezefond, Cloud Solution Architect
serge.frezefond@mariadb.com
@sfrezefond
http://serge.frezefond.com

More Related Content

What's hot

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
 
Introduction of MariaDB AX / TX
Introduction of MariaDB AX / TXIntroduction of MariaDB AX / TX
Introduction of MariaDB AX / TXGOTO Satoru
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle DevelopersRonald Bradford
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09GOTO Satoru
 
Data dictionary pl17
Data dictionary pl17Data dictionary pl17
Data dictionary pl17Ståle Deraas
 
MySQL Storage Engines Landscape
MySQL Storage Engines LandscapeMySQL Storage Engines Landscape
MySQL Storage Engines LandscapeColin Charles
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?Kenneth Geisshirt
 
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
 
MariaDB Platform vs. Competitors
MariaDB Platform vs. CompetitorsMariaDB Platform vs. Competitors
MariaDB Platform vs. CompetitorsGOTO Satoru
 
SQLcl the next generation of SQLPlus?
SQLcl the next generation of SQLPlus?SQLcl the next generation of SQLPlus?
SQLcl the next generation of SQLPlus?Zohar Elkayam
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesDave Stokes
 
20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shellIvan Ma
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesAlkin Tezuysal
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonIvan Zoratti
 

What's hot (20)

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)
 
Introduction of MariaDB AX / TX
Introduction of MariaDB AX / TXIntroduction of MariaDB AX / TX
Introduction of MariaDB AX / TX
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle Developers
 
Introduction to Mysql
Introduction to MysqlIntroduction to Mysql
Introduction to Mysql
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09
 
Data dictionary pl17
Data dictionary pl17Data dictionary pl17
Data dictionary pl17
 
MySQL database
MySQL databaseMySQL database
MySQL database
 
MySQL Storage Engines Landscape
MySQL Storage Engines LandscapeMySQL Storage Engines Landscape
MySQL Storage Engines Landscape
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?
 
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
 
MariaDB Platform vs. Competitors
MariaDB Platform vs. CompetitorsMariaDB Platform vs. Competitors
MariaDB Platform vs. Competitors
 
SQLcl the next generation of SQLPlus?
SQLcl the next generation of SQLPlus?SQLcl the next generation of SQLPlus?
SQLcl the next generation of SQLPlus?
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell20201106 hk-py con-mysql-shell
20201106 hk-py con-mysql-shell
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar Series
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
 
MYSQL-Database
MYSQL-DatabaseMYSQL-Database
MYSQL-Database
 
MySQL DBA
MySQL DBAMySQL DBA
MySQL DBA
 

Viewers also liked

Monitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsMonitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsBen Mildren
 
Creating a Benchmarking Infrastructure That Just Works
Creating a Benchmarking Infrastructure That Just WorksCreating a Benchmarking Infrastructure That Just Works
Creating a Benchmarking Infrastructure That Just WorksTim Callaghan
 
So you want to be a software developer? (version 2.0)
So you want to be a software developer? (version 2.0)So you want to be a software developer? (version 2.0)
So you want to be a software developer? (version 2.0)Tim Callaghan
 
Get More Out of MySQL with TokuDB
Get More Out of MySQL with TokuDBGet More Out of MySQL with TokuDB
Get More Out of MySQL with TokuDBTim Callaghan
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceTim Callaghan
 

Viewers also liked (6)

Monitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsMonitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstats
 
Creating a Benchmarking Infrastructure That Just Works
Creating a Benchmarking Infrastructure That Just WorksCreating a Benchmarking Infrastructure That Just Works
Creating a Benchmarking Infrastructure That Just Works
 
Percona FT / TokuDB
Percona FT / TokuDBPercona FT / TokuDB
Percona FT / TokuDB
 
So you want to be a software developer? (version 2.0)
So you want to be a software developer? (version 2.0)So you want to be a software developer? (version 2.0)
So you want to be a software developer? (version 2.0)
 
Get More Out of MySQL with TokuDB
Get More Out of MySQL with TokuDBGet More Out of MySQL with TokuDB
Get More Out of MySQL with TokuDB
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB Performance
 

Similar to MariaDB pres at LeMUG

Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0Continuent
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
 
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Andrejs Prokopjevs
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020Alkin Tezuysal
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesLudovico Caldara
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to DeploymentAerospike, Inc.
 
EMC SRM vs. Sentinel Navigator - Deep dive
EMC SRM vs. Sentinel Navigator - Deep diveEMC SRM vs. Sentinel Navigator - Deep dive
EMC SRM vs. Sentinel Navigator - Deep divesansentinel
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Nelson Calero
 
M|18 Analyzing Data with the MariaDB AX Platform
M|18 Analyzing Data with the MariaDB AX PlatformM|18 Analyzing Data with the MariaDB AX Platform
M|18 Analyzing Data with the MariaDB AX PlatformMariaDB plc
 
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsUsing a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsVoltDB
 
Replicating in Real-time from MySQL to Amazon Redshift
Replicating in Real-time from MySQL to Amazon RedshiftReplicating in Real-time from MySQL to Amazon Redshift
Replicating in Real-time from MySQL to Amazon RedshiftContinuent
 
What’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreWhat’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreMariaDB plc
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Jim Dowling
 
M|18 What's New in the MariaDB AX Platform
M|18 What's New in the MariaDB AX PlatformM|18 What's New in the MariaDB AX Platform
M|18 What's New in the MariaDB AX PlatformMariaDB plc
 
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014Philippe Fierens
 
오라클 DR 및 복제 솔루션(Dbvisit 소개)
오라클 DR 및 복제 솔루션(Dbvisit 소개)오라클 DR 및 복제 솔루션(Dbvisit 소개)
오라클 DR 및 복제 솔루션(Dbvisit 소개)Linux Foundation Korea
 
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
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo Vacca
 
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...Aerospike
 

Similar to MariaDB pres at LeMUG (20)

Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
 
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to Deployment
 
SD Times - Docker v2
SD Times - Docker v2SD Times - Docker v2
SD Times - Docker v2
 
EMC SRM vs. Sentinel Navigator - Deep dive
EMC SRM vs. Sentinel Navigator - Deep diveEMC SRM vs. Sentinel Navigator - Deep dive
EMC SRM vs. Sentinel Navigator - Deep dive
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19
 
M|18 Analyzing Data with the MariaDB AX Platform
M|18 Analyzing Data with the MariaDB AX PlatformM|18 Analyzing Data with the MariaDB AX Platform
M|18 Analyzing Data with the MariaDB AX Platform
 
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsUsing a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming Aggregations
 
Replicating in Real-time from MySQL to Amazon Redshift
Replicating in Real-time from MySQL to Amazon RedshiftReplicating in Real-time from MySQL to Amazon Redshift
Replicating in Real-time from MySQL to Amazon Redshift
 
What’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreWhat’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStore
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning
 
M|18 What's New in the MariaDB AX Platform
M|18 What's New in the MariaDB AX PlatformM|18 What's New in the MariaDB AX Platform
M|18 What's New in the MariaDB AX Platform
 
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
 
오라클 DR 및 복제 솔루션(Dbvisit 소개)
오라클 DR 및 복제 솔루션(Dbvisit 소개)오라클 DR 및 복제 솔루션(Dbvisit 소개)
오라클 DR 및 복제 솔루션(Dbvisit 소개)
 
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 的替代者吗
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
 

Recently uploaded

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Recently uploaded (20)

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

MariaDB pres at LeMUG

  • 1. © MariaDB Corporation Ab MariaDB Storage Engines Serge Frezefond, Cloud Solution Architect serge.frezefond@mariadb.com @sfrezefond http://serge.frezefond.com * *23/02/2015 1
  • 2. © MariaDB Corporation Ab Agenda • TokuDB • Spider • CONNECT • Conclusion 23/02/2015 2
  • 3. © MariaDB Corporation Ab TokuDB - Better Performance • TokuDB® uses Fractal Tree® technology: – Internal nodes are similar to B-trees, but they also have message buffers – Large block size (4M) enables better compression performance and range queries. – Basement nodes support point queries o Default size 128K – Optimal I/O utilization: o Reads: highly compressed data o Writes: aggregation of multiple operations + high compression.
  • 4. © MariaDB Corporation Ab TokuDB - Fractal Tree Indexes Each node has pivots & Buffers Buffers fill as updates arrive
  • 5. © MariaDB Corporation Ab Fractal Tree Indexes Each node has pivots & Buffers Buffers fill as updates arrive Flush a buffer when it fills A flush might take an I/O, but it does lots of useful work More changes per write ➔ fewer changes for same write load ➔ less SSD wear
  • 6. © MariaDB Corporation Ab Better Indexing Improves Performance • • High performance during INSERT/UPDATE/DELETE operations
  • 7. © MariaDB Corporation Ab Typical Strategies • Partitioning – Adds complexity – Table scans, when needed, are slower • Covering indexes – Secondary keys require additional PK lookup – Slows down write operations • InnoDB compression – Affects performance • Read-only slaves – Adds complexity – Slave delays • SSD
  • 8. © MariaDB Corporation Ab Using TokuDB • Partitioning – Better performance w/ bigger partitions • CLUSTERING KEY – Better secondary key insertion – Less indexes overall • TokuDB compression – Always on – Compression alternatives: quicklz, zlib, lzma • Read-only slaves – Upsert / Insert optimization • SSD – Compression == better utilization
  • 9. © MariaDB Corporation Ab Spider Storage Engine • Developed by Kentoku Shiba • Storage Engine „partitions“ tables across multiple Database Server instances • Based on Partitions with integrated Sharding • Virtual view on tables distributed across Instances • Supports XA transactions • Transactional Storage Engine • Provides Scale-Out in Combination with HA 9 Application Customer A-H I-P Q-Z Spider Customet A-H Shard 1 Customer I-P Shard 2 Customer Q-Z Shard 3
  • 10. © MariaDB Corporation Ab Sharding using Spider 10 Backend 2 Application Spider Backend 3 T1 P1 P2 P3 T1 P2 T1 P3 Backend 1 T1 P1 XA 2 PC
  • 11. © MariaDB Corporation Ab Sharding with Spider and HA 11 Backend 2 Application Spider Backend 3 T1 P1 P2 P3 T1 P2 T1 P3 Backend 1 T1 P1 XA 2 PC P2 P3 P1
  • 12. © MariaDB Corporation Ab Spider Storage Engine Installation • Installation • Spider will be shown as active Storage Engine 12 mysql -uroot -p < /usr/share/mysql/install_spider.sql SELECT engine, support, transactions, xa FROM information_schema.engines; +--------------------+---------+--------------+------+ | engine | support | transactions | xa | +--------------------+---------+--------------+------+ | SPIDER | YES | YES | YES | | CSV | YES | NO | NO |
  • 13. © MariaDB Corporation Ab Spider Storage Engine Installation • Spider creates tables in Schema „mysql“ 13 MariaDB [mysql]> show tables like 'spider%'; +---------------------------+ | Tables_in_mysql (spider%) | +---------------------------+ | spider_link_failed_log | | spider_link_mon_servers | | spider_tables | | spider_xa | | spider_xa_failed_log | | spider_xa_member | +---------------------------+ 6 rows in set (0.00 sec)
  • 14. © MariaDB Corporation Ab Spider Storage Engine Installation • 93 Spider System-Variables will be added • 4 Spider Status-Values will be added • More Spider Variables related to tables using CREATE TABLE • In MariaDB use COMMENT • In MySQL use CONNECTION 14 MariaDB [mysql]> show global variables like 'spider%’; MariaDB [mysql]> show global status like 'spider%’;
  • 15. © MariaDB Corporation Ab Spider Storage Engine Example without Sharding • Table definition on Spider Proxy-Node • Table definition on Backend-Nodes 15 CREATE TABLE spiderfederation(id INT NOT NULL, code VARCHAR(10), PRIMARY KEY(id)) ENGINE=SPIDER COMMENT 'host "192.168.56.21", user "backend", password "backend", port "3306"'; CREATE TABLE spiderfederation(id INT NOT NULL, code VARCHAR(10), PRIMARY KEY(id)) ENGINE=INNODB;
  • 16. © MariaDB Corporation Ab Spider Storage Engine Example using Sharding • Table definition on Spider Proxy-Node 16 CREATE TABLE sharding(id INT NOT NULL, code VARCHAR(10), PRIMARY KEY(id)) ENGINE=SPIDER COMMENT='user "backend", password "backend", port "3306", table "sharding"' PARTITION BY RANGE(id) ( PARTITION p1 VALUES LESS THAN (100000) COMMENT 'host "192.168.56.21"', PARTITION p2 VALUES LESS THAN (200000) COMMENT 'host "192.168.56.22"', PARTITION p3 VALUES LESS THAN MAXVALUE COMMENT 'host "192.168.56.23"' );
  • 17. © MariaDB Corporation Ab Spider Storage Engine Installation • Spider UDFs will be added • SPIDER_DIRECT_SQL • Execute SQL on Backend-Server • SPIDER_BG_DIRECT_SQL • Execute SQL on Backend-Server • SPIDER_COPY_TABLES • SPIDER_FLUSH_TABLE_MON_CACHE • Reset Spider Monitoring Information 17
  • 18. © MariaDB Corporation Ab CONNECT Storage Engine 23/02/2015 18
  • 19. © MariaDB Corporation Ab Goal of the CONNECT Storage Engine : BI on various targets Most of the data in companies is in various external datasources (many in non relational database format) : – relational databases: Oracle, SQL Server… – Dbase, Firebird, SQlite – Microsoft Access & Excel – Distributed mysql servers – DOS,FIX,BIN,CSV, XML – stored per column... Not targeted for OLTP 2014/02/02 19
  • 20. © MariaDB Corporation Ab The CONNECT Storage Engine 2014/02/02 20 MySQL Server / MariaDB MyISA M InnoDB Memory Connect Federate d Merge CSV ... ODBC MySQL XML CSV DIR TBL JSON ... XML CSV ODBC MySQ L DIR ...
  • 21. © MariaDB Corporation Ab The CONNECT Storage Engine implements advanced features  Condition Push down – Used with ODBC and MySQL to push condition to the target database. Big perf gain set optimizer_switch='engine_condition_pushdown=on‘ • Support MariaDB virtuals columns • Support of special columns : – Rowid, fileid, tabid, servid • Extensible with the OEM file type • Catalog table for table metadata(ODBC …)
  • 22. © MariaDB Corporation Ab CONECT File table type • DOS,FIX,BIN,FMT,CSV,INI,XML, JSON • Support virtual tables (DIR) • Large tables support (>2GB) • Compression - gzlib format • Memory file maping • Add read optimized indexing to files • Multiple CONNECT tables can be created on the same underlying file • Indexes can be shared between tables
  • 23. © MariaDB Corporation Ab CONNECT Storage Engine ODBC table type Allow to access to any ODBC datasource. – Excel, Access, Firebird, SQLite – SQL Server, Oracle, DB2 • Supports insert, update, delete and any other commands • Multi files ODBC: consolidated monthly excel datasheet • Access to ODBC and UnixODBC data sources • WHERE conditions are push to the ODBC source
  • 24. © MariaDB Corporation Ab 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>
  • 25. © MariaDB Corporation Ab XML Table Type create table xsampall ( isbn char(15) field_format='@ISBN', authorln char(20) field_format='AUTHOR/LASTNAME', title char(32) field_format='TITLE', translated char(32) field_format='TRANSLATOR/@PREFIX', year int(4) field_format='DATEPUB') engine=CONNECT table_type=XML file_name='Xsample.xml' tabname='BIBLIO' option_list='rownode=BOOK,skipnull=1';
  • 26. © MariaDB Corporation Ab 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
  • 27. © MariaDB Corporation Ab JSON Table Type [ { "ISBN": "9782212090819", "LANG": "fr", "SUBJECT": "applications", "AUTHOR": [ { "FIRSTNAME": "Jean-Christophe", "LASTNAME": "Bernadac" }, … ], "TITLE": "Construire une application XML", "PUBLISHER": { …
  • 28. © MariaDB Corporation Ab JSON Table Type create table jsampall ( ISBN char(15), Language char(2) field_format='LANG', Subject char(32) field_format='SUBJECT', Author char(128) field_format='AUTHOR:[" and "]', Title char(32) field_format='TITLE', Publisher char(20) field_format='PUBLISHER:NAME', Location char(16) field_format='PUBLISHER:PLACE', Year int(4) field_format='DATEPUB') engine=CONNECT table_type=JSON File_name='biblio3.jsn';
  • 29. © MariaDB Corporation Ab JSON Table Type Query Result select title, author, publisher, location from jsampall; The result is: Title author publisher location Construire application XML Jean Bernadac and François Knab Eyrolles Paris XML en Action William J. Pardi Microsoft Press Paris
  • 30. © MariaDB Corporation Ab JSON Table Type The Jpath Specification Specification Array Type Description [n] All Take the nth value of the array. Ignore it if n is 0. [X] or [x] All Expand. Generate one row for each array value. ["string”] String Concatenate all values separated by the specified string. [+] Numeric Make the sum of all the array values. [*] Numeric Make the product of all array values. [!] Numeric Make the average of all the array values. [>] or [<] All Return the greatest or least value of the array. [#] All Return the number of values in the array. [] All Sum if numeric, else concatenation separated by “, “. All Take the first value if an array.
  • 31. © MariaDB Corporation Ab Questions? www.mariadb.com www.facebook.com/mariadb.dbms www.twitter.com/mariadb ------------------------------------ Serge Frezefond, Cloud Solution Architect serge.frezefond@mariadb.com @sfrezefond http://serge.frezefond.com