#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
@GUSS_FRANCE
#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
DocumentDB & NoSQL
Jean-Luc Boucho
Architecte, Infosy...
#JSS2015
Merci à nos sponsors
#JSS2015
La communauté Data & BI Microsoft
Webcasts, Conférences, Afterworks
http://GUSS.pro
Session donnée pour
@GUSS_FRA...
#JSS2015
AZUGFR
Azure User Group France, Communauté
Microsoft Azure francophone.
Echange de conseils techniques, et de ret...
#JSS2015
La base du noSQL
Shard 1 Shard 2 Shard 3
Sharded Database
Adam
Andrew
Anusha
Bertrand
Bill
Carl
Catherine
Cynthia...
#JSS2015
Les familles de bases de données noSQL
• Key/value database
#JSS2015
Les familles de bases de données noSQL
• Column Family Stores
Column Family
Row 1
Row Key
Column1
Name1: Value1
C...
#JSS2015
Les familles de bases de données noSQL
• Document database
Document
Articles
Title Comment
CommentURL
Title Comme...
#JSS2015
Les familles de bases de données noSQL
• Graph Databases
John
Eddie
Karl
manages
manages
reports_for_project
#JSS2015
Azure DocumentDB
« Azure DocumentDB is a NoSQL document
database managed service designed for high
performance, s...
#JSS2015
Azure DocumentDB customers
#JSS2015
Document database
JSON
Un format standard cross plateforme
Valeurs JSON
« Self-describing », « self-contained »
P...
#JSS2015
Le requêtage
#JSS2015
La hiérarchie
#JSS2015
Azure DocumentDB
Démo
#JSS2015
• "DocumentDB Data Migration Tool"
Migration & Backup
#JSS2015
• Pièces jointes
– Propriétés : id, contentType, media (url)
– Contenu stocké par DocumentDB ou non (OneDrive, Dr...
#JSS2015
Syntaxe
Requêtes
SQL…
#JSS2015
Syntaxe
Requêtes
SQL
#JSS2015
• Cohérence
– Base / collection / requête
– Niveaux
1. Forte
2. Obsolescence limitée
3. Session (par défaut)
4. E...
#JSS2015
• Modélisation
– Documents : normalisé / dénormalisé, taille…
– Partitionnement multi-collections: cf SDK (Partit...
#JSS2015
Coût RU des opérations
#JSS2015
• Clés d’accès (256-bit)
– Clés maîtres : primaire, secondaire
– Deux jeux de clés : accès total, lecture seule
•...
#JSS2015
• Intégration
– PowerBI
– Hadoop
– Azure Stream Analytics
– Azure Search
– Azure Data Factory
• Futur
– http://ak...
#JSS2015
Azure DocumentDB
Questions ?
#JSS2015#JSS2015
Les évaluations des sessions,
c’est important !!
http://GUSS.Pro/jss
#JSS2015
Merci à nos volontaires…
#JSS2015#JSS2015
Prochain SlideShare
Chargement dans…5
×

[JSS2015] - Document db et nosql

328 vues

Publié le

Rappel des différents services de stockage NoSQL présents dans Microsoft Azure, puis approfondissement du service DocumentDB, ses fonctionnalités ainsi que les options d'administration.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
328
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Simple, rapide, flexible
    Limité dans les possibilités de requêtage, d’aggrégation, …
  • Schéma complexe, requêtage avancé
    Pas de support de transactions entre documents
  • MSN :
    425 million d’utilisateurs uniques globalement.
    Plus de 40 applications avec des besoins en lecture et écriture exigeants.

    News Republic
    Agrégation des news provenant de multiples sources.
    Stockent énormément de données, ont des exigences en terme de performances et de flexibilité.

    Real Madrid
    Capturent chacune des interactions entre la marque et ses 450 millions de fans (interaction sur les réseaux sociaux, achat de produits dérivés, modification du profil sur le site du club, …) et stocke tout cela dans DocumentDB
  • Accès en REST via HTTP, connexion directe en TCP, SDKs .NET, Node.js, Python, Javascript, Java, …

    Toutes les informations dont on a besoin sont dans le document, pour ne pas avoir à parcourir plusieurs emplacements de la base de données à la recherche des bonnes relations.
    C’est notamment grâce à cela qu’on a de telles performances.

    Pas de schéma à priori. On stocke ce que l’on souhaite de la manière dont on le souhaite.
    Cela permet d’être très agile et de rajouter des informations à la volée.
    Ex : une application qui stocke des posts Facebook et Twitter peut utiliser le même store.

    Self describing car on a le nom des propriétés directement dans le document,


    Source: http://azure.microsoft.com/en-us/documentation/articles/documentdb-resources/#documents

    You can insert, replace, delete, read, enumerate and query arbitrary JSON documents in a collection. DocumentDB does not mandate any schema and does not require secondary indexes in order to support querying over documents in a collection.

    Being a truly open database service, DocumentDB does not invent any specialized data types (e.g. date time) or specific encodings for JSON documents. Note that DocumentDB does not require any special JSON conventions to codify the relationships among various documents; the SQL query language of DocumentDB provides very powerful hierarchical and relational query operators to query and project documents without any special annotations or need to codify relationships among documents using distinguished properties.

    As with all other resources, documents can be created, replaced, deleted, read, enumerated and queried easily using either REST APIs or any of the client SDKs. Deleting a document instantly frees up the quota corresponding to all of the nested attachments. The read consistency level of documents follows the consistency policy on the database account. This policy can be overridden on a per-request basis depending on data consistency requirements of your application. When querying documents, the read consistency follows the indexing mode set on the collection. For “consistent”, this follows the account’s consistency policy.
  • L’index est automatique sur l’ensemble des champs. Le niveau de cohérence peut-être défini sur la collection ou par requête pour optimiser les performances.

    Un langage puissant sur du non-relationnel, subset du langage SQL, avec ajouts réguliers
    C’est certainement l’un des plus grands avantages de DocumentDB !
  • 1 base = infinité de collections. Porte les éléments liés à la sécurité
    1 collection = 1 shard mais pas une table (ne pas tomber dans le piège). Pas de requêtes multi-collection. Porte des éléments d’extension, comme les procédures stockées, les triggers ou les user-defined functions, développé en JavaScript, ce qui est le plus logique pour du json.
    1 fichier joint = stocké dans Azure Storage, en dehors de la collection mais avec un lien
  • Migration avec Data sample:
    https://azure.microsoft.com/fr-fr/blog/import-sample-data-to-azure-documentdb/
    https://azure.microsoft.com/fr-fr/blog/easily-transform-data-when-importing-to-azure-documentdb-2/
    https://azure.microsoft.com/fr-fr/blog/load-data-into-azure-search-with-zero-code-required/
    https://azure.microsoft.com/fr-fr/blog/import-geospatial-data-into-documentdb/

    !! Download sqlsysclrtypes.msi (Microsoft.SqlServer.Types, Version=11.0.0.0) at http://www.microsoft.com/en-us/download/details.aspx?id=35580
  • Server Code:
    https://azure.microsoft.com/fr-fr/documentation/articles/documentdb-programming/

    Self-Links:
    https://azure.microsoft.com/fr-fr/blog/azure-documentdb-bids-fond-farewell-to-self-links/

    Search:
    https://azure.microsoft.com/fr-fr/blog/searching-for-text-with-documentdb/
  • https://azure.microsoft.com/en-us/documentation/articles/documentdb-sql-query-cheat-sheet/
    https://azure.microsoft.com/fr-fr/blog/new-documentdb-sql-keywords-operators-and-functions/
    https://azure.microsoft.com/fr-fr/documentation/articles/documentdb-sql-query/
  • RUs:
    https://azure.microsoft.com/fr-fr/blog/performance-tips-for-azure-documentdb-part-2/

    Index:
    https://azure.microsoft.com/en-us/documentation/articles/documentdb-indexing-policies/
  • Clés:
    https://msdn.microsoft.com/en-us/library/azure/dn783368.aspx

    Utilisateurs:
    https://msdn.microsoft.com/en-us/library/azure/dn782193.aspx
    Permissions:
    https://msdn.microsoft.com/en-us/library/azure/dn782246.aspx
  • Integration:
    https://azure.microsoft.com/fr-fr/blog/unleashing-insights-from-data-in-documentdb-with-power-bi/

    Ressources:
    Blog - http://aka.ms/documentdb-blog
    Partitioning - http://aka.ms/documentdb-partitioning
    Forums - http://aka.ms/documentdb-msdn
    Product Page – http://aka.ms/documentdb
    Docs & Tutorials - http://aka.ms/documentdb-docs
    Samples - http://aka.ms/documentdb-samples
    Migration - http://aka.ms/docdbimport
    Performance - http://aka.ms/docdbperf
  • On parlait des speakers, il y a une chose qui leur tient à cœur !
  • [JSS2015] - Document db et nosql

    1. 1. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS @GUSS_FRANCE
    2. 2. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS DocumentDB & NoSQL Jean-Luc Boucho Architecte, Infosys MVP Azure @JeanLucBoucho Benjamin Talmard Technical Evangelist Azure, Microsoft @Benjiiim
    3. 3. #JSS2015 Merci à nos sponsors
    4. 4. #JSS2015 La communauté Data & BI Microsoft Webcasts, Conférences, Afterworks http://GUSS.pro Session donnée pour @GUSS_FRANCE /GUSS /GUSS.FR #JSS2015 Les journées SQL Server 2015
    5. 5. #JSS2015 AZUGFR Azure User Group France, Communauté Microsoft Azure francophone. Echange de conseils techniques, et de retour d'expériences autour de la plateforme de cloud computing de Microsoft. 16 Avril
    6. 6. #JSS2015 La base du noSQL Shard 1 Shard 2 Shard 3 Sharded Database Adam Andrew Anusha Bertrand Bill Carl Catherine Cynthia Relational Database Adam Andrew Anusha Bertrand Bill Carl Catherine Cynthia Une transaction ne peut s’étendre que dans un seul shard
    7. 7. #JSS2015 Les familles de bases de données noSQL • Key/value database
    8. 8. #JSS2015 Les familles de bases de données noSQL • Column Family Stores Column Family Row 1 Row Key Column1 Name1: Value1 ColumnN NameN: ValueN Row N Row Key Column2 Name2: Value2 ColumnN NameN: ValueN
    9. 9. #JSS2015 Les familles de bases de données noSQL • Document database Document Articles Title Comment CommentURL Title CommentAuthor URL Author Author
    10. 10. #JSS2015 Les familles de bases de données noSQL • Graph Databases John Eddie Karl manages manages reports_for_project
    11. 11. #JSS2015 Azure DocumentDB « Azure DocumentDB is a NoSQL document database managed service designed for high performance, scalability and flexibility. »
    12. 12. #JSS2015 Azure DocumentDB customers
    13. 13. #JSS2015 Document database JSON Un format standard cross plateforme Valeurs JSON « Self-describing », « self-contained » Pas de comportement, d’héritage, de règles, … Sérialisable facilement Schéma Pas de schéma mais requêtable { “locations”: [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”:[{“city”; “Moscow”},{“city: ”Athens”}] }; JSON document as tree Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
    14. 14. #JSS2015 Le requêtage
    15. 15. #JSS2015 La hiérarchie
    16. 16. #JSS2015 Azure DocumentDB Démo
    17. 17. #JSS2015 • "DocumentDB Data Migration Tool" Migration & Backup
    18. 18. #JSS2015 • Pièces jointes – Propriétés : id, contentType, media (url) – Contenu stocké par DocumentDB ou non (OneDrive, Dropbox...) • Code serveur (JavaScript) – Procédures Stockées – Fonctions Utilisateurs (UDFs) – Déclencheurs (non automatiques !) Objets avancés x-ms-documentdb-pre-trigger-include x-ms-documentdb-post-trigger-include
    19. 19. #JSS2015 Syntaxe Requêtes SQL…
    20. 20. #JSS2015 Syntaxe Requêtes SQL
    21. 21. #JSS2015 • Cohérence – Base / collection / requête – Niveaux 1. Forte 2. Obsolescence limitée 3. Session (par défaut) 4. Eventuelle • Transaction multi-documents – Via le code serveur – L’instruction throw annule la transaction Cohérence & Transaction Writes Reads Strong Sync quorum writes Quorum reads Bounded Async replication Quorum reads Session Async replication Session bound replica Eventual Async replication Any replica x-ms-consistency-level
    22. 22. #JSS2015 • Modélisation – Documents : normalisé / dénormalisé, taille… – Partitionnement multi-collections: cf SDK (PartitionResolvers Hash/Range/Lookup) • Index – Automatic ou Manuel – Consistent (sync) ou Lazy (async -> pour les Batchs, impacte la cohérence) – Include/Exclude Path : Hash, Range, Geospatial • Request Units (RUs) – Effort pour traiter une requête (mixe CPU, IO & RAM) – Niveaux de Perfs : S1 (250 RUs/sec), S2 (1000 RUs/sec), S3 (2500 RUs/sec) • Surveillance – Métriques & alertes Performance x-ms-request-charge
    23. 23. #JSS2015 Coût RU des opérations
    24. 24. #JSS2015 • Clés d’accès (256-bit) – Clés maîtres : primaire, secondaire – Deux jeux de clés : accès total, lecture seule • Utilisateurs & Permissions – Utilisateurs : définis au niveau base – Droits (Mode) : All, Read – Permission unique: Utilisateur – Droit – Collection/doc (_rid) Sécurité
    25. 25. #JSS2015 • Intégration – PowerBI – Hadoop – Azure Stream Analytics – Azure Search – Azure Data Factory • Futur – http://aka.ms/documentdb-uservoice • Ressources – Découverte - http://aka.ms/docdbplayground – MVA - https://mva.microsoft.com/en-US/training-courses/developing-solutions- with-azure-documentdb-10554 Pour finir
    26. 26. #JSS2015 Azure DocumentDB Questions ?
    27. 27. #JSS2015#JSS2015 Les évaluations des sessions, c’est important !! http://GUSS.Pro/jss
    28. 28. #JSS2015 Merci à nos volontaires…
    29. 29. #JSS2015#JSS2015

    ×