SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
1 / 53
MySQL 5.7 & JSON
Nouvelles Oportunités pour les Dévelopeurs
 
Septembre 2016
 
Frédéric Descamps
MySQL Community Manager
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
2 / 53
 
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purpose only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. The development, release and timing of any features or
functionality described for Oracle's product remains at the sole discretion of Oracle.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
3 / 53
about.me/lefred
Qui suis-je ?
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
4 / 53
Frédéric Descamps
@lefred
MySQL Evangelist
Managing MySQL since 3.23
devops believer
http://lefred.be
http://lefred.be
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
5 / 53
SGDB & MySQL
Base de données Relationnelle
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
6 / 53
Bases de données Relationnelles
Intégrité des données
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
7 / 53
Bases de données Relationnelles
Intégrité des données
normalization
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
8 / 53
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
9 / 53
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Atomicité, Cohérence, Isolarion et Durabilité - ACID
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
10 / 53
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Atomicité, Cohérence, Isolarion et Durabilité - ACID
transactions
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
11 / 53
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Atomicité, Cohérence, Isolarion et Durabilité - ACID
transactions
SQL
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
12 / 53
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Atomicité, Cohérence, Isolarion et Durabilité - ACID
transactions
SQL
puissant language de requêtes
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
13 / 53
SGDB & MySQL
Base de données NoSQL
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
14 / 53
NoSQL ou Base de données Documents
Sans schéma
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
15 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
16 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
17 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Structures flexibles des données
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
18 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Structures flexibles des données
objets et tableaux imbriqués
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
19 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Structures flexibles des données
objets et tableaux imbriqués
certaines données sont simplement naturellement non structurées et ne
peuvent être modélisées de façon optimale dans un modèle relationel
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
20 / 53
NoSQL ou Base de données Documents
Sans schéma
pas de design de schémas, pas de normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Structures flexibles des données
objets et tableaux imbriqués
certaines données sont simplement naturellement non structurées et ne
peuvent être modélisées de façon optimale dans un modèle relationel
persistence des objets sans utilisation d'un ORM(mappingobjet-relationnel)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
21 / 53
NoSQL ou Base de données Documents (2)
JSON
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
22 / 53
NoSQL ou Base de données Documents (2)
JSON
proche du frontend
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
23 / 53
NoSQL ou Base de données Documents (2)
JSON
proche du frontend
"natif" en Javascript
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
24 / 53
NoSQL ou Base de données Documents (2)
JSON
proche du frontend
"natif" en Javascript
utilisé en Node.js
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
25 / 53
NoSQL ou Base de données Documents (2)
JSON
proche du frontend
"natif" en Javascript
utilisé en Node.js
Aprentissage facile, et facile à utiliser
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
26 / 53
Bases de données Relationnelles ou Base de
données Documents
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
27 / 53
Bases de données Relationnelles ou Base de
données Documents
Pourquoi pas les deux ?
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
28 / 53
MySQL 5.7
Support de JSON
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
29 / 53
Support JSON
Type natif de données (native datatype)
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
30 / 53
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dans des tables MySQL
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
31 / 53
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dans des tables MySQL
Format de stokage JSON en binaire
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
32 / 53
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dans des tables MySQL
Format de stokage JSON en binaire
Conversion à partir des types SQL "natifs" vers des valeurs JSON
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
33 / 53
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dans des tables MySQL
Format de stokage JSON en binaire
Conversion à partir des types SQL "natifs" vers des valeurs JSON
Functions de manipulation du JSON
extraire (JSON_EXTRACT, JSON_KEYS, ...)
inpecter (JSON_CONTAINS, ...)
modifier (JSON_SET, JSON_INSERT, JSON_REMOVE, ...)
création de tableaux et d'objets (JSON_ARRAY, JSON_OBJECT)
recherche d'objets (JSON_SEARCH)
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
34 / 53
Support JSON (2)
Inline SQL JSON path expressions
SELECT doc->'$.object.array[0].item' FROM some_table
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
35 / 53
Support JSON (2)
Inline SQL JSON path expressions
SELECT doc->'$.object.array[0].item' FROM some_table
Opérateurs booléens (comparaison de valeurs JSON, ...)
foo = doc->'$.field'
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
36 / 53
Support JSON (3)
le meilleur pour la fin...
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
37 / 53
Support JSON (3)
le meilleur pour la fin...
Colonnes Générées/Virtuelles (generated/virtual columns)
Index de données JSON
Clés étrangères vers données JSON
Vues SQL pour des données JSON
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
38 / 53
Support JSON (3)
le meilleur pour la fin...
Colonnes Générées/Virtuelles (generated/virtual columns)
Index de données JSON
Clés étrangères vers données JSON
Vues SQL pour des données JSON
ALTER TABLE test_features
ADD COLUMN street VARCHAR(30)
GENERATED ALWAYS AS
(json_unquote(json_extract(`feature`,'$.properties.STREET')))
VIRTUAL;
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
39 / 53
Document
Cas d'utilisation
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
40 / 53
Extraire du JSON du DB Relationnelle
Relational In, Relational + Document Out
Données stockées dans des tables relationnelles, mais le fronted utilise JSON
Le JSON fait directement du mapping des structures de données pour plusieurs
langages
Fonctions SQL pour construire du JSON
JSON_OBJECT(), JSON_ARRAY()
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
41 / 53
Exemple:
SELECT JSON_OBJECT('cust_id', id, 'name', name, 'email', email) FROM customer;
CREATE VIEW customer_json AS
SELECT JSON_OBJECT('cust_id', id, 'name', name, 'email', email)
FROM customer;
SELECT * FROM customer_json;
Les modifications et les insertions se font toujours dans les colonnes de la table.
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
42 / 53
Utiliser MySQL comme container de Documents
JSON
Document In, Relational + Document Out
Virtuellement sans schéma (schemaless)
Données non-structurées
Pas de structure fixe, les enregistrements peuvent avoir des champs différents
Exemple: "product_info", "propriétés", "options", ...
Les données ne sont pas facilement modélisables dans un modèle relationnel, voir
impossible
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
43 / 53
product_info
product_id attribute value
9 size M
9 color red
9 fabric cotton
11 flavour strawberry
12 capacity 128G
12 spee class class 10
{
"product_id": 9,
"size": "M",
"color": "red",
"fabric": "cotton"
},
{
"product_id": 11,
"flavour": "strawberry"
},
{ "product+id": 12,
"capacity" "128GB"
"speed class": "class 10"
}
Utiliser MySQL comme container de Documents
JSON (2)
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
44 / 53
Utiliser MySQL comme container de Documents
JSON
Une table MySQL ordinaire avec une colonne JSON
Les colonnes générées permettent au moteur SQL to vérifier dans les données MySQL.
colonnes virtuelles
clés primaires
Indexes
Clés étrangères
Ecriture direcement dans le JSON
Lis dans un premier temps, les informations du JSON
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
45 / 53
Solution Hybride de Relationnel et de JSON
Relational + Document In, Relational + Document out
Les bases de données sont majoritèrement relationnelles
Colonnes JSON dans les tables relationnelles
Les requêtes peuvent mixer plusieurs backends
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
46 / 53
Document Store
The X DevAPI
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
47 / 53
Opérations orientées Document via SQL
Très puissant
Permet la construction de requêtes complexes
Mais... encore difficile à utiliser
CREATE TABLE product (
id VARCHAR(32) GENERATED ALWAYS AS (JSON_EXTRACT(doc, '$.id')) STORED,
doc JSON
);
INSERT INTO product VALUYES (1, '{...}');
SELECT * FROM product WHERE JSON_EXTRACT(doc, '$.field') = value;
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
48 / 53
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD de base (Create, Read, Update, Delete)
Native Language API
Pas nécessaire de connaître le SQL
X Protocol
les requêtes CRUD sont encodées au niveau du protocol
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
49 / 53
Exemple
 
mydb = session.getSchema("mydb");
mydb.createCollection("products");
products = mydb.getCollection("products");
products.add({"name":"bananas", "color":"yellow"}).execute();
products.find("color = 'yellow'").sort(["name"]).execute();
products.modify("product_id = 123").set("color", "red").execute();
products.remove("product_id = 123").execute();
mydb.post.createIndex("email").field("author.email", "text(30)", false)
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
50 / 53
tout nouveau tout chaud
MySQL Shell
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
51 / 53
MySQL Shell
MySQL Shell est un client avancé en ligne commande.En plus de SQL, MySQL Shell offre
également des capacités de script en Javascript et Python. Lorsque MySQL Shell est
connecté au serveur MySQL via le protocol X, le X DevAPI peut être utilisé pour manipuler
les deux types de données, relationnelles et documents.
  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
52 / 53
Questions ?
Merci !
 
 
 
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
53 / 53

Contenu connexe

Tendances

Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Severalnines
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQLFrederic Descamps
 
Oracle Database Vault
Oracle Database VaultOracle Database Vault
Oracle Database VaultKhalid ALLILI
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresEDB
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginnersyazidaguedal
 
Oracle 12c in memory en action
Oracle 12c in memory en actionOracle 12c in memory en action
Oracle 12c in memory en actionLaurent Leturgez
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g noble Bajoli
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudVictor Coustenoble
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache ZookeeperMichaël Morello
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraVictor Coustenoble
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Mathias Kluba
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Jean-Philippe PINTE
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7Lucian Carabet
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysVictor Coustenoble
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTVictor Coustenoble
 

Tendances (19)

Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
Oracle Cluster Rac
Oracle Cluster RacOracle Cluster Rac
Oracle Cluster Rac
 
Oracle Database Vault
Oracle Database VaultOracle Database Vault
Oracle Database Vault
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers Postgres
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginners
 
Oracle 12c in memory en action
Oracle 12c in memory en actionOracle 12c in memory en action
Oracle 12c in memory en action
 
Test
TestTest
Test
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache Zookeeper
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoT
 

En vedette

MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMatt Lord
 
MySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreMySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreOlivier DASINI
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionOlivier DASINI
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinOlivier DASINI
 
MySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMorgan Tocker
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterOlivier DASINI
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceOlivier DASINI
 
Architectures haute disponibilité avec MySQL
Architectures haute disponibilité avec MySQLArchitectures haute disponibilité avec MySQL
Architectures haute disponibilité avec MySQLOlivier DASINI
 
Case Study: MySQL migration from latin1 to UTF-8
Case Study: MySQL migration from latin1 to UTF-8Case Study: MySQL migration from latin1 to UTF-8
Case Study: MySQL migration from latin1 to UTF-8Olivier DASINI
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016Frederic Descamps
 
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Frederic Descamps
 
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...Frederic Descamps
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminFrederic Descamps
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB ClusterFrederic Descamps
 
OSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsOSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsFrederic Descamps
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Camille Roux
 
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminPluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminFrederic Descamps
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Frederic Descamps
 
Upgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtimeUpgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtimeOlivier DASINI
 

En vedette (20)

MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
MySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreMySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document Store
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise Edition
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
 
MySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMySQL Cloud Service Deep Dive
MySQL Cloud Service Deep Dive
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
 
Architectures haute disponibilité avec MySQL
Architectures haute disponibilité avec MySQLArchitectures haute disponibilité avec MySQL
Architectures haute disponibilité avec MySQL
 
Case Study: MySQL migration from latin1 to UTF-8
Case Study: MySQL migration from latin1 to UTF-8Case Study: MySQL migration from latin1 to UTF-8
Case Study: MySQL migration from latin1 to UTF-8
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016
 
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
 
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadmin
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
 
OSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsOSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devops
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Moins on code, mieux on se porte !
Moins on code, mieux on se porte !
 
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminPluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadmin
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
 
Upgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtimeUpgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtime
 

Similaire à MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpheremodelspherepro
 
Optimisez vos Recherches, Formez-vous sur Expernova !
Optimisez vos Recherches, Formez-vous sur Expernova !Optimisez vos Recherches, Formez-vous sur Expernova !
Optimisez vos Recherches, Formez-vous sur Expernova !Expernova
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABESABES
 
Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...AbdeslamAMRANE3
 
SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019Maxime Lefrançois
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSoft Computing
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
Normandy JUG - Elasticsearch
Normandy JUG - ElasticsearchNormandy JUG - Elasticsearch
Normandy JUG - ElasticsearchDavid Pilato
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilFabernovel
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...AZUG FR
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Grouparagot1
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdfhbadir
 

Similaire à MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs (20)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSphere
 
Optimisez vos Recherches, Formez-vous sur Expernova !
Optimisez vos Recherches, Formez-vous sur Expernova !Optimisez vos Recherches, Formez-vous sur Expernova !
Optimisez vos Recherches, Formez-vous sur Expernova !
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
 
SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Normandy JUG - Elasticsearch
Normandy JUG - ElasticsearchNormandy JUG - Elasticsearch
Normandy JUG - Elasticsearch
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outil
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Group
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
 

Plus de Frederic Descamps

MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionFrederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsFrederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021Frederic Descamps
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDSFrederic Descamps
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...Frederic Descamps
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDSFrederic Descamps
 

Plus de Frederic Descamps (20)

MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
 

MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs

  • 2. MySQL 5.7 & JSON Nouvelles Oportunités pour les Dévelopeurs   Septembre 2016   Frédéric Descamps MySQL Community Manager   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 2 / 53
  • 3.   Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle's product remains at the sole discretion of Oracle. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 3 / 53
  • 4. about.me/lefred Qui suis-je ?   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 4 / 53
  • 5. Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.23 devops believer http://lefred.be http://lefred.be Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 5 / 53
  • 6. SGDB & MySQL Base de données Relationnelle   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 6 / 53
  • 7. Bases de données Relationnelles Intégrité des données Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 7 / 53
  • 8. Bases de données Relationnelles Intégrité des données normalization   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 8 / 53
  • 9. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 9 / 53
  • 10. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Atomicité, Cohérence, Isolarion et Durabilité - ACID   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 10 / 53
  • 11. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Atomicité, Cohérence, Isolarion et Durabilité - ACID transactions Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 11 / 53
  • 12. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Atomicité, Cohérence, Isolarion et Durabilité - ACID transactions SQL   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 12 / 53
  • 13. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Atomicité, Cohérence, Isolarion et Durabilité - ACID transactions SQL puissant language de requêtes Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 13 / 53
  • 14. SGDB & MySQL Base de données NoSQL   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 14 / 53
  • 15. NoSQL ou Base de données Documents Sans schéma Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 15 / 53
  • 16. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc...   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 16 / 53
  • 17. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 17 / 53
  • 18. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Structures flexibles des données   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 18 / 53
  • 19. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Structures flexibles des données objets et tableaux imbriqués Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 19 / 53
  • 20. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Structures flexibles des données objets et tableaux imbriqués certaines données sont simplement naturellement non structurées et ne peuvent être modélisées de façon optimale dans un modèle relationel   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 20 / 53
  • 21. NoSQL ou Base de données Documents Sans schéma pas de design de schémas, pas de normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Structures flexibles des données objets et tableaux imbriqués certaines données sont simplement naturellement non structurées et ne peuvent être modélisées de façon optimale dans un modèle relationel persistence des objets sans utilisation d'un ORM(mappingobjet-relationnel) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 21 / 53
  • 22. NoSQL ou Base de données Documents (2) JSON   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 22 / 53
  • 23. NoSQL ou Base de données Documents (2) JSON proche du frontend Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 23 / 53
  • 24. NoSQL ou Base de données Documents (2) JSON proche du frontend "natif" en Javascript   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 24 / 53
  • 25. NoSQL ou Base de données Documents (2) JSON proche du frontend "natif" en Javascript utilisé en Node.js Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 25 / 53
  • 26. NoSQL ou Base de données Documents (2) JSON proche du frontend "natif" en Javascript utilisé en Node.js Aprentissage facile, et facile à utiliser   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 26 / 53
  • 27. Bases de données Relationnelles ou Base de données Documents Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 27 / 53
  • 28. Bases de données Relationnelles ou Base de données Documents Pourquoi pas les deux ?   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 28 / 53
  • 29. MySQL 5.7 Support de JSON Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 29 / 53
  • 30. Support JSON Type natif de données (native datatype)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 30 / 53
  • 31. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dans des tables MySQL Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 31 / 53
  • 32. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dans des tables MySQL Format de stokage JSON en binaire   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 32 / 53
  • 33. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dans des tables MySQL Format de stokage JSON en binaire Conversion à partir des types SQL "natifs" vers des valeurs JSON Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 33 / 53
  • 34. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dans des tables MySQL Format de stokage JSON en binaire Conversion à partir des types SQL "natifs" vers des valeurs JSON Functions de manipulation du JSON extraire (JSON_EXTRACT, JSON_KEYS, ...) inpecter (JSON_CONTAINS, ...) modifier (JSON_SET, JSON_INSERT, JSON_REMOVE, ...) création de tableaux et d'objets (JSON_ARRAY, JSON_OBJECT) recherche d'objets (JSON_SEARCH)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 34 / 53
  • 35. Support JSON (2) Inline SQL JSON path expressions SELECT doc->'$.object.array[0].item' FROM some_table Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 35 / 53
  • 36. Support JSON (2) Inline SQL JSON path expressions SELECT doc->'$.object.array[0].item' FROM some_table Opérateurs booléens (comparaison de valeurs JSON, ...) foo = doc->'$.field'   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 36 / 53
  • 37. Support JSON (3) le meilleur pour la fin... Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 37 / 53
  • 38. Support JSON (3) le meilleur pour la fin... Colonnes Générées/Virtuelles (generated/virtual columns) Index de données JSON Clés étrangères vers données JSON Vues SQL pour des données JSON   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 38 / 53
  • 39. Support JSON (3) le meilleur pour la fin... Colonnes Générées/Virtuelles (generated/virtual columns) Index de données JSON Clés étrangères vers données JSON Vues SQL pour des données JSON ALTER TABLE test_features ADD COLUMN street VARCHAR(30) GENERATED ALWAYS AS (json_unquote(json_extract(`feature`,'$.properties.STREET'))) VIRTUAL; Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 39 / 53
  • 41. Extraire du JSON du DB Relationnelle Relational In, Relational + Document Out Données stockées dans des tables relationnelles, mais le fronted utilise JSON Le JSON fait directement du mapping des structures de données pour plusieurs langages Fonctions SQL pour construire du JSON JSON_OBJECT(), JSON_ARRAY() Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 41 / 53
  • 42. Exemple: SELECT JSON_OBJECT('cust_id', id, 'name', name, 'email', email) FROM customer; CREATE VIEW customer_json AS SELECT JSON_OBJECT('cust_id', id, 'name', name, 'email', email) FROM customer; SELECT * FROM customer_json; Les modifications et les insertions se font toujours dans les colonnes de la table.   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 42 / 53
  • 43. Utiliser MySQL comme container de Documents JSON Document In, Relational + Document Out Virtuellement sans schéma (schemaless) Données non-structurées Pas de structure fixe, les enregistrements peuvent avoir des champs différents Exemple: "product_info", "propriétés", "options", ... Les données ne sont pas facilement modélisables dans un modèle relationnel, voir impossible Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 43 / 53
  • 44. product_info product_id attribute value 9 size M 9 color red 9 fabric cotton 11 flavour strawberry 12 capacity 128G 12 spee class class 10 { "product_id": 9, "size": "M", "color": "red", "fabric": "cotton" }, { "product_id": 11, "flavour": "strawberry" }, { "product+id": 12, "capacity" "128GB" "speed class": "class 10" } Utiliser MySQL comme container de Documents JSON (2)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 44 / 53
  • 45. Utiliser MySQL comme container de Documents JSON Une table MySQL ordinaire avec une colonne JSON Les colonnes générées permettent au moteur SQL to vérifier dans les données MySQL. colonnes virtuelles clés primaires Indexes Clés étrangères Ecriture direcement dans le JSON Lis dans un premier temps, les informations du JSON Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 45 / 53
  • 46. Solution Hybride de Relationnel et de JSON Relational + Document In, Relational + Document out Les bases de données sont majoritèrement relationnelles Colonnes JSON dans les tables relationnelles Les requêtes peuvent mixer plusieurs backends   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 46 / 53
  • 47. Document Store The X DevAPI Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 47 / 53
  • 48. Opérations orientées Document via SQL Très puissant Permet la construction de requêtes complexes Mais... encore difficile à utiliser CREATE TABLE product ( id VARCHAR(32) GENERATED ALWAYS AS (JSON_EXTRACT(doc, '$.id')) STORED, doc JSON ); INSERT INTO product VALUYES (1, '{...}'); SELECT * FROM product WHERE JSON_EXTRACT(doc, '$.field') = value;   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 48 / 53
  • 49. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD de base (Create, Read, Update, Delete) Native Language API Pas nécessaire de connaître le SQL X Protocol les requêtes CRUD sont encodées au niveau du protocol Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 49 / 53
  • 50. Exemple   mydb = session.getSchema("mydb"); mydb.createCollection("products"); products = mydb.getCollection("products"); products.add({"name":"bananas", "color":"yellow"}).execute(); products.find("color = 'yellow'").sort(["name"]).execute(); products.modify("product_id = 123").set("color", "red").execute(); products.remove("product_id = 123").execute(); mydb.post.createIndex("email").field("author.email", "text(30)", false)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 50 / 53
  • 51. tout nouveau tout chaud MySQL Shell Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 51 / 53
  • 52. MySQL Shell MySQL Shell est un client avancé en ligne commande.En plus de SQL, MySQL Shell offre également des capacités de script en Javascript et Python. Lorsque MySQL Shell est connecté au serveur MySQL via le protocol X, le X DevAPI peut être utilisé pour manipuler les deux types de données, relationnelles et documents.   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 52 / 53