SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Une base de
données NewSQL
Open Source Expérience – le 9 novembre 2022
Christophe Villeneuve & Sébastien
●
Séb
– Ingénieur solutions
●
Christophe Villeneuve
Aujourd’hui
●
SQL + NoSQL = NewSQL
●
Que fait-on avec MariaDB ?
●
Le futur du présent
●
SQL + NoSQL = NewSQL
●
Que fait-on avec MariaDB ?
●
Le futur du présent
SQL
●
SQL = Base de données relationnelles
●
Appelé SGBDR (système de gestion de base de données relationnelle)
●
Basé sur un modèle relationnel :
– S’appuie sur la théorie des ensembles et des relations pour décrire les données dans la base de données
●
Norme SQL décrivant le langage d'interrogation et le comportement des bases de données relationnelles.
●
Chaque base de données (avec ces différences) :
– Langage
– Comportement
– Méthode d'accès aux données.
●
Schéma fixe :
– Chaque ligne a les mêmes colonnes définies à l'aide des mêmes types de données que toutes les autres lignes de la table.
– Chaque ligne de la table possède une clé qui l'identifie de manière unique.
●
Les systèmes de bases de données SQL sont caractérisés par leur support ACID
– ACID (atomicité, cohérence, isolation et durabilité) pour les transactions
– Cohérence des données est strictement maintenue lorsque plusieurs processus accèdent et modifient les mêmes données.
NoSQL
●
NoSQL = Base de données non relationnelle
●
Pas de règles strictes
●
Populaire au début du 21e siècle
●
Englobe
– Structure de données différents
– Concepts, approches, des langages de requête, etc.
– Solution à un problème précis
– Selon l'application,
●
Prévoir des développements spécifiques du côté de l'application
●
Devient coûteux ou pratiquement impossible à maintenir à partir d'un certain point.
●
Évolution horizontale
– Ajoutez des machines supplémentaires et répartissez la charge entre elles.
NewSQL (1/2)
●
Catégorie de systèmes de gestion de bases de données relationnelles
●
Visent à fournir
– Les garanties ACID des bases de données relationnelles
– Evolution horizontale des bases de données NoSQL.
●
Plusieurs catégories :
– Des systèmes entièrement nouveaux, souvent construits à partir de zéro
– Déploiement distribué
– Techniques similaires à celles utilisées par les bases de données NoSQL.
●
Moteurs de stockage (storage engine) SQL optimisés pour l'évolutivité horizontale
●
Complémentaire aux moteurs de stockage par défaut des bases de données relationnelles
●
Positionnement
– Couche Middleware
●
Possible d’offrir de garanties ACID
NewSQL (2/2)
●
Existe depuis 2011 (Document 451 Research)
●
Caractéristiques
– Prévu comme un système de base de données relationnel et SQL avec une architecture distribuée et tolérante aux
pannes.
– Possible de mixer
●
La capacité de stockage en mémoire
●
Les services de bases de données en cluster avec la possibilité d'être déployés dans le cloud.
●
Intérêt
– Traiter de grandes quantités de données (big data) tout en maintenant la cohérence transactionnelle
●
Approche :
– Grande évolutivité avec une cohérence ACID
– Consiste à répartir les données de manière transparente entre plusieurs nœuds à l'aide d'un algorithme de consensus.
– Déploient des moteurs SQL améliorés pour le stockage et l'optimisation des données.
Pour faire simple
Synthèse
Feature SQL NoSQL NewSQL
Propriété
Relationnelle
Oui
Modélisation relationnelle
Non
Modèle différent
Oui
ACID Oui,
les propriétés ACID sont
fondamentales pour leur
application
Non
prévoit plutôt un soutien CAP
Oui,
les propriétés ACID sont prises
en compte
SQL Prise en charge de SQL Pas de support pour l'ancien SQL Oui, un support approprié et
même des fonctionnalités
améliorées pour l'ancien SQL
Traitement
Transactionnel
(OTP)
Inefficace pour les bases de
données OLTP
Il supporte de telles bases de
données, mais ce n'est pas le mieux
adapté.
Prend entièrement en charge les
bases de données OLTP et est
très efficace
Scaling / Extensibilité Mise à l'échelle verticale Mise à l'échelle horizontale
uniquement
Mise à l'échelle verticale +
horizontale
Traitement des
requetes
Peut gérer facilement des
requêtes simples et échoue
lorsqu'elles deviennent complexes
Mieux que SQL pour le traitement des
requêtes complexes
Très efficace dans le traitement
des requêtes complexes et des
requêtes plus petites
Bases de données
distribuées
Non Oui Oui
●
SQL + NoSQL = NewSQL
●
Que fait-on avec MariaDB ?
●
Le futur du présent
Histoire de MariaDB
●
L'origine
●
Fondé par
– Michael Monty Widenius
– David Axmark
●
Dates importantes
– 1983 - 1ères idées
– Fondé en 1995
– 2007 Préparation pour
Nasdaq
– 2008 Rachat par Sun
– 2009 Sun racheté par
Oracle
Un projet mature
●
Communauté d’amis
●
100 % Open source
●
Plateforme innovation
●
Modèle de gouvernance
– Free Software Foundation
– pour le projet GNU
●
2008 Création de Monty
Program
●
2010 MariaDB 5
●
2012 MariaDB 10
●
2013 Fondation
●
2013 NewSQL (NoSQL + SQL)
●
2015 MaxScale
●
…
https://mariadb.com/kb/en/storage-engines/
No SQL
- MongoDB
- Cassandra
- …
DBA
- InnoDB
- MyISAM
- XtraDB
Alias / Migration
- Connect
- SQL_mode
Autre
- Memory
- Merge
- OQGraph
- S3
- TokuDB
- SphinxSE
- …
Front
- MaxScale
- JSON
Big Data
- Colonnes
Dynamiques
- RocksDB
Développeur
- PCRE
- Microseconds
- Colonnes Virtuelles
- Sequence engine
- …
Gestion par colonnes
●
Les bases de données à larges colonnes
– Stockent les données dans des tableaux
●
contenant un grand nombre de colonnes
●
Schéma flexible
– Système de stockage en colonnes
– Utile pour le Big Data
– Compatibilité : Data Types Storage
Engines
Version mini
BLOB X 10
ColumnStore X 10.5
RocksDB X 10.3
Ex : MariaDB ColumnStore
●
Axée sur la rangée
– Les Lignes stockées séquentiellement dans un fichier
●
Orienté en colonne
– Chaque colonne est stockée dans un fichier séparé
Ex : Blob : Colonnes dynamiques
create table newsql(
id int
auto_increment
primary key,
nom varchar(40),
type enum
('animal',
'ordinateur'),
prix int,
nosql blob);
COLUMN_CREATE(
column_nr,
value [as type],
[
column_nr,
value [as type]
],
...)
Graph
●
Les bases de données graphiques
– stockent les données sous forme de graphiques
●
pour mettre en évidence les connexions entre les
différents éléments de données
●
Compatibilité
Data Types Storage
Engines
Version mini
OQGRAPH X 10
Ex graph
CREATE TABLE oq2_backing (
origid INT UNSIGNED NOT NULL,
destid INT UNSIGNED NOT NULL,
weight DOUBLE NOT NULL,
PRIMARY KEY (origid, destid),
KEY (destid)
);
INSERT INTO oq2_backing(origid, destid, weight)
VALUES (1,2,1), (2,3,1), (3,4,3), (4,5,1), (2,6,10), (5,6,2);
SELECT * FROM oq_graph WHERE latch='breadth_first' AND origid=1 AND destid=6;
+----------+--------+--------+--------+------+--------+
| latch | origid | destid | weight | seq | linkid |
+----------+--------+--------+--------+------+--------+
| dijkstras| 1 | 6 | NULL | 0 | 1 |
| dijkstras| 1 | 6 | 1 | 1 | 2 |
| dijkstras| 1 | 6 | 1 | 2 | 6 |
+----------+--------+--------+--------+------+--------+
CREATE TABLE oq2_graph (
latch VARCHAR(32) NULL,
origid BIGINT UNSIGNED NULL,
destid BIGINT UNSIGNED NULL,
weight DOUBLE NULL,
seq BIGINT UNSIGNED NULL,
linkid BIGINT UNSIGNED NULL,
KEY (latch, origid, destid) USING HASH,
KEY (latch, destid, origid) USING HASH
)
ENGINE=OQGRAPH
data_table='oq2_backing' origid='origid' destid='destid' weight='weight';
JSON
●
Les bases de données clés-valeurs
– stockent des paires de clés uniques et de valeurs
associées.
– https://mariadb.com/kb/en/json-functions/
●
Compatibilité
Data Types Storage
Engines
Version mini
JSON X 10.2
JSON_VALID X 10.4
Ex : JSON
create table demo2(
id int auto_increment primary key,
nom varchar(40),
type enum ('animal', 'ordinateur'),
prix int,
attr JSON,
CHECK (JSON_VALID(attr))
);
Documents
●
Les bases de données de documents
– stockent les données
●
dans des structures de type document encodées
dans des formats tels que JSON et XML.
– https://mariadb.com/kb/en/json_table/
●
Compatibilité Data Types Storage
Engines
Version mini
JSON X 10.6
Ex : Documents
set @json='
[
{"name":"Laptop", "color":"black", "price":"1000"},
{"name":"Jeans", "color":"blue"}
]';
select * from json_table(@json, '$[*]'
columns(
name varchar(10) path '$.name',
color varchar(10) path '$.color',
price decimal(8,2) path '$.price' )
) as jt;
+--------+-------+---------+
| name | color | price |
+--------+-------+---------+
| Laptop | black | 1000.00 |
| Jeans | blue | NULL |
+--------+-------+---------+
●
SQL + NoSQL = NewSQL
●
Que fait-on avec MariaDB ?
●
Le futur du présent
SQL Distribué
●
C’est constituée :
– plusieurs instances de base de données interopérables
– Chacune stocke et interroge non pas la totalité
●
Transactions distribuées entre bases de données cloud
●
Répondre à un besoin :
– Besoin de lectures et d'écritures très rapides
– Nécessité de prendre en charge un grand nombre de requêtes simultanées
– Nécessité de supporter un grand nombre d'écritures
– Nécessité de stocker un grand nombre de données
●
Docker https://hub.docker.com/r/mariadb/xpand-single
●
Compatibilité : Data Types Storage
Engines
Version mini
Xpand X entreprise
Interopérabilité
●
SQL / NoSQL
●
En alias / Layout
●
Migration en 0 clics
●
Compatibilité
Variables
Modes
Storage
Engines
Version mini
Connect X 10.1
Sql_mode X 10.2
Maxscale
Migration en 0 clic
Connect
●
ETL : Extract Transform Load
●
Lecture / Ecriture / MAJ
– TXT, DBF, INI, XML
– MS Access, MS Excel, TBL (similaire à MERGE)
– ODBC, MySQL,SQLite, Oracle, DB2, WMI...
●
Locale ou distant
●
Custom possible
●
Accès en parallèle sur multitables
NoSQL Document protocol
●
Le module nosqlprotocol permet d'utiliser un serveur ou un cluster
MariaDB
– comme backend d'une application utilisant une bibliothèque client MongoDB®.
●
En interne, tous les documents sont stockés
dans une table contenant deux colonnes :
– une colonne id pour l'identifiant de l'objet
– une colonne doc pour le document lui-même.
MariaDB
MaxScale
App
id doc
Nous retrouver
●
Slack https://r.mariadb.com/join-community-slack
●
Twitter https://twitter.com/lemug_fr
●
Linkedin https://www.linkedin.com/groups/1627237/
●
Développeurs : https://mariadb.com/developers/
●
Github : https://github.com/mariadb-corporation
●
https://mariadb.com
●
https://mariadb.org
Merci

Más contenido relacionado

Similar a MariaDB une base de donnees NewSQL

NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosqlInes Slimene
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzureMicrosoft Décideurs IT
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzureMicrosoft Technet France
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQLOussama ARBI
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxLaurent Broudoux
 
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackLe cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackMicrosoft Décideurs IT
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Dr Hajji Hicham
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurMicrosoft Technet France
 
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfresume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfFootballLovers9
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Christophe Villeneuve
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesOpen Source Experience
 
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Jean-Pierre Riehl
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 

Similar a MariaDB une base de donnees NewSQL (20)

NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans Azure
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans Azure
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQL
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackLe cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
 
Inf208
Inf208Inf208
Inf208
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Presentation intis 2017 version27112017
Presentation intis 2017 version27112017
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfresume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
 
4-TP BD.pptx
4-TP BD.pptx4-TP BD.pptx
4-TP BD.pptx
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
 
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 

Más de Christophe Villeneuve

La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteChristophe Villeneuve
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Christophe Villeneuve
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activitesChristophe Villeneuve
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftChristophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueChristophe Villeneuve
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsChristophe Villeneuve
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsChristophe Villeneuve
 

Más de Christophe Villeneuve (20)

La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtools
 

MariaDB une base de donnees NewSQL

  • 1. Une base de données NewSQL Open Source Expérience – le 9 novembre 2022 Christophe Villeneuve & Sébastien
  • 3. Aujourd’hui ● SQL + NoSQL = NewSQL ● Que fait-on avec MariaDB ? ● Le futur du présent
  • 4. ● SQL + NoSQL = NewSQL ● Que fait-on avec MariaDB ? ● Le futur du présent
  • 5. SQL ● SQL = Base de données relationnelles ● Appelé SGBDR (système de gestion de base de données relationnelle) ● Basé sur un modèle relationnel : – S’appuie sur la théorie des ensembles et des relations pour décrire les données dans la base de données ● Norme SQL décrivant le langage d'interrogation et le comportement des bases de données relationnelles. ● Chaque base de données (avec ces différences) : – Langage – Comportement – Méthode d'accès aux données. ● Schéma fixe : – Chaque ligne a les mêmes colonnes définies à l'aide des mêmes types de données que toutes les autres lignes de la table. – Chaque ligne de la table possède une clé qui l'identifie de manière unique. ● Les systèmes de bases de données SQL sont caractérisés par leur support ACID – ACID (atomicité, cohérence, isolation et durabilité) pour les transactions – Cohérence des données est strictement maintenue lorsque plusieurs processus accèdent et modifient les mêmes données.
  • 6. NoSQL ● NoSQL = Base de données non relationnelle ● Pas de règles strictes ● Populaire au début du 21e siècle ● Englobe – Structure de données différents – Concepts, approches, des langages de requête, etc. – Solution à un problème précis – Selon l'application, ● Prévoir des développements spécifiques du côté de l'application ● Devient coûteux ou pratiquement impossible à maintenir à partir d'un certain point. ● Évolution horizontale – Ajoutez des machines supplémentaires et répartissez la charge entre elles.
  • 7. NewSQL (1/2) ● Catégorie de systèmes de gestion de bases de données relationnelles ● Visent à fournir – Les garanties ACID des bases de données relationnelles – Evolution horizontale des bases de données NoSQL. ● Plusieurs catégories : – Des systèmes entièrement nouveaux, souvent construits à partir de zéro – Déploiement distribué – Techniques similaires à celles utilisées par les bases de données NoSQL. ● Moteurs de stockage (storage engine) SQL optimisés pour l'évolutivité horizontale ● Complémentaire aux moteurs de stockage par défaut des bases de données relationnelles ● Positionnement – Couche Middleware ● Possible d’offrir de garanties ACID
  • 8. NewSQL (2/2) ● Existe depuis 2011 (Document 451 Research) ● Caractéristiques – Prévu comme un système de base de données relationnel et SQL avec une architecture distribuée et tolérante aux pannes. – Possible de mixer ● La capacité de stockage en mémoire ● Les services de bases de données en cluster avec la possibilité d'être déployés dans le cloud. ● Intérêt – Traiter de grandes quantités de données (big data) tout en maintenant la cohérence transactionnelle ● Approche : – Grande évolutivité avec une cohérence ACID – Consiste à répartir les données de manière transparente entre plusieurs nœuds à l'aide d'un algorithme de consensus. – Déploient des moteurs SQL améliorés pour le stockage et l'optimisation des données.
  • 10. Synthèse Feature SQL NoSQL NewSQL Propriété Relationnelle Oui Modélisation relationnelle Non Modèle différent Oui ACID Oui, les propriétés ACID sont fondamentales pour leur application Non prévoit plutôt un soutien CAP Oui, les propriétés ACID sont prises en compte SQL Prise en charge de SQL Pas de support pour l'ancien SQL Oui, un support approprié et même des fonctionnalités améliorées pour l'ancien SQL Traitement Transactionnel (OTP) Inefficace pour les bases de données OLTP Il supporte de telles bases de données, mais ce n'est pas le mieux adapté. Prend entièrement en charge les bases de données OLTP et est très efficace Scaling / Extensibilité Mise à l'échelle verticale Mise à l'échelle horizontale uniquement Mise à l'échelle verticale + horizontale Traitement des requetes Peut gérer facilement des requêtes simples et échoue lorsqu'elles deviennent complexes Mieux que SQL pour le traitement des requêtes complexes Très efficace dans le traitement des requêtes complexes et des requêtes plus petites Bases de données distribuées Non Oui Oui
  • 11. ● SQL + NoSQL = NewSQL ● Que fait-on avec MariaDB ? ● Le futur du présent
  • 12. Histoire de MariaDB ● L'origine ● Fondé par – Michael Monty Widenius – David Axmark ● Dates importantes – 1983 - 1ères idées – Fondé en 1995 – 2007 Préparation pour Nasdaq – 2008 Rachat par Sun – 2009 Sun racheté par Oracle
  • 13. Un projet mature ● Communauté d’amis ● 100 % Open source ● Plateforme innovation ● Modèle de gouvernance – Free Software Foundation – pour le projet GNU ● 2008 Création de Monty Program ● 2010 MariaDB 5 ● 2012 MariaDB 10 ● 2013 Fondation ● 2013 NewSQL (NoSQL + SQL) ● 2015 MaxScale ● …
  • 14. https://mariadb.com/kb/en/storage-engines/ No SQL - MongoDB - Cassandra - … DBA - InnoDB - MyISAM - XtraDB Alias / Migration - Connect - SQL_mode Autre - Memory - Merge - OQGraph - S3 - TokuDB - SphinxSE - … Front - MaxScale - JSON Big Data - Colonnes Dynamiques - RocksDB Développeur - PCRE - Microseconds - Colonnes Virtuelles - Sequence engine - …
  • 15. Gestion par colonnes ● Les bases de données à larges colonnes – Stockent les données dans des tableaux ● contenant un grand nombre de colonnes ● Schéma flexible – Système de stockage en colonnes – Utile pour le Big Data – Compatibilité : Data Types Storage Engines Version mini BLOB X 10 ColumnStore X 10.5 RocksDB X 10.3
  • 16. Ex : MariaDB ColumnStore ● Axée sur la rangée – Les Lignes stockées séquentiellement dans un fichier ● Orienté en colonne – Chaque colonne est stockée dans un fichier séparé
  • 17. Ex : Blob : Colonnes dynamiques create table newsql( id int auto_increment primary key, nom varchar(40), type enum ('animal', 'ordinateur'), prix int, nosql blob); COLUMN_CREATE( column_nr, value [as type], [ column_nr, value [as type] ], ...)
  • 18. Graph ● Les bases de données graphiques – stockent les données sous forme de graphiques ● pour mettre en évidence les connexions entre les différents éléments de données ● Compatibilité Data Types Storage Engines Version mini OQGRAPH X 10
  • 19. Ex graph CREATE TABLE oq2_backing ( origid INT UNSIGNED NOT NULL, destid INT UNSIGNED NOT NULL, weight DOUBLE NOT NULL, PRIMARY KEY (origid, destid), KEY (destid) ); INSERT INTO oq2_backing(origid, destid, weight) VALUES (1,2,1), (2,3,1), (3,4,3), (4,5,1), (2,6,10), (5,6,2); SELECT * FROM oq_graph WHERE latch='breadth_first' AND origid=1 AND destid=6; +----------+--------+--------+--------+------+--------+ | latch | origid | destid | weight | seq | linkid | +----------+--------+--------+--------+------+--------+ | dijkstras| 1 | 6 | NULL | 0 | 1 | | dijkstras| 1 | 6 | 1 | 1 | 2 | | dijkstras| 1 | 6 | 1 | 2 | 6 | +----------+--------+--------+--------+------+--------+ CREATE TABLE oq2_graph ( latch VARCHAR(32) NULL, origid BIGINT UNSIGNED NULL, destid BIGINT UNSIGNED NULL, weight DOUBLE NULL, seq BIGINT UNSIGNED NULL, linkid BIGINT UNSIGNED NULL, KEY (latch, origid, destid) USING HASH, KEY (latch, destid, origid) USING HASH ) ENGINE=OQGRAPH data_table='oq2_backing' origid='origid' destid='destid' weight='weight';
  • 20. JSON ● Les bases de données clés-valeurs – stockent des paires de clés uniques et de valeurs associées. – https://mariadb.com/kb/en/json-functions/ ● Compatibilité Data Types Storage Engines Version mini JSON X 10.2 JSON_VALID X 10.4
  • 21. Ex : JSON create table demo2( id int auto_increment primary key, nom varchar(40), type enum ('animal', 'ordinateur'), prix int, attr JSON, CHECK (JSON_VALID(attr)) );
  • 22. Documents ● Les bases de données de documents – stockent les données ● dans des structures de type document encodées dans des formats tels que JSON et XML. – https://mariadb.com/kb/en/json_table/ ● Compatibilité Data Types Storage Engines Version mini JSON X 10.6
  • 23. Ex : Documents set @json=' [ {"name":"Laptop", "color":"black", "price":"1000"}, {"name":"Jeans", "color":"blue"} ]'; select * from json_table(@json, '$[*]' columns( name varchar(10) path '$.name', color varchar(10) path '$.color', price decimal(8,2) path '$.price' ) ) as jt; +--------+-------+---------+ | name | color | price | +--------+-------+---------+ | Laptop | black | 1000.00 | | Jeans | blue | NULL | +--------+-------+---------+
  • 24. ● SQL + NoSQL = NewSQL ● Que fait-on avec MariaDB ? ● Le futur du présent
  • 25. SQL Distribué ● C’est constituée : – plusieurs instances de base de données interopérables – Chacune stocke et interroge non pas la totalité ● Transactions distribuées entre bases de données cloud ● Répondre à un besoin : – Besoin de lectures et d'écritures très rapides – Nécessité de prendre en charge un grand nombre de requêtes simultanées – Nécessité de supporter un grand nombre d'écritures – Nécessité de stocker un grand nombre de données ● Docker https://hub.docker.com/r/mariadb/xpand-single ● Compatibilité : Data Types Storage Engines Version mini Xpand X entreprise
  • 26. Interopérabilité ● SQL / NoSQL ● En alias / Layout ● Migration en 0 clics ● Compatibilité Variables Modes Storage Engines Version mini Connect X 10.1 Sql_mode X 10.2 Maxscale
  • 28. Connect ● ETL : Extract Transform Load ● Lecture / Ecriture / MAJ – TXT, DBF, INI, XML – MS Access, MS Excel, TBL (similaire à MERGE) – ODBC, MySQL,SQLite, Oracle, DB2, WMI... ● Locale ou distant ● Custom possible ● Accès en parallèle sur multitables
  • 29. NoSQL Document protocol ● Le module nosqlprotocol permet d'utiliser un serveur ou un cluster MariaDB – comme backend d'une application utilisant une bibliothèque client MongoDB®. ● En interne, tous les documents sont stockés dans une table contenant deux colonnes : – une colonne id pour l'identifiant de l'objet – une colonne doc pour le document lui-même. MariaDB MaxScale App id doc
  • 30. Nous retrouver ● Slack https://r.mariadb.com/join-community-slack ● Twitter https://twitter.com/lemug_fr ● Linkedin https://www.linkedin.com/groups/1627237/ ● Développeurs : https://mariadb.com/developers/ ● Github : https://github.com/mariadb-corporation ● https://mariadb.com ● https://mariadb.org
  • 31. Merci