1 / 120 - databases · [x] document model [x] transactions operations: [x] performance...

120
1 / 120

Upload: others

Post on 27-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

1 / 120

Page 2: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

2 / 120

Page 3: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

MySQL 8.0

a Document Store with all the benefits of a transactional RDBMS

 

 

Frédéric Descamps - MySQL Community Manager - Oracle

3 / 120

Page 4: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Save the date !

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

4 / 120

Page 5: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

 

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purpose only, and may notbe incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not berelied up in making purchasing decisions. The development, release and timing of any features or functionality describedfor Oracle´s product remains at the sole discretion of Oracle.

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

5 / 120

Page 6: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

about me - http://about.me/lefred

Who am I ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

6 / 120

Page 7: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Frédéric Descamps@lefredMySQL EvangelistHacking MySQL since 3.23devops believerliving in Belgium 🇧🇪http://lefred.be

 

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

7 / 120

Page 8: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

RDBMS & MySQL

Relational Databases

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

8 / 120

Page 9: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

9 / 120

Page 10: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalization

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

10 / 120

Page 11: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

11 / 120

Page 12: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Atomicity, Consistency, Isolation, Durability

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

12 / 120

Page 13: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Atomicity, Consistency, Isolation, DurabilityACID compliant

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

13 / 120

Page 14: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Atomicity, Consistency, Isolation, DurabilityACID complianttransactions

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

14 / 120

Page 15: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Atomicity, Consistency, Isolation, DurabilityACID complianttransactions

SQL

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

15 / 120

Page 16: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Relational DatabasesData Integrity

normalizationconstraints (foreign keys, ...)

Atomicity, Consistency, Isolation, DurabilityACID complianttransactions

SQLpowerfull query language

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

16 / 120

Page 17: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL & MySQL

NoSQL Databases

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

17 / 120

Page 18: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

18 / 120

Page 19: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

19 / 120

Page 20: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

20 / 120

Page 21: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structure

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

21 / 120

Page 22: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objects

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

22 / 120

Page 23: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational model

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

23 / 120

Page 24: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational modelobjects persistance without the use of any ORM - mapping oobject-oriented

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

24 / 120

Page 25: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational modelobjects persistance without the use of any ORM - mapping oobject-oriented

JSON

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

25 / 120

Page 26: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational modelobjects persistance without the use of any ORM - mapping oobject-oriented

JSONclose to frontend

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

26 / 120

Page 27: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational modelobjects persistance without the use of any ORM - mapping oobject-oriented

JSONclose to frontendnative in JS

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

27 / 120

Page 28: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or Document StoreSchemaless

no schema design, no normalization, no foreign keys, no data types, ...very quick initial development

Flexible data structureembedded arrays or objectsvalid solution when natural data can´t be modelized optimaly into a relational modelobjects persistance without the use of any ORM - mapping oobject-oriented

JSONclose to frontendnative in JSeasy to learn

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

28 / 120

Page 29: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

How DBAs see data

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

29 / 120

Page 30: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

How DBAs see data How Developers see data{ "GNP" : 249704, "Name" : "Belgium", "government" : { "GovernmentForm" : "Constitutional Monarchy, Federation", "HeadOfState" : "Philippe I" }, "_id" : "BEL", "IndepYear" : 1830, "demographics" : { "Population" : 10239000, "LifeExpectancy" : 77.8000030517578 }, "geography" : { "Region" : "Western Europe", "SurfaceArea" : 30518, "Continent" : "Europe" }}

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

30 / 120

Page 31: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

What if there was a way to provide both SQL and NoSQL on onestable platform that has proven stability on well know

technology with a large Community and a diverse ecosystem ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

31 / 120

Page 32: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

DBMS or NoSQL ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

32 / 120

Page 33: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

DBMS or NoSQL ?

Why not both ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

33 / 120

Page 34: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

The MySQL Document Store !

SQL is now optional !

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

34 / 120

Page 35: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Developers:

[x] schemaless[x] rapid prototying/simpler APIs[x] document model[x] transactions

Operations:

[x] performance management/visibility[x] robust replication, backup, restore[x] comprehensive tooling ecosystem[x] simpler application schema upgrades

Business Owner:

[x] don't lose my data == ACID trx[x] capture all my data = extensible/schemaless[x] product on schedule/time to market = rapiddevelopement

A solution for all

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

35 / 120

Page 36: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

MySQL Document Store

the Solution

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

36 / 120

Page 37: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

37 / 120

Page 38: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Built on theMySQL JSONData type andProven MySQLServerTechnology

Provides a schema flexible JSON Document StoreNo SQL requiredNo need to define all possible attributes, tables, etc.Uses new X DevAPICan leverage generated column to extract JSON values into materialized columnsthat can be indexed for fast SQL searches.Document can be ~1GB

It's a column in a row of a tableIt cannot exceed max_allowed_packet

Allows use of modern programming stylesNo more embedded strings of SQL in your codeEasy to read

Also works with relational TablesProven MySQL Technology

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

38 / 120

Page 39: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

X DevAPI Connectors forC++, Java, .Net, Node.js, Python, PHPworking with Communities to help them supporting it too

New MySQL ShellCommand CompletionPython, JavaScrips & SQL modesAdmin functionsNew Util objectA new high-level session concept that can scale from single MySQL Server toa multiple server environment

Non-blocking, asynchronous calls follow common language patternsSupports CRUD operations

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

39 / 120

Page 40: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Starting using MySQL DS in few minutes 

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

40 / 120

Page 41: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

MySQL Shell Info

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

41 / 120

Page 42: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Migration from MongoDB to MySQL DSFor this example, I will use the well known restaurants collection:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

42 / 120

Page 43: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Migration from MongoDB to MySQL DSFor this example, I will use the well known restaurants collection:

We need to dump the data to a file and we will use MySQL Shell with the Python interpreter to load the data.

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

43 / 120

Page 44: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Migration from MongoDB to MySQL DSFor this example, I will use the well known restaurants collection:

We need to dump the data to a file and we will use MySQL Shell with the Python interpreter to load the data.

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

44 / 120

Page 45: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Dump and load using MySQL Shell & Pythonthis example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore

$ mongo --quiet --eval 'DBQuery.shellBatchSize=30000; db.restaurants.�nd().shellPrint()' \ | perl -pe 's/(?:ObjectId|ISODate)\(("[^"]+")\)/ $1/g' > all_recs.json

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

45 / 120

Page 46: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Dump and load using MySQL Shell & Pythonthis example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore

$ mongo --quiet --eval 'DBQuery.shellBatchSize=30000; db.restaurants.�nd().shellPrint()' \ | perl -pe 's/(?:ObjectId|ISODate)\(("[^"]+")\)/ $1/g' > all_recs.json

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

46 / 120

Page 47: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

47 / 120

Page 48: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Let´s query

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

48 / 120

Page 49: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Let´s query

That´s too much records to show it here... let´s limit it

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

49 / 120

Page 50: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

50 / 120

Page 51: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Some more examples

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

51 / 120

Page 52: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Some more examples

Let´s add a selection criteria:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

52 / 120

Page 53: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Using IN...

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

53 / 120

Page 54: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Syntax slightly different than MongoDB

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

54 / 120

Page 55: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Syntax slightly different than MongoDB

> db.restaurants.�nd({"cuisine": "French", "borough": { $not: /^Manhattan/} }, {"_id":0, "name": 1,"cuisine": 1, "borough": 1}).limit(2){ "borough" : "Queens", "cuisine" : "French",

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

55 / 120

Page 56: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

CRUD operations

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

56 / 120

Page 57: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

CRUD operations for collections

Add a document

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

57 / 120

Page 58: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

CRUD operations for collections

Modify a document

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

58 / 120

Page 59: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

CRUD operations for collections

Remove a document

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

59 / 120

Page 60: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

MySQL Document Store Objects Summary

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

60 / 120

Page 61: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

61 / 120

Page 62: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

innodb_�ush_log_at_trx_commit = 1

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

62 / 120

Page 63: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

innodb_�ush_log_at_trx_commit = 1

innodb_doublewrite = ON

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

63 / 120

Page 64: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

innodb_�ush_log_at_trx_commit = 1

innodb_doublewrite = ON

sync_binlog = 1

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

64 / 120

Page 65: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

innodb_�ush_log_at_trx_commit = 1

innodb_doublewrite = ON

sync_binlog = 1

transaction_isolation = REPEATABLE-READ|READ-COMMITTED|...

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

65 / 120

Page 66: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !It relies on the proven MySQL InnoDB´s strength & robustness:

innodb_�ush_log_at_trx_commit = 1

innodb_doublewrite = ON

sync_binlog = 1

transaction_isolation = REPEATABLE-READ|READ-COMMITTED|...

We do care about your data !

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

66 / 120

Page 67: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !

MySQL Document Store supports transactions

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

67 / 120

Page 68: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Document Store Full ACID !

MySQL Document Store supports transactions

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

68 / 120

Page 69: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

69 / 120

Page 70: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

what about my old SQL ?

The hidden part of the iceberg

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

70 / 120

Page 71: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

71 / 120

Page 72: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

72 / 120

Page 73: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON values

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

73 / 120

Page 74: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON valuesJSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

74 / 120

Page 75: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON valuesJSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...)Generated/virtual columns

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

75 / 120

Page 76: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON valuesJSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...)Generated/virtual columns

Indexing JSON data

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

76 / 120

Page 77: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON valuesJSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...)Generated/virtual columns

Indexing JSON dataForeign Keys to JSON data

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

77 / 120

Page 78: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

JSON datatype is behind the scenenative datatype (since 5.7.8)JSON values are stored in MySQL tables using UTF8MB4Conversion from "native" SQL types to JSON valuesJSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...)Generated/virtual columns

Indexing JSON dataForeign Keys to JSON dataSQL Views to JSON data

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

78 / 120

Page 79: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

How does the MySQL Document Store work ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

79 / 120

Page 80: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

What does a collection look like on the server ?

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

80 / 120

Page 81: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

_id Every document has a unique identifier called the document ID, which can be thoughtof as the equivalent of a table´s primary key. The document ID value can be manuallyassigned when adding a document. If no value is assigned, a document ID isgenerated and assigned to the document automatically !

Use getDocumentId() or getDocumentIds() to get _ids(s)

   

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

81 / 120

Page 82: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examplescreateCollection('mycollection')

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

82 / 120

Page 83: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examplescreateCollection('mycollection')

CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4;

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

83 / 120

Page 84: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examplescreateCollection('mycollection')

CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4;

mycollection.add({'test': 1234})

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

84 / 120

Page 85: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examplescreateCollection('mycollection')

CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4;

mycollection.add({'test': 1234})

INSERT INTO `test`.`mycoll` (doc) VALUES ( JSON_OBJECT('_id','663807fe367ee6114e0e5458bdac28bf', 'test',1234) );

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

85 / 120

Page 86: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examples (2)mycollection.find("test > 100")

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

86 / 120

Page 87: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Mapping to SQL examples (2)mycollection.find("test > 100")

SELECT doc FROM `test`.`mycoll` WHERE (JSON_EXTRACT(doc,'$.test') > 100);

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

87 / 120

Page 88: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

88 / 120

Page 89: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example

same as:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

89 / 120

Page 90: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example

same as:

we can use it in SQL:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

90 / 120

Page 91: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Indexes in Document StoreIt's also possible to create indexes without using SQL syntax:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

91 / 120

Page 92: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Indexes in Document StoreIt's also possible to create indexes without using SQL syntax:

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

92 / 120

Page 93: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (2): validation

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

93 / 120

Page 94: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (2): validation

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

94 / 120

Page 95: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (2): validation

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

95 / 120

Page 96: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (3): explain

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

96 / 120

Page 97: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (3): explain

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

97 / 120

Page 98: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (4): add index

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

98 / 120

Page 99: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (4): add index

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

99 / 120

Page 100: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (5): arrays

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

100 / 120

Page 101: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (5): arrays

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

101 / 120

Page 102: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (5): arrays

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

102 / 120

Page 103: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and JSON Example (5): arrays

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

103 / 120

Page 104: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL as SQL

JSON_TABLE

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

104 / 120

Page 105: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL as SQL (2)

JSON_TABLE

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

105 / 120

Page 106: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL as SQL - aggregation

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

106 / 120

Page 107: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL as SQL - aggregation (2)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

107 / 120

Page 108: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

108 / 120

Page 109: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

109 / 120

Page 110: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

110 / 120

Page 111: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS (2)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

111 / 120

Page 112: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS (2)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

112 / 120

Page 113: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - JOINS (2)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

113 / 120

Page 114: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

SQL and NoSQL - and back to JSON Document

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

114 / 120

Page 115: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

NoSQL or SQLJS> session.sql("select doc->>'$.name', doc->>'$.cuisine' from restaurants where doc->>'$.cuisine'='Italian' limit 2")

+----------------------------+-------------------+| doc->>'$.name' | doc->>'$.cuisine' |+----------------------------+-------------------+| Philadelhia Grille Express | Italian || Isle Of Capri Resturant | Italian |+----------------------------+-------------------+2 rows in set (0.0287 sec)

JS> db.restaurants.�nd("cuisine='Italian'").�elds('name','cuisine').limit(2)[ { "cuisine": "Italian", "name": "Philadelhia Grille Express" }, { "cuisine": "Italian", "name": "Isle Of Capri Resturant" }]2 documents in set (0.0015 sec)

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

115 / 120

Page 116: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

what do I gain ?

Conclusion

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

116 / 120

Page 117: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

schemalessflexible data structureeasy to start (CRUD)

ConclusionThis is the best of the two worlds in one product !

Data integrityACID CompliantTransactionsSQL

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

117 / 120

Page 118: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

118 / 120

Page 119: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

http://lefred.be/content/top-10-reasons-for-nosql-with-mysql/

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

119 / 120

Page 120: 1 / 120 - Databases · [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem

Thank you !

Any Questions ?

share your 💕 for MySQL on social media using @mysql #DataOpsBarcelona

Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.

120 / 120