SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
Une base de données NewSQL
POC Innovation – le 15 Fev. 2022
Christophe Villeneuve & Sébastien
Seb Christophe Villeneuve
Aujourd’hui
● Les bases de données
● Pourquoi MariaDB ?
● Que fait-on avec MariaDB ?
● Les bases de données
● Pourquoi MariaDB ?
● Que fait-on avec MariaDB ?
Qu’est ce ?
Une base données permet de stocker et de retrouver
● Données structurées
● Données semi-structurées
● Données brutes
● De l'information Les grandes familles :
● Relationel, Multi-modèle
● Document
● Key-value
● Relationel, Multi-colonne
SGBD
● = Système de gestion de base de
données
● Système servant
○ à stocker
○ à manipuler
○ à partager des données
dans une base de données
● Garantir
○ la qualité
○ la pérennité
○ la cohérence
○ la confidentialité des informations
tout en masquant la complexité des
opérations.
Les tendances
● Les bases de données
● Pourquoi MariaDB ?
● Que fait-on de MariaDB ?
Histoire de MariaDB
L’origine
Fondé par
● Michael Monty Widenius
● David Axmark
● 1983 - 1ères idées
● Fondé en 1995
● 2007 Préparation pour Nasdaq
● 2008 Rachat par Sun
● 2009 Sun racheté par Oracle
Dates importantes
MariaDB Corp and Foundation
● Protège et garantie la liberté
du code source
● MariaDB restera Open Source
● De plus en plus de moteur
disponibles
● Alimenté par la communauté
et MariaDB Corp
● https://mariadb.org
Foundation
● Propose l'expérience requise et
attendue par les entreprises
● Fournit un support 24/7
● Offre des hotfix en cas de
besoins à chaque clients
● Fournit un accès illimité aux
ingénieurs de MariaDB
● https://mariadb.com
Corporation
What is MariaDB value added
What is MariaDB
MariaDB release the power of several storage engine simultaneously
● Choose the storage engine per table
○ One database can be splitted on several storage engines simultaneously
○ Use of Smart router allow several storage usage for one single query
● Allow to perform join on several storage engines
● Some awesome new storage engines
○ MariaDB ColumnStore for very fast analytics
○ MariaDB Xpand for distributed transaction SQL and analytic capabilities
● Plenty of possible architectures
MariaDB : 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/resources/customer-stories/
Références
https://mariadb.com/docs/release-notes/mariadb-enterprise-server-10-5/
MariaDB 10.5
New features and capabilities already in 10.5
● Audit with table-specific filters
● Enhanced consistency for Semi-Sync Replication
● InnoDB no longer acquires advisory file locks by default
● ARM64 is now supported
● Improved audit log (proxy users)
MariaDB 10.6
● Atomic DDL (modification de schéma effectué en une seule opération)
https://mariadb.com/kb/en/atomic-ddl/
● IPv6 by Default
● JSON_TABLE() returns a table from JSON data.
● XA Transactions are supported on Galera
● Oracle compatibility increased
MariaDB 10.6
New release, new release number
● MariaDB Enterprise Server and Community Server 10.6
● MariaDB MaxScale 6.1
● MariaDB ColumnStore 6.1
● MariaDB Xpand 6.0 (with Columnar index)
○ First step towards a distributed HTAP DB
○ Preliminary benchmarks show a gain of 3x-50x for analytics (aggregations)
MariaDB Community Server 10.6.4
● JSON_TABLE
● SYS_SCHEMA
● Ignore Index
● Atomic DDL
● Compatibility enhancements
Features also included in MariaDB Enterprise 10.6 release
https://mariadb.com/docs/features/mariadb-enterprise-server/
MariaDB Enterprise server 10.6
● Galera XA support
● Sybase compatibility
● Oracle compatibility (ROWNUM, ADD_MONTHS, TO_CHAR)
● ARM support
● Object filters for Enterprise Audit (backport on 10.4+)
● Sybase SQL Anywhere compatible alias handling (backport on 10.5)
● Enhanced consistency for Semi-Sync Replication (backport on 10.3+)
● MariaDB Global Transaction ID replication to other Galera nodes (backport on
10.4 from 10.5)
https://mariadb.com/docs/features/mariadb-enterprise-server/
MariaDB Enterprise server value added
● Hardened version of MariaDB Community Server
● Built for production deployments
● Extensive QA
● Configured for production by default
● Scale and secure
MariaDB Enterprise Server is available to all subscription customers
Moteur de stockage
SkySQL FIRSTS
Smart Transactions
The first DBaaS to support
transactional (OLTP),
analytical (OLAP) and hybrid
(HTAP) workloads for Smart
Transactions.
From the Source
A DBaaS architected,
engineered, and supported
by database architects,
engineers, and extraordinary
support.
Community to
Mission Critical
Expansive Topologies for all
Applications Tiers.
SkySQL
Always On,
Always Ready
The cloud offering the latest
bug fixes and security
updates, always.
Le cloud version MariaDB
● Kubernetes for databases
● ServiceNow for the portal
● Prometheus and Grafana for
the monitoring dashboard
● Deep learning for the
workload analysis
Platform
● MariaDB Platform
● MariaDB Enterprise Server
● MariaDB MaxScale
● MariaDB ColumnStore
Database
● Database bug fixes and
security patches (code)
● Database administration
with SkyDBA
Support
● Databases for transactions
● Data warehouses for analytics (columnar)
● Databases for smart transactions (row + columnar)
● Transparent query routing
Features
MariaDB SkySQL – Use it, don’t manage it
● Automated
● Automatic backups
● Restore on demand
● Automatic scaling
● Monitoring included
● Backed and supported by the team that built MariaDB
● SkyDBA – Your SkySQL DBA
● Les bases de données
● Pourquoi MariaDB ?
● Que fait-on de MariaDB ?
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
Big Data
- Colonnes
Dynamiques
Développeur
- PCRE
- Microseconds
- Colonnes Virtuelles
- Sequence engine
- …
MariaDB ColumnStore (⅓)
Moteur de stockage orienté en colonnes
● Utilise une architecture de données distribuées massivement parallèle
● Système de stockage en colonnes
● Utile pour le Big Data
● Architecture (en parallèle)
○ Exécution de requêtes distribuée
○ Chargement de données
Depuis la version 10.5.4
● Disponible en tant que moteur de stockage pour le serveur MariaDB
○ Avant cela, il est uniquement disponible en téléchargement séparé.
MariaDB ColumnStore (2/3)
● Axée sur la rangée
○ Les Lignes stockées séquentiellement dans un fichier
MariaDB ColumnStore (3/3)
● Orienté en colonne
○ Chaque colonne est stockée dans un fichier séparé
New Storage engines - ColumnStore
MariaDB Enterprise ColumnStore is a columnar storage engine for
● online analytical processing (OLAP)
● data warehousing
● business intelligence
● hybrid transactional-analytical processing (HTAP)
MariaDB Enterprise ColumnStore is included with MariaDB Enterprise Server.
New Storage engines - ColumnStore
MariaDB Enterprise ColumnStore is included with MariaDB Enterprise Server.
● Increased maximum DECIMAL precision to 38
● Disk-based aggregation allows larger aggregated result sets than can fit in
memory (for queries on billions rows)
● Transactional tables can be updated with data from ColumnStore tables
● Multi user / Concurrency Architectural Change
● Circular Join Support
● Automatic Select Handler (Server vs Engine)
● Added LZ4 compression
● Added encrypted password support for config files
● Dozens of performance and compatibility improvements
Colonne dynamique
● Pont entre les BDD relationnelles et non relationnelles
● Toutes les colonnes stockées dans un « blob »
● Possibilité de le manipuler
● Possibilité de créer des index Virtuels
10
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]
],
...)
10
Colonnes Dynamiques (2/4)
10
Colonnes Dynamiques (3/4)
>SELECT nom, column_list (nosql) FROM newsql;
10
Colonnes Dynamiques (4/4)
>SELECT nom, COLUMN_JSON(nosql) FROM newsql;
>SELECT id,type,nom,
COLUMN_GET(nosql, 'couleur' as char) AS couleur,prix FROM newsql;
10
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 Installation dans My.cnf
[mysqld]
plugin-load=ha_connect.so
Connect : exemple CSV
Fichier
first,last,birthday
"Christophe","Villeneuve","Jan 1"
"PHP","ODBC","Nov 22"
> CREATE TABLE users_csv (
first varchar(32) NOT NULL,
last varchar(32) NOT NULL,
birthday varchar(50) NOT NULL
) ENGINE=CONNECT TABLE_TYPE =CSV FILE_NAME ='/var/lib/mysql/users.csv'
HEADER=1 SEP_CHAR=',' QUOTED=1;
Connect : exemple ODBC
> create Table table2
ENGINE=CONNECT TABLE_TYPE=ODBC
SRCDEF='select key, sum(l_quantity) qt from dbt3.table1 group by key'
CONNECTION='DSN=oracle;UID=login;PWD=password';
> MariaDB [dbt3]> select sum(qt) from (select qt from table2) as result;
→ 31444
JSON
● Structure JSON { Clé : Valeur }
● 2 possibilités :
○ En Fonctions :
■ https://mariadb.com/kb/en/json-functions/
○ En Table
■ https://mariadb.com/resources/blog/introducing-json-tables/
JSON en fonctions (⅓)
> CREATE TABLE products(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
name
VARCHAR(255) NOT NULL,
price
DECIMAL(9,2) NOT NULL,
stock
INTEGER NOT NULL,
attr
VARCHAR(1024),
CHECK (
attr IS NULL OR JSON_VALID(attr))
);
JSON en fonctions (⅔)
● Ajoute une nouvelle colonne et extrait les attributs ‘colour’
> ALTER TABLE products ADD attr_colour VARCHAR(32) AS (JSON_VALUE(attr, '$.colour'));
> CREATE INDEX products_attr_colour_ix ON products(attr_colour);
> INSERT INTO products VALUES(NULL, 'Jeans', 10.5, 165, NULL);
Query OK, 1 row affected (0.01 sec)
> INSERT INTO products VALUES(NULL, 'Shirt', 10.5, 78, '{"size": 42, "colour": "white"}');
Query OK, 1 row affected (0.01 sec)
> INSERT INTO products VALUES(NULL, 'Blouse', 17, 15, '{"colour": "white"}');
Query OK, 1 row affected (0.01 sec)
JSON en fonctions (3/3)
> SELECT * FROM products WHERE attr_colour = 'white';
JSON en table (¼)
> CREATE TABLE people (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
pets JSON
);
JSON en table (2/4)
> SELECT
id,
JSON_VALUE(JSON_QUERY(pets, CONCAT('$[', ind.ind, ']')), '$.type') pet_type,
JSON_VALUE(JSON_QUERY(pets, CONCAT('$[', ind.ind, ']')), '$.name') pet_name
FROM
people CROSS JOIN
(SELECT 0 AS ind UNION ALL SELECT 1 AS ind) ind;
JSON en table (¾)
> UPDATE people
SET
pets = JSON_INSERT(pets, '$[0].favorite_foods',
JSON_ARRAY('chicken', 'salmon', 'carrots'));
> UPDATE people
SET
pets = JSON_INSERT(pets, '$[1].favorite_foods',
JSON_ARRAY('tuna', 'turkey'));
[
{
"type": "dog",
"name": "Duke",
"favorite_foods": [
"chicken",
"salmon",
"carrots"
]
},
{
"type": "cat",
"name": "Fluffy",
"favorite_foods": [
"tuna",
"turkey"
]
}
]
JSON en table (4/4)
SELECT p.id, pt.pet_type, pt.pet_name, pt.favorite_food
FROM
people p,
JSON_TABLE(p.pets,
'$[*]' COLUMNS (
pet_type VARCHAR(10) PATH '$.type',
pet_name VARCHAR(25) PATH '$.name',
NESTED PATH '$.favorite_foods[*]'
COLUMNS (favorite_food VARCHAR(25) PATH '$')
)
) pt;
MyRocks storage engine
● développé chez Facebook
sudo apt-get install mariadb-plugin-rocksdb
INSTALL SONAME 'ha_rocksdb';
[mariadb]
...
plugin_load_add = ha_rocksdb
● Ecriture massive
● Remplace TokuDB
Spider (½)
● Moteur de stockage fédérés comme
○ Sharding / partitionnement
○ Transactions
● Intégré dans le pool de connexion
● Haute disponibilité Cluster Shared-Nothing
● Load balancing :
○ Accès par Spider cluster avec plusieurs serveurs MariaDB
10.5
https://mariadb.com/fr/resources/blog/uses-for-mariadb-and-the-spider-storage-engine/
Spider (2/2)
● Sharding
10.5
Xpand
● SQL distribué
● Disponible version Entreprise
● Vidéo : https://www.youtube.com/watch?v=TAvKGl0eCKI&t=51s
https://mariadb.com/products/enterprise/xpand/
New Storage engines - Xpand
● Shared-nothing architecture
● Elasticity (i.e., add/remove nodes on demand)
● Self-managing (i.e., automatic rebalancing)
● ACID transactions
● Standard SQL (including JOINs)
● Continuous availability (i.e., automatic failover)
● MariaDB/MySQL or Postgres clients
● Session failover
● Dynamic load balancing
● Allow transactions AND analytics queries on one single dataset
https://mariadb.com/products/enterprise/xpand/
New Storage engines - Xpand workloads
● Need very fast reads and writes
○ Customers expect an instant response
○ Scaling out in order to operate at the speed of memory
● Need to support lots of concurrent queries
○ Many customer interactions, each one results in multiple queries
○ Scaling out to support more concurrent processing
● Need to sustain lots of writes
○ More writes than reads, write needs to be very fast
○ Scaling out to increase disk IO
● Need to store a lot of data
○ Lots of customers, sessions, shopping carts and so on
○ Scaling out to increase storage capacity
https://github.com/mariadb-corporation/MaxScale
MariaDB MaxScale
● Proxy de base de données qui étend
○ la haute disponibilité
○ l'évolutivité
○ la sécurité du serveur MariaDB
○ permet le routage transparent des requêtes
● Simplifie le développement des applications
○ En les découplant de l'infrastructure de base de données sous-jacente.
● NoSQL
○ MongoDB / Cassandra…
Manage NoSQL (1/
[MongoDB-Listener]
type=listener
service=Read-Write-Service
protocol=nosqlprotocol
nosqlprotocol.user=maxscale
nosqlprotocol.password=Password123!
port=17017
https://mariadb.com/fr/resources/blog/how-to-manage-nosql-data-with-mariadb/
https://mariadb.com/docs/features/mariadb-maxscale/
MariaDB MaxScale 6
Maxscale introduced some exciting new features
● NoSQL protocol (Mongo API) support and compatibility
● Kafka Importer
● Allows user to stream data from a Kafka broker into MariaDB
● Kafka authentication and failover
● Visual Client/Query Editor
● MaxScale cluster configuration sync
● Increased log visibility through GUI and API
● Added prepared statement support to causal reads
● Several monitoring/UI related improvements
MaxScale : Editeur de requêtes
MaxScale 6 https://mariadb.com/fr/resources/blog/getting-started-with-the-mariadb-maxscale-gui/
● Résultat formaté
● Visualisation
● Aperçu de données
● Coloration syntaxique
KAFKA IMPORTER
MariaDB MaxScale
Kafka
Le module KafkaImporter lit
les messages de Kafka et les diffuse dans un serveur MariaDB.
Les messages sont insérés dans une table désignée
soit par le nom du sujet, soit par la clé du message
NOSQL DOCUMENT PROTOCOL
MariaDB
MaxScale
id doc
App
MaxScale 6 - https://mariadb.com/developers/
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.
Migration en 0 clic
Changer simplement de moteur de stockage
Alter table engine=ColumnStore;
Alter table engine=InnoDB;
Alter table engine=Xpand;
https://mariadb.com/fr/resources/blog/a-typical-journey-migrating-to-mariadb-from-oracle/
Oracle
compatibility
SET SQL_MODE='ORACLE';
Is equivalent to
SET SQL_MODE='PIPES_AS_CONCAT,
ANSI_QUOTES,IGNORE_SPACE,ORACLE,
NO_KEY_OPTIONS,NO_TABLE_OPTIONS,
NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,
SIMULTANEOUS_ASSIGNMENT';
Advice and examples of easy Oracle migration
● Syntaxe supportée en mode compatibilité Oracle pour les procédures stockées, les
fonctions, les curseurs, les boucles, variables, fonctions, requêtes préparés, etc :
https://mariadb.com/kb/en/sql_modeoracle/
● Compatibilité avec les packages
https://mariadb.com/kb/en/create-package/
● Quelques exemples de migrations sans refactorisation du code de l’application
○ Migration depuis Oracle vers MariaDB sans changement majeurs dans l’application -
Pickup Li - FOSDEM 2021 : https://www.youtube.com/watch?v=kQXpjCSt1So
○ Migration depuis Oracle vers MariaDB - Lixun Peng - MariaDB Server Fest 2020
https://www.youtube.com/watch?v=5pqEZ91zHsA
○ Un autre apercu de comment migrer depuis Oracle sans changement dans l’application
https://mariadb.com/fr/resources/blog/a-typical-journey-migrating-to-mariadb-from-oracle/
https://www.youtube.com/watch?v=hpxeaS7jlnk
En résumé
● MariaDB est fait pour vous, mais aussi pour tous
https://www.youtube.com/watch?v=hpxeaS7jlnk
● Il répond à toutes les attentes
● Avec des architectures simple, répliqués, distribuées
○ À chaud ou à froid
Merci
Nous retrouver :
● Slack https://r.mariadb.com/join-community-slack
● Twitter : https://twitter.com/lemug_fr
● Linkedin : https://www.linkedin.com/groups/1627237/
● Site web https://www.le-mug.fr
Quelques liens
● https://mariadb.com/developers/
● https://github.com/mariadb-corporation/mariadb-server-docker
● https://github.com/mariadb-corporation/MaxScale
● https://github.com/mariadb-corporation/maxscale-docker
● https://github.com/mariadb-corporation/MaxGui
● https://mariadb.com
● https://mariadb.org

Contenu connexe

Tendances

Tendances (20)

Hadoop
HadoopHadoop
Hadoop
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Tp docker-v21
Tp docker-v21Tp docker-v21
Tp docker-v21
 
Td dw1
Td dw1Td dw1
Td dw1
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Construisez votre première application MongoDB
Construisez votre première application MongoDBConstruisez votre première application MongoDB
Construisez votre première application MongoDB
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Chapitre 4 no sql
Chapitre 4 no sqlChapitre 4 no sql
Chapitre 4 no sql
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
Microsoft Data Platform - What's included
Microsoft Data Platform - What's includedMicrosoft Data Platform - What's included
Microsoft Data Platform - What's included
 

Similaire à Mariadb une base de données NewSQL

Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
Microsoft Technet France
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Microsoft Technet France
 

Similaire à Mariadb une base de données NewSQL (20)

GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDC
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Le nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb phpLe nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb php
 
Presentation mariaDB 10 and fork
Presentation mariaDB 10 and forkPresentation mariaDB 10 and fork
Presentation mariaDB 10 and fork
 
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
 
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
 
Retour d'expérience sur Pentaho Data Integration - ce que PDI nous a apporté
Retour d'expérience sur Pentaho Data Integration - ce que PDI nous a apportéRetour d'expérience sur Pentaho Data Integration - ce que PDI nous a apporté
Retour d'expérience sur Pentaho Data Integration - ce que PDI nous a apporté
 
Deployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysDeployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDays
 
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureDéployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement 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
 
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
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 

Plus de Christophe Villeneuve

Plus 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
 
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
 
la réalité mélangée de A a Z
la réalité mélangée de A a Zla réalité mélangée de A a Z
la réalité mélangée de A a Z
 

Mariadb une base de données NewSQL

  • 1. Une base de données NewSQL POC Innovation – le 15 Fev. 2022 Christophe Villeneuve & Sébastien
  • 3. Aujourd’hui ● Les bases de données ● Pourquoi MariaDB ? ● Que fait-on avec MariaDB ?
  • 4. ● Les bases de données ● Pourquoi MariaDB ? ● Que fait-on avec MariaDB ?
  • 5. Qu’est ce ? Une base données permet de stocker et de retrouver ● Données structurées ● Données semi-structurées ● Données brutes ● De l'information Les grandes familles : ● Relationel, Multi-modèle ● Document ● Key-value ● Relationel, Multi-colonne
  • 6. SGBD ● = Système de gestion de base de données ● Système servant ○ à stocker ○ à manipuler ○ à partager des données dans une base de données ● Garantir ○ la qualité ○ la pérennité ○ la cohérence ○ la confidentialité des informations tout en masquant la complexité des opérations.
  • 8.
  • 9. ● Les bases de données ● Pourquoi MariaDB ? ● Que fait-on de MariaDB ?
  • 10. Histoire de MariaDB L’origine Fondé par ● Michael Monty Widenius ● David Axmark ● 1983 - 1ères idées ● Fondé en 1995 ● 2007 Préparation pour Nasdaq ● 2008 Rachat par Sun ● 2009 Sun racheté par Oracle Dates importantes
  • 11. MariaDB Corp and Foundation ● Protège et garantie la liberté du code source ● MariaDB restera Open Source ● De plus en plus de moteur disponibles ● Alimenté par la communauté et MariaDB Corp ● https://mariadb.org Foundation ● Propose l'expérience requise et attendue par les entreprises ● Fournit un support 24/7 ● Offre des hotfix en cas de besoins à chaque clients ● Fournit un accès illimité aux ingénieurs de MariaDB ● https://mariadb.com Corporation
  • 12. What is MariaDB value added What is MariaDB MariaDB release the power of several storage engine simultaneously ● Choose the storage engine per table ○ One database can be splitted on several storage engines simultaneously ○ Use of Smart router allow several storage usage for one single query ● Allow to perform join on several storage engines ● Some awesome new storage engines ○ MariaDB ColumnStore for very fast analytics ○ MariaDB Xpand for distributed transaction SQL and analytic capabilities ● Plenty of possible architectures
  • 13. MariaDB : 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 ● …
  • 15. https://mariadb.com/docs/release-notes/mariadb-enterprise-server-10-5/ MariaDB 10.5 New features and capabilities already in 10.5 ● Audit with table-specific filters ● Enhanced consistency for Semi-Sync Replication ● InnoDB no longer acquires advisory file locks by default ● ARM64 is now supported ● Improved audit log (proxy users)
  • 16. MariaDB 10.6 ● Atomic DDL (modification de schéma effectué en une seule opération) https://mariadb.com/kb/en/atomic-ddl/ ● IPv6 by Default ● JSON_TABLE() returns a table from JSON data. ● XA Transactions are supported on Galera ● Oracle compatibility increased
  • 17. MariaDB 10.6 New release, new release number ● MariaDB Enterprise Server and Community Server 10.6 ● MariaDB MaxScale 6.1 ● MariaDB ColumnStore 6.1 ● MariaDB Xpand 6.0 (with Columnar index) ○ First step towards a distributed HTAP DB ○ Preliminary benchmarks show a gain of 3x-50x for analytics (aggregations)
  • 18. MariaDB Community Server 10.6.4 ● JSON_TABLE ● SYS_SCHEMA ● Ignore Index ● Atomic DDL ● Compatibility enhancements Features also included in MariaDB Enterprise 10.6 release
  • 19. https://mariadb.com/docs/features/mariadb-enterprise-server/ MariaDB Enterprise server 10.6 ● Galera XA support ● Sybase compatibility ● Oracle compatibility (ROWNUM, ADD_MONTHS, TO_CHAR) ● ARM support ● Object filters for Enterprise Audit (backport on 10.4+) ● Sybase SQL Anywhere compatible alias handling (backport on 10.5) ● Enhanced consistency for Semi-Sync Replication (backport on 10.3+) ● MariaDB Global Transaction ID replication to other Galera nodes (backport on 10.4 from 10.5)
  • 20. https://mariadb.com/docs/features/mariadb-enterprise-server/ MariaDB Enterprise server value added ● Hardened version of MariaDB Community Server ● Built for production deployments ● Extensive QA ● Configured for production by default ● Scale and secure MariaDB Enterprise Server is available to all subscription customers
  • 22. SkySQL FIRSTS Smart Transactions The first DBaaS to support transactional (OLTP), analytical (OLAP) and hybrid (HTAP) workloads for Smart Transactions. From the Source A DBaaS architected, engineered, and supported by database architects, engineers, and extraordinary support. Community to Mission Critical Expansive Topologies for all Applications Tiers. SkySQL Always On, Always Ready The cloud offering the latest bug fixes and security updates, always.
  • 23. Le cloud version MariaDB ● Kubernetes for databases ● ServiceNow for the portal ● Prometheus and Grafana for the monitoring dashboard ● Deep learning for the workload analysis Platform ● MariaDB Platform ● MariaDB Enterprise Server ● MariaDB MaxScale ● MariaDB ColumnStore Database ● Database bug fixes and security patches (code) ● Database administration with SkyDBA Support ● Databases for transactions ● Data warehouses for analytics (columnar) ● Databases for smart transactions (row + columnar) ● Transparent query routing Features
  • 24.
  • 25. MariaDB SkySQL – Use it, don’t manage it ● Automated ● Automatic backups ● Restore on demand ● Automatic scaling ● Monitoring included ● Backed and supported by the team that built MariaDB ● SkyDBA – Your SkySQL DBA
  • 26. ● Les bases de données ● Pourquoi MariaDB ? ● Que fait-on de MariaDB ?
  • 27. 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 Big Data - Colonnes Dynamiques Développeur - PCRE - Microseconds - Colonnes Virtuelles - Sequence engine - …
  • 28. MariaDB ColumnStore (⅓) Moteur de stockage orienté en colonnes ● Utilise une architecture de données distribuées massivement parallèle ● Système de stockage en colonnes ● Utile pour le Big Data ● Architecture (en parallèle) ○ Exécution de requêtes distribuée ○ Chargement de données Depuis la version 10.5.4 ● Disponible en tant que moteur de stockage pour le serveur MariaDB ○ Avant cela, il est uniquement disponible en téléchargement séparé.
  • 29. MariaDB ColumnStore (2/3) ● Axée sur la rangée ○ Les Lignes stockées séquentiellement dans un fichier
  • 30. MariaDB ColumnStore (3/3) ● Orienté en colonne ○ Chaque colonne est stockée dans un fichier séparé
  • 31. New Storage engines - ColumnStore MariaDB Enterprise ColumnStore is a columnar storage engine for ● online analytical processing (OLAP) ● data warehousing ● business intelligence ● hybrid transactional-analytical processing (HTAP) MariaDB Enterprise ColumnStore is included with MariaDB Enterprise Server.
  • 32. New Storage engines - ColumnStore MariaDB Enterprise ColumnStore is included with MariaDB Enterprise Server. ● Increased maximum DECIMAL precision to 38 ● Disk-based aggregation allows larger aggregated result sets than can fit in memory (for queries on billions rows) ● Transactional tables can be updated with data from ColumnStore tables ● Multi user / Concurrency Architectural Change ● Circular Join Support ● Automatic Select Handler (Server vs Engine) ● Added LZ4 compression ● Added encrypted password support for config files ● Dozens of performance and compatibility improvements
  • 33. Colonne dynamique ● Pont entre les BDD relationnelles et non relationnelles ● Toutes les colonnes stockées dans un « blob » ● Possibilité de le manipuler ● Possibilité de créer des index Virtuels 10
  • 34. 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] ], ...) 10
  • 36. Colonnes Dynamiques (3/4) >SELECT nom, column_list (nosql) FROM newsql; 10
  • 37. Colonnes Dynamiques (4/4) >SELECT nom, COLUMN_JSON(nosql) FROM newsql; >SELECT id,type,nom, COLUMN_GET(nosql, 'couleur' as char) AS couleur,prix FROM newsql; 10
  • 38. 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 Installation dans My.cnf [mysqld] plugin-load=ha_connect.so
  • 39. Connect : exemple CSV Fichier first,last,birthday "Christophe","Villeneuve","Jan 1" "PHP","ODBC","Nov 22" > CREATE TABLE users_csv ( first varchar(32) NOT NULL, last varchar(32) NOT NULL, birthday varchar(50) NOT NULL ) ENGINE=CONNECT TABLE_TYPE =CSV FILE_NAME ='/var/lib/mysql/users.csv' HEADER=1 SEP_CHAR=',' QUOTED=1;
  • 40. Connect : exemple ODBC > create Table table2 ENGINE=CONNECT TABLE_TYPE=ODBC SRCDEF='select key, sum(l_quantity) qt from dbt3.table1 group by key' CONNECTION='DSN=oracle;UID=login;PWD=password'; > MariaDB [dbt3]> select sum(qt) from (select qt from table2) as result; → 31444
  • 41. JSON ● Structure JSON { Clé : Valeur } ● 2 possibilités : ○ En Fonctions : ■ https://mariadb.com/kb/en/json-functions/ ○ En Table ■ https://mariadb.com/resources/blog/introducing-json-tables/
  • 42. JSON en fonctions (⅓) > CREATE TABLE products( id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, price DECIMAL(9,2) NOT NULL, stock INTEGER NOT NULL, attr VARCHAR(1024), CHECK ( attr IS NULL OR JSON_VALID(attr)) );
  • 43. JSON en fonctions (⅔) ● Ajoute une nouvelle colonne et extrait les attributs ‘colour’ > ALTER TABLE products ADD attr_colour VARCHAR(32) AS (JSON_VALUE(attr, '$.colour')); > CREATE INDEX products_attr_colour_ix ON products(attr_colour); > INSERT INTO products VALUES(NULL, 'Jeans', 10.5, 165, NULL); Query OK, 1 row affected (0.01 sec) > INSERT INTO products VALUES(NULL, 'Shirt', 10.5, 78, '{"size": 42, "colour": "white"}'); Query OK, 1 row affected (0.01 sec) > INSERT INTO products VALUES(NULL, 'Blouse', 17, 15, '{"colour": "white"}'); Query OK, 1 row affected (0.01 sec)
  • 44. JSON en fonctions (3/3) > SELECT * FROM products WHERE attr_colour = 'white';
  • 45. JSON en table (¼) > CREATE TABLE people ( id INT NOT NULL, name VARCHAR(50) NOT NULL, pets JSON );
  • 46. JSON en table (2/4) > SELECT id, JSON_VALUE(JSON_QUERY(pets, CONCAT('$[', ind.ind, ']')), '$.type') pet_type, JSON_VALUE(JSON_QUERY(pets, CONCAT('$[', ind.ind, ']')), '$.name') pet_name FROM people CROSS JOIN (SELECT 0 AS ind UNION ALL SELECT 1 AS ind) ind;
  • 47. JSON en table (¾) > UPDATE people SET pets = JSON_INSERT(pets, '$[0].favorite_foods', JSON_ARRAY('chicken', 'salmon', 'carrots')); > UPDATE people SET pets = JSON_INSERT(pets, '$[1].favorite_foods', JSON_ARRAY('tuna', 'turkey')); [ { "type": "dog", "name": "Duke", "favorite_foods": [ "chicken", "salmon", "carrots" ] }, { "type": "cat", "name": "Fluffy", "favorite_foods": [ "tuna", "turkey" ] } ]
  • 48. JSON en table (4/4) SELECT p.id, pt.pet_type, pt.pet_name, pt.favorite_food FROM people p, JSON_TABLE(p.pets, '$[*]' COLUMNS ( pet_type VARCHAR(10) PATH '$.type', pet_name VARCHAR(25) PATH '$.name', NESTED PATH '$.favorite_foods[*]' COLUMNS (favorite_food VARCHAR(25) PATH '$') ) ) pt;
  • 49. MyRocks storage engine ● développé chez Facebook sudo apt-get install mariadb-plugin-rocksdb INSTALL SONAME 'ha_rocksdb'; [mariadb] ... plugin_load_add = ha_rocksdb ● Ecriture massive ● Remplace TokuDB
  • 50. Spider (½) ● Moteur de stockage fédérés comme ○ Sharding / partitionnement ○ Transactions ● Intégré dans le pool de connexion ● Haute disponibilité Cluster Shared-Nothing ● Load balancing : ○ Accès par Spider cluster avec plusieurs serveurs MariaDB 10.5
  • 52. Xpand ● SQL distribué ● Disponible version Entreprise ● Vidéo : https://www.youtube.com/watch?v=TAvKGl0eCKI&t=51s
  • 53. https://mariadb.com/products/enterprise/xpand/ New Storage engines - Xpand ● Shared-nothing architecture ● Elasticity (i.e., add/remove nodes on demand) ● Self-managing (i.e., automatic rebalancing) ● ACID transactions ● Standard SQL (including JOINs) ● Continuous availability (i.e., automatic failover) ● MariaDB/MySQL or Postgres clients ● Session failover ● Dynamic load balancing ● Allow transactions AND analytics queries on one single dataset
  • 54. https://mariadb.com/products/enterprise/xpand/ New Storage engines - Xpand workloads ● Need very fast reads and writes ○ Customers expect an instant response ○ Scaling out in order to operate at the speed of memory ● Need to support lots of concurrent queries ○ Many customer interactions, each one results in multiple queries ○ Scaling out to support more concurrent processing ● Need to sustain lots of writes ○ More writes than reads, write needs to be very fast ○ Scaling out to increase disk IO ● Need to store a lot of data ○ Lots of customers, sessions, shopping carts and so on ○ Scaling out to increase storage capacity
  • 55. https://github.com/mariadb-corporation/MaxScale MariaDB MaxScale ● Proxy de base de données qui étend ○ la haute disponibilité ○ l'évolutivité ○ la sécurité du serveur MariaDB ○ permet le routage transparent des requêtes ● Simplifie le développement des applications ○ En les découplant de l'infrastructure de base de données sous-jacente. ● NoSQL ○ MongoDB / Cassandra…
  • 57. https://mariadb.com/docs/features/mariadb-maxscale/ MariaDB MaxScale 6 Maxscale introduced some exciting new features ● NoSQL protocol (Mongo API) support and compatibility ● Kafka Importer ● Allows user to stream data from a Kafka broker into MariaDB ● Kafka authentication and failover ● Visual Client/Query Editor ● MaxScale cluster configuration sync ● Increased log visibility through GUI and API ● Added prepared statement support to causal reads ● Several monitoring/UI related improvements
  • 58. MaxScale : Editeur de requêtes MaxScale 6 https://mariadb.com/fr/resources/blog/getting-started-with-the-mariadb-maxscale-gui/ ● Résultat formaté ● Visualisation ● Aperçu de données ● Coloration syntaxique
  • 59. KAFKA IMPORTER MariaDB MaxScale Kafka Le module KafkaImporter lit les messages de Kafka et les diffuse dans un serveur MariaDB. Les messages sont insérés dans une table désignée soit par le nom du sujet, soit par la clé du message
  • 60. NOSQL DOCUMENT PROTOCOL MariaDB MaxScale id doc App MaxScale 6 - https://mariadb.com/developers/ 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.
  • 62. Changer simplement de moteur de stockage Alter table engine=ColumnStore; Alter table engine=InnoDB; Alter table engine=Xpand;
  • 63. https://mariadb.com/fr/resources/blog/a-typical-journey-migrating-to-mariadb-from-oracle/ Oracle compatibility SET SQL_MODE='ORACLE'; Is equivalent to SET SQL_MODE='PIPES_AS_CONCAT, ANSI_QUOTES,IGNORE_SPACE,ORACLE, NO_KEY_OPTIONS,NO_TABLE_OPTIONS, NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER, SIMULTANEOUS_ASSIGNMENT';
  • 64. Advice and examples of easy Oracle migration ● Syntaxe supportée en mode compatibilité Oracle pour les procédures stockées, les fonctions, les curseurs, les boucles, variables, fonctions, requêtes préparés, etc : https://mariadb.com/kb/en/sql_modeoracle/ ● Compatibilité avec les packages https://mariadb.com/kb/en/create-package/ ● Quelques exemples de migrations sans refactorisation du code de l’application ○ Migration depuis Oracle vers MariaDB sans changement majeurs dans l’application - Pickup Li - FOSDEM 2021 : https://www.youtube.com/watch?v=kQXpjCSt1So ○ Migration depuis Oracle vers MariaDB - Lixun Peng - MariaDB Server Fest 2020 https://www.youtube.com/watch?v=5pqEZ91zHsA ○ Un autre apercu de comment migrer depuis Oracle sans changement dans l’application https://mariadb.com/fr/resources/blog/a-typical-journey-migrating-to-mariadb-from-oracle/
  • 65. https://www.youtube.com/watch?v=hpxeaS7jlnk En résumé ● MariaDB est fait pour vous, mais aussi pour tous https://www.youtube.com/watch?v=hpxeaS7jlnk ● Il répond à toutes les attentes ● Avec des architectures simple, répliqués, distribuées ○ À chaud ou à froid
  • 66. Merci Nous retrouver : ● Slack https://r.mariadb.com/join-community-slack ● Twitter : https://twitter.com/lemug_fr ● Linkedin : https://www.linkedin.com/groups/1627237/ ● Site web https://www.le-mug.fr
  • 67. Quelques liens ● https://mariadb.com/developers/ ● https://github.com/mariadb-corporation/mariadb-server-docker ● https://github.com/mariadb-corporation/MaxScale ● https://github.com/mariadb-corporation/maxscale-docker ● https://github.com/mariadb-corporation/MaxGui ● https://mariadb.com ● https://mariadb.org