SlideShare une entreprise Scribd logo
1  sur  90
Télécharger pour lire hors ligne
1 / 90
2 / 90
 
Safe Harbor Statement
The following is intended to outline our generalproduct direction. It isintended for
information purpose only, and may not be incorporated into any contract. It isnot a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. Thedevelopment, release and timing of any features or
functionality described for Oracle's product remains at thesole discretion of Oracle.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
3 / 90
about.me/lefred
Qui suis-je ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
4 / 90
Frédéric Descamps
@lefred
Évangéliste MySQL
BidouilleMySQLdepuis la version 3.23
devops croyant et praticant
MySQLCommunity Manager depuis mai
2016
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
5 / 90
SGDB & MySQL
Base de données Relationnelles
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
6 / 90
Bases de données Relationnelles
Intégrité des données
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
7 / 90
Bases de données Relationnelles
Intégrité des données
normalization
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
8 / 90
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
9 / 90
Bases de données Relationnelles
Intégrité des données
normalization
contraintes (clés étrangères, ...)
Atomicité, Cohérence, Isolarion et Durabilité - ACID
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
10 / 90
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
11 / 90
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
12 / 90
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
13 / 90
SGDB & MySQL
Base de données NoSQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
14 / 90
NoSQL ou Document Store
Sans schéma
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
15 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
16 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde normalization, de clés étrangères, de
contraintes, de type de données (data types), etc...
dévelopement initial très rapide
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
17 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
18 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
19 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
20 / 90
NoSQL ou Document Store
Sans schéma
pas de design de schémas, pasde 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(mapping objet-relationnel)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
21 / 90
NoSQL ou Document Store (2)
JSON
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
22 / 90
NoSQL ou Document Store (2)
JSON
proche du frontend
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
23 / 90
NoSQL ou Document Store (2)
JSON
proche du frontend
"natif" en Javascript
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
24 / 90
NoSQL ou Document Store (2)
JSON
proche du frontend
"natif" en Javascript
utilisé en Node.js
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
25 / 90
NoSQL ou Document Store (2)
JSON
proche du frontend
"natif" en Javascript
utilisé en Node.js
Aprentissage facile, et facile àutiliser
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
26 / 90
Les challenges actuels
les développeurs veulent avancer plus rapidement
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
27 / 90
Les challenges actuels
les développeurs veulent avancer plus rapidement
le délai de mise en productionest un coût supérieur
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
28 / 90
Les challenges actuels
les développeurs veulent avancer plus rapidement
le délai de mise en productionest un coût supérieur
rapidité de création de prototypes, itérations rapides, ...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
29 / 90
Avantages de SQL et de NoSQL
NoSQL SQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
30 / 90
Et donc, Bases de données Relationnelles ou Document Store ??
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
31 / 90
Et donc, Bases de données Relationnelles ou Document Store ??
Pourquoi pas les deux ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
32 / 90
Quelles sont les étapes ?
NoSQL avec MySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
33 / 90
Faire de MySQL un Document Store
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
34 / 90
Faire de MySQL un Document Store
1.support de JSON datatype
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
35 / 90
Faire de MySQL un Document Store
1.support de JSON datatype
2.CRUD Operations
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
36 / 90
Faire de MySQL un Document Store
1.support de JSON datatype
2.CRUD Operations
3.X Plugin
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
37 / 90
Faire de MySQL un Document Store
1.support de JSON datatype
2.CRUD Operations
3.X Plugin
4.X protocol &MySQLShell
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
38 / 90
MySQL 5.7
Support de JSON
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
39 / 90
Support JSON
Type natif de données (native datatype)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
40 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
41 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
42 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"natifs" vers des valeurs JSON
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
43 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"natifs" vers des valeurs JSON
Functions de manipulation du JSON
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
44 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"natifs" vers des valeurs JSON
Functions de manipulation du JSON
extraire (JSON_EXTRACT, JSON_KEYS, ...)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
45 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"natifs" vers des valeurs JSON
Functions de manipulation du JSON
extraire (JSON_EXTRACT, JSON_KEYS, ...)
inpecter (JSON_CONTAINS, ...)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
46 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"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, ...)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
47 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"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)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
48 / 90
Support JSON
Type natif de données (native datatype)
Valeurs en JSON stockées dansdes tables MySQL
Format de stokage JSON en binaire (UTF8MB4)
Conversion à partir des typesSQL"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 @ 2017 Oracle and/or its affiliates. All rights reserved.
49 / 90
Support JSON (2)
Inline SQL JSON path expressions
SELECT doc->'$.object.array[0].item' FROM some_table
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
50 / 90
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->'$. eld'
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
51 / 90
Support JSON (3)
le meilleur pour la fin...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
52 / 90
Support JSON (3)
le meilleur pour la fin...
Colonnes Générées/Virtuelles(generated/virtual columns)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
53 / 90
Support JSON (3)
le meilleur pour la fin...
Colonnes Générées/Virtuelles(generated/virtual columns)
Index de données JSON
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
54 / 90
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
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
55 / 90
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
56 / 90
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
57 / 90
Document Store
Opérations CRUD
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
58 / 90
Opérations CRUD
Create, Read, Update et Delete (CRUD) sont les 4 opérations qui peuvent être exécutées
sur une collection (DocumentStore Schema) ou une table.
CREATE - collection.add()
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
59 / 90
Opérations CRUD (2)
READ - collection.find()
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
60 / 90
Opérations CRUD (3)
UPDATE - collection.modify()
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
61 / 90
Opérations CRUD (4)
DELETE - collection.remove()
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
62 / 90
Document Store
X Plugin
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
63 / 90
X Plugin
Plugin du serveurMySQLqui active la communication en utilisant le X Protocol.
Ce pluging:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
64 / 90
X Plugin
Plugin du serveurMySQLqui active la communication en utilisant le X Protocol.
Ce pluging:
supporte les clients ayant implémenté le X DevAPI
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
65 / 90
X Plugin
Plugin du serveurMySQLqui active la communication en utilisant le X Protocol.
Ce pluging:
supporte les clients ayant implémenté le X DevAPI
transformeMySQLen Document Store.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
66 / 90
X Plugin
Plugin du serveurMySQLqui active la communication en utilisant le X Protocol.
Ce pluging:
supporte les clients ayant implémenté le X DevAPI
transformeMySQLen Document Store.
mysql> INSTALL PLUGIN mysqlx SONAME "mysqlx.so"
ou
mysqlsh -u user --classic --dba enableXProtocol
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
67 / 90
Document Store
X Protocol
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
68 / 90
X Protocol
Protocole qui permet de communiquer avec un MySQLServer sur lequel X Plugin est activé.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
69 / 90
X Protocol
Protocole qui permet de communiquer avec un MySQLServer sur lequel X Plugin est activé.
Et donc le X Protocol permet d´effectuer des opéarations CRUD et SQL, l´authentification
via SASL, le "streaming" (pipelining) des commandes.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
70 / 90
Document Store
The X DevAPI
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
71 / 90
Opérations orientées Document via SQL
Très puissant
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
72 / 90
Opérations orientées Document via SQL
Très puissant
Permet la construction de requêtes complexes
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
73 / 90
Opérations orientées Document via SQL
Très puissant
Permet la construction de requêtes complexes
Mais... encore et toujours difficile à utiliser pour les non initiés
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
74 / 90
Opérations orientées Document via SQL
Très puissant
Permet la construction de requêtes complexes
Mais... encore et toujours difficile à utiliser pour les non initiés
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, '$. eld') = value;
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
75 / 90
The X DevAPI
Abstraction au-dessus de SQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
76 / 90
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
77 / 90
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete)
Native Language API
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
78 / 90
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete)
Native Language API
Pas nécessaire de connaître le SQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
79 / 90
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete)
Native Language API
Pas nécessaire de connaître le SQL
X Protocol
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
80 / 90
The X DevAPI
Abstraction au-dessus de SQL
Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete)
Native Language API
Pas nécessaire de connaître le SQL
X Protocol
les requêtes CRUD sont encodées auniveaudu protocol
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
81 / 90
Exemple
mysql-py> mybooks. nd("Title LIKE 'Und%'")
[
{
"Authors": [
"Alexander Sasha Pachev",
"Sasha Pachev"
],
"ISBN-13": "9780596009571",
"Language": "en",
"Publisher": ""O'Reilly Media, Inc."",
"Title": "Understanding MySQL Internals",
"Year": "2007",
"_id": "ce9fd5b762ffe6117055685b359e77d5"
}
]
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
82 / 90
Exemple
mysql-py> mybooks. nd("Title LIKE 'Und%'")
[
{
"Authors": [
"Alexander Sasha Pachev",
"Sasha Pachev"
],
"ISBN-13": "9780596009571",
"Language": "en",
"Publisher": ""O'Reilly Media, Inc."",
"Title": "Understanding MySQL Internals",
"Year": "2007",
"_id": "ce9fd5b762ffe6117055685b359e77d5"
}
]
EtMySQLle transforme de manière transparente en:
SELECT doc FROM `books`.`mybooks`
WHERE (JSON_UNQUOTE(JSON_EXTRACT(doc,'$.Title'))
LIKE 'Und%');
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
83 / 90
Document Store & X DevAPI & MySQL Shell
petite démo ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
84 / 90
Démo (1)
[fred@imac2 ~] $ mysqlsh --py
Welcome to MySQL Shell 1.0.8-rc
Copyright (c) 2016, 2017, Oracle and/or its af liates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
af liates. Other names may be trademarks of their respective
owners.
Type 'help', 'h' or '?' for help, type 'quit' or 'q' to exit.
Currently in Python mode. Use sql to switch to SQL mode and execute queries.
mysql-py> c root@localhost
Creating a Session to 'root@localhost'
Enter password:
Node Session successfully established. No default schema selected.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
85 / 90
Démo (2)
mysql-py> db=session.create_schema("books")
mysql-py> mybooks=db.create_collection('mybooks')
mysql-py> from isbntools.app import *
mysql-py> isbn=9781449314286
mysql-py> doc=meta(str(isbn))
mysql-py> doc["Annee"]=doc.pop("Year")
mysql-py> mybooks.add(doc)
Query OK, 1 item affected (0.10 sec)
mysql-py> isbn=9780596009571
mysql-py> doc=meta(str(isbn))
mysql-py> doc["Annee"]=doc.pop("Year")
mysql-py> mybooks.add(doc)
mysql-py> isbn=9781430230571
mysql-py> doc=meta(str(isbn))
mysql-py> doc["Annee"]=doc.pop("Year")
mysql-py> mybooks.add(doc)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
86 / 90
Démo (3)
mysql-py> mybooks. nd()
[
{
"Authors": [
"Baron Schwartz",
"Peter Zaitsev",
"Vadim Tkachenko"
],
"ISBN-13": "9781449314286",
"Language": "en",
"Publisher": ""O'Reilly Media, Inc."",
"Title": "High Performance MySQL",
"Annee": "2012",
"_id": "66f01d3762ffe6117055685b359e77d5"
},
...
]
3 documents in set (0.00 sec)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
87 / 90
Démo (4)
mysql-py>
mybooks. nd("Title LIKE '%MySQL%'"). elds(["Title","Annee"]).sort("Annee")
[
{
"Annee": "2007",
"Title": "Understanding MySQL Internals"
},
{
"Annee": "2012",
"Title": "High Performance MySQL"
}
]
mysql-py>
mybooks.create_index("Annee_idx"). eld("Annee","TEXT(4)", False).execute();
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
88 / 90
Démo (5)
mysql> show create table books.mybooksG
*************************** 1. row ***************************
Table: mybooks
Create Table: CREATE TABLE `mybooks` (
`doc` json DEFAULT NULL,
`_id` varchar(32) GENERATED ALWAYS
AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL,
`$ix_t4_589943C550621CA4FF9A742745C76C955B6DDE8E` text
GENERATED ALWAYS
AS (json_unquote(json_extract(`doc`,'$.Annee'))) VIRTUAL,
PRIMARY KEY (`_id`),
KEY `Annee_idx` (`$ix_t4_589943C550621CA4FF9A742745C76C955B6DDE8E`(4))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
89 / 90
Merci
Des Questions ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
90 / 90

Contenu connexe

Tendances

Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Olivier DASINI
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 
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
 
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
 
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
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDBMongoDB
 
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
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 

Tendances (14)

Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
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
 
Oracle 12c in memory en action
Oracle 12c in memory en actionOracle 12c in memory en action
Oracle 12c in memory en action
 
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
 
Test
TestTest
Test
 
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
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDB
 
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
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 

En vedette

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
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howBernt Marius Johnsen
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?Norvald Ryeng
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17Alkin Tezuysal
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQLDag H. Wanvik
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions oysteing
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server DefaultsMorgan Tocker
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationKenny Gryp
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 
Using Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query PerformanceUsing Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query Performanceoysteing
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Deploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrDeploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrJordi Llonch
 
第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナーMasahiko Nakamura
 
GoFFIng around with Ruby #RubyConfPH
GoFFIng around with Ruby #RubyConfPHGoFFIng around with Ruby #RubyConfPH
GoFFIng around with Ruby #RubyConfPHGautam Rege
 
DNSの運用を考える
DNSの運用を考えるDNSの運用を考える
DNSの運用を考えるaeoe
 
Solvent Effects on Chemical Reaction
Solvent Effects on Chemical ReactionSolvent Effects on Chemical Reaction
Solvent Effects on Chemical Reactionrita martin
 
Fortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey ResultsFortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey ResultsChuck Solomon
 
インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外Toru Makabe
 

En vedette (20)

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...
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & how
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQL
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 
Using Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query PerformanceUsing Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query Performance
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Deploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrDeploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and Solr
 
Charla control parental e IoT v2. Etek.ppsx
Charla control parental e IoT v2. Etek.ppsxCharla control parental e IoT v2. Etek.ppsx
Charla control parental e IoT v2. Etek.ppsx
 
第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー
 
GoFFIng around with Ruby #RubyConfPH
GoFFIng around with Ruby #RubyConfPHGoFFIng around with Ruby #RubyConfPH
GoFFIng around with Ruby #RubyConfPH
 
DNSの運用を考える
DNSの運用を考えるDNSの運用を考える
DNSの運用を考える
 
Solvent Effects on Chemical Reaction
Solvent Effects on Chemical ReactionSolvent Effects on Chemical Reaction
Solvent Effects on Chemical Reaction
 
Fortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey ResultsFortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey Results
 
インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外
 

Similaire à Jeudis du Libre - MySQL comme Document Store

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
 
CV - Database Administrator ( French )
CV - Database Administrator ( French )CV - Database Administrator ( French )
CV - Database Administrator ( French )Franck VICTORIA
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
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
 
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
 
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
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpheremodelspherepro
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Wiiisdom
 
Phan-TienNam-CV-20161103
Phan-TienNam-CV-20161103Phan-TienNam-CV-20161103
Phan-TienNam-CV-20161103Tien Nam Phan
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...AZUG FR
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQLAlphorm
 
Hajer mhimdi-ppt11 pfe-mr2 siw
Hajer mhimdi-ppt11 pfe-mr2 siwHajer mhimdi-ppt11 pfe-mr2 siw
Hajer mhimdi-ppt11 pfe-mr2 siwhajer mhimdi
 
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
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Jean-Pierre Riehl
 
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm
 

Similaire à Jeudis du Libre - MySQL comme Document Store (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...
 
CV - Database Administrator ( French )
CV - Database Administrator ( French )CV - Database Administrator ( French )
CV - Database Administrator ( French )
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
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...
 
CVMourad2
CVMourad2CVMourad2
CVMourad2
 
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...
 
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
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSphere
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...
 
Phan-TienNam-CV-20161103
Phan-TienNam-CV-20161103Phan-TienNam-CV-20161103
Phan-TienNam-CV-20161103
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQL
 
Hajer mhimdi-ppt11 pfe-mr2 siw
Hajer mhimdi-ppt11 pfe-mr2 siwHajer mhimdi-ppt11 pfe-mr2 siw
Hajer mhimdi-ppt11 pfe-mr2 siw
 
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
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
 
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
 

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
 

Jeudis du Libre - MySQL comme Document Store

  • 3.   Safe Harbor Statement The following is intended to outline our generalproduct direction. It isintended for information purpose only, and may not be incorporated into any contract. It isnot a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. Thedevelopment, release and timing of any features or functionality described for Oracle's product remains at thesole discretion of Oracle. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 3 / 90
  • 4. about.me/lefred Qui suis-je ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 4 / 90
  • 5. Frédéric Descamps @lefred Évangéliste MySQL BidouilleMySQLdepuis la version 3.23 devops croyant et praticant MySQLCommunity Manager depuis mai 2016 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 5 / 90
  • 6. SGDB & MySQL Base de données Relationnelles Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 6 / 90
  • 7. Bases de données Relationnelles Intégrité des données Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 7 / 90
  • 8. Bases de données Relationnelles Intégrité des données normalization Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 8 / 90
  • 9. Bases de données Relationnelles Intégrité des données normalization contraintes (clés étrangères, ...) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 9 / 90
  • 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 10 / 90
  • 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 11 / 90
  • 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 12 / 90
  • 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 13 / 90
  • 14. SGDB & MySQL Base de données NoSQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 14 / 90
  • 15. NoSQL ou Document Store Sans schéma Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 15 / 90
  • 16. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde normalization, de clés étrangères, de contraintes, de type de données (data types), etc... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 16 / 90
  • 17. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde normalization, de clés étrangères, de contraintes, de type de données (data types), etc... dévelopement initial très rapide Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 17 / 90
  • 18. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 18 / 90
  • 19. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 19 / 90
  • 20. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 20 / 90
  • 21. NoSQL ou Document Store Sans schéma pas de design de schémas, pasde 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(mapping objet-relationnel) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 21 / 90
  • 22. NoSQL ou Document Store (2) JSON Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 22 / 90
  • 23. NoSQL ou Document Store (2) JSON proche du frontend Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 23 / 90
  • 24. NoSQL ou Document Store (2) JSON proche du frontend "natif" en Javascript Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 24 / 90
  • 25. NoSQL ou Document Store (2) JSON proche du frontend "natif" en Javascript utilisé en Node.js Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 25 / 90
  • 26. NoSQL ou Document Store (2) JSON proche du frontend "natif" en Javascript utilisé en Node.js Aprentissage facile, et facile àutiliser Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 26 / 90
  • 27. Les challenges actuels les développeurs veulent avancer plus rapidement Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 27 / 90
  • 28. Les challenges actuels les développeurs veulent avancer plus rapidement le délai de mise en productionest un coût supérieur Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 28 / 90
  • 29. Les challenges actuels les développeurs veulent avancer plus rapidement le délai de mise en productionest un coût supérieur rapidité de création de prototypes, itérations rapides, ... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 29 / 90
  • 30. Avantages de SQL et de NoSQL NoSQL SQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 30 / 90
  • 31. Et donc, Bases de données Relationnelles ou Document Store ?? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 31 / 90
  • 32. Et donc, Bases de données Relationnelles ou Document Store ?? Pourquoi pas les deux ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 32 / 90
  • 33. Quelles sont les étapes ? NoSQL avec MySQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 33 / 90
  • 34. Faire de MySQL un Document Store Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 34 / 90
  • 35. Faire de MySQL un Document Store 1.support de JSON datatype Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 35 / 90
  • 36. Faire de MySQL un Document Store 1.support de JSON datatype 2.CRUD Operations Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 36 / 90
  • 37. Faire de MySQL un Document Store 1.support de JSON datatype 2.CRUD Operations 3.X Plugin Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 37 / 90
  • 38. Faire de MySQL un Document Store 1.support de JSON datatype 2.CRUD Operations 3.X Plugin 4.X protocol &MySQLShell Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 38 / 90
  • 39. MySQL 5.7 Support de JSON Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 39 / 90
  • 40. Support JSON Type natif de données (native datatype) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 40 / 90
  • 41. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 41 / 90
  • 42. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 42 / 90
  • 43. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"natifs" vers des valeurs JSON Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 43 / 90
  • 44. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"natifs" vers des valeurs JSON Functions de manipulation du JSON Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 44 / 90
  • 45. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"natifs" vers des valeurs JSON Functions de manipulation du JSON extraire (JSON_EXTRACT, JSON_KEYS, ...) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 45 / 90
  • 46. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"natifs" vers des valeurs JSON Functions de manipulation du JSON extraire (JSON_EXTRACT, JSON_KEYS, ...) inpecter (JSON_CONTAINS, ...) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 46 / 90
  • 47. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"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, ...) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 47 / 90
  • 48. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"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) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 48 / 90
  • 49. Support JSON Type natif de données (native datatype) Valeurs en JSON stockées dansdes tables MySQL Format de stokage JSON en binaire (UTF8MB4) Conversion à partir des typesSQL"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 @ 2017 Oracle and/or its affiliates. All rights reserved. 49 / 90
  • 50. Support JSON (2) Inline SQL JSON path expressions SELECT doc->'$.object.array[0].item' FROM some_table Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 50 / 90
  • 51. 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->'$. eld' Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 51 / 90
  • 52. Support JSON (3) le meilleur pour la fin... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 52 / 90
  • 53. Support JSON (3) le meilleur pour la fin... Colonnes Générées/Virtuelles(generated/virtual columns) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 53 / 90
  • 54. Support JSON (3) le meilleur pour la fin... Colonnes Générées/Virtuelles(generated/virtual columns) Index de données JSON Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 54 / 90
  • 55. 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 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 55 / 90
  • 56. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 56 / 90
  • 57. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 57 / 90
  • 58. Document Store Opérations CRUD Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 58 / 90
  • 59. Opérations CRUD Create, Read, Update et Delete (CRUD) sont les 4 opérations qui peuvent être exécutées sur une collection (DocumentStore Schema) ou une table. CREATE - collection.add() Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 59 / 90
  • 60. Opérations CRUD (2) READ - collection.find() Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 60 / 90
  • 61. Opérations CRUD (3) UPDATE - collection.modify() Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 61 / 90
  • 62. Opérations CRUD (4) DELETE - collection.remove() Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 62 / 90
  • 63. Document Store X Plugin Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 63 / 90
  • 64. X Plugin Plugin du serveurMySQLqui active la communication en utilisant le X Protocol. Ce pluging: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 64 / 90
  • 65. X Plugin Plugin du serveurMySQLqui active la communication en utilisant le X Protocol. Ce pluging: supporte les clients ayant implémenté le X DevAPI Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 65 / 90
  • 66. X Plugin Plugin du serveurMySQLqui active la communication en utilisant le X Protocol. Ce pluging: supporte les clients ayant implémenté le X DevAPI transformeMySQLen Document Store. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 66 / 90
  • 67. X Plugin Plugin du serveurMySQLqui active la communication en utilisant le X Protocol. Ce pluging: supporte les clients ayant implémenté le X DevAPI transformeMySQLen Document Store. mysql> INSTALL PLUGIN mysqlx SONAME "mysqlx.so" ou mysqlsh -u user --classic --dba enableXProtocol Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 67 / 90
  • 68. Document Store X Protocol Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 68 / 90
  • 69. X Protocol Protocole qui permet de communiquer avec un MySQLServer sur lequel X Plugin est activé. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 69 / 90
  • 70. X Protocol Protocole qui permet de communiquer avec un MySQLServer sur lequel X Plugin est activé. Et donc le X Protocol permet d´effectuer des opéarations CRUD et SQL, l´authentification via SASL, le "streaming" (pipelining) des commandes. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 70 / 90
  • 71. Document Store The X DevAPI Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 71 / 90
  • 72. Opérations orientées Document via SQL Très puissant Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 72 / 90
  • 73. Opérations orientées Document via SQL Très puissant Permet la construction de requêtes complexes Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 73 / 90
  • 74. Opérations orientées Document via SQL Très puissant Permet la construction de requêtes complexes Mais... encore et toujours difficile à utiliser pour les non initiés Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 74 / 90
  • 75. Opérations orientées Document via SQL Très puissant Permet la construction de requêtes complexes Mais... encore et toujours difficile à utiliser pour les non initiés 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, '$. eld') = value; Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 75 / 90
  • 76. The X DevAPI Abstraction au-dessus de SQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 76 / 90
  • 77. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 77 / 90
  • 78. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete) Native Language API Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 78 / 90
  • 79. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete) Native Language API Pas nécessaire de connaître le SQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 79 / 90
  • 80. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete) Native Language API Pas nécessaire de connaître le SQL X Protocol Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 80 / 90
  • 81. The X DevAPI Abstraction au-dessus de SQL Axé sur 4 opérations CRUD debase (Create, Read, Update, Delete) Native Language API Pas nécessaire de connaître le SQL X Protocol les requêtes CRUD sont encodées auniveaudu protocol Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 81 / 90
  • 82. Exemple mysql-py> mybooks. nd("Title LIKE 'Und%'") [ { "Authors": [ "Alexander Sasha Pachev", "Sasha Pachev" ], "ISBN-13": "9780596009571", "Language": "en", "Publisher": ""O'Reilly Media, Inc."", "Title": "Understanding MySQL Internals", "Year": "2007", "_id": "ce9fd5b762ffe6117055685b359e77d5" } ] Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 82 / 90
  • 83. Exemple mysql-py> mybooks. nd("Title LIKE 'Und%'") [ { "Authors": [ "Alexander Sasha Pachev", "Sasha Pachev" ], "ISBN-13": "9780596009571", "Language": "en", "Publisher": ""O'Reilly Media, Inc."", "Title": "Understanding MySQL Internals", "Year": "2007", "_id": "ce9fd5b762ffe6117055685b359e77d5" } ] EtMySQLle transforme de manière transparente en: SELECT doc FROM `books`.`mybooks` WHERE (JSON_UNQUOTE(JSON_EXTRACT(doc,'$.Title')) LIKE 'Und%'); Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 83 / 90
  • 84. Document Store & X DevAPI & MySQL Shell petite démo ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 84 / 90
  • 85. Démo (1) [fred@imac2 ~] $ mysqlsh --py Welcome to MySQL Shell 1.0.8-rc Copyright (c) 2016, 2017, Oracle and/or its af liates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its af liates. Other names may be trademarks of their respective owners. Type 'help', 'h' or '?' for help, type 'quit' or 'q' to exit. Currently in Python mode. Use sql to switch to SQL mode and execute queries. mysql-py> c root@localhost Creating a Session to 'root@localhost' Enter password: Node Session successfully established. No default schema selected. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 85 / 90
  • 86. Démo (2) mysql-py> db=session.create_schema("books") mysql-py> mybooks=db.create_collection('mybooks') mysql-py> from isbntools.app import * mysql-py> isbn=9781449314286 mysql-py> doc=meta(str(isbn)) mysql-py> doc["Annee"]=doc.pop("Year") mysql-py> mybooks.add(doc) Query OK, 1 item affected (0.10 sec) mysql-py> isbn=9780596009571 mysql-py> doc=meta(str(isbn)) mysql-py> doc["Annee"]=doc.pop("Year") mysql-py> mybooks.add(doc) mysql-py> isbn=9781430230571 mysql-py> doc=meta(str(isbn)) mysql-py> doc["Annee"]=doc.pop("Year") mysql-py> mybooks.add(doc) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 86 / 90
  • 87. Démo (3) mysql-py> mybooks. nd() [ { "Authors": [ "Baron Schwartz", "Peter Zaitsev", "Vadim Tkachenko" ], "ISBN-13": "9781449314286", "Language": "en", "Publisher": ""O'Reilly Media, Inc."", "Title": "High Performance MySQL", "Annee": "2012", "_id": "66f01d3762ffe6117055685b359e77d5" }, ... ] 3 documents in set (0.00 sec) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 87 / 90
  • 88. Démo (4) mysql-py> mybooks. nd("Title LIKE '%MySQL%'"). elds(["Title","Annee"]).sort("Annee") [ { "Annee": "2007", "Title": "Understanding MySQL Internals" }, { "Annee": "2012", "Title": "High Performance MySQL" } ] mysql-py> mybooks.create_index("Annee_idx"). eld("Annee","TEXT(4)", False).execute(); Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 88 / 90
  • 89. Démo (5) mysql> show create table books.mybooksG *************************** 1. row *************************** Table: mybooks Create Table: CREATE TABLE `mybooks` ( `doc` json DEFAULT NULL, `_id` varchar(32) GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$._id'))) STORED NOT NULL, `$ix_t4_589943C550621CA4FF9A742745C76C955B6DDE8E` text GENERATED ALWAYS AS (json_unquote(json_extract(`doc`,'$.Annee'))) VIRTUAL, PRIMARY KEY (`_id`), KEY `Annee_idx` (`$ix_t4_589943C550621CA4FF9A742745C76C955B6DDE8E`(4)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 89 / 90
  • 90. Merci Des Questions ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 90 / 90