Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
1
Azure DocumentDB
Jean-Luc BOUCHO
Architecte, Manager @JeanLucBo...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
ORGANISATION GAB 2016
SPONSORS LOCAUX
2
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• NoSQL
• DocumentDB
– Introduction
– Fonctions avancées
– Perfor...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
La base du noSQL
Shard 1 Shard 2 Shard 3
Sharded Database
Adam
An...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Key/value database
Les familles de bases de données noSQL
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Column Family Stores
Les familles de bases de données noSQL
Col...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Document database
Les familles de bases de données noSQL
Docume...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Graph database
Les familles de bases de données noSQL
John
Eddi...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
« Azure DocumentDB is a NoSQL document
database managed service d...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Document database
• JSON
- Un format standard cross plateforme
• ...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Hiérarchie
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Requêtage
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Pièces jointes
– Propriétés : id, contentType, media (url)
– Co...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Pricing
– Séparation throughput et volume
de stockage
– Incréme...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Tarification
15
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
16
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Syntaxe
Requêtes
SQL…
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Syntaxe
Requêtes
SQL
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Cohérence
– Base / collection / requête
– Niveaux
1. Forte
2. O...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Modélisation
– Documents : normalisé / dénormalisé, taille…
– P...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Coût RU des opérations
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Clés d’accès (256-bit)
– Clés maîtres : primaire, secondaire
– ...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• "DocumentDB Data Migration Tool"
Migration & Backup
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Intégration
– PowerBI
– Hadoop
– Azure Stream Analytics
– Azure...
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
ORGANISATION GAB 2016
SPONSORS LOCAUX
25
Prochain SlideShare
Chargement dans…5
×

Jean-Luc Boucho - Azure DocumentDB - Global Azure Bootcamp 2016 Paris

97 vues

Publié le

Service très convoité dans le monde des développeurs Azure, DocumentDB se présente devant vous avec toutes les nouveautés ainsi que des expériences et cas d'utilisation.

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

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
97
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
4
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
  • 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.
  • 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
  • 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 !
  • 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
  • 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
  • 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
  • Jean-Luc Boucho - Azure DocumentDB - Global Azure Bootcamp 2016 Paris

    1. 1. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE 1 Azure DocumentDB Jean-Luc BOUCHO Architecte, Manager @JeanLucBoucho
    2. 2. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE ORGANISATION GAB 2016 SPONSORS LOCAUX 2
    3. 3. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • NoSQL • DocumentDB – Introduction – Fonctions avancées – Performance – Sécurité SOMMAIRE 3
    4. 4. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE 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
    5. 5. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Key/value database Les familles de bases de données noSQL
    6. 6. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Column Family Stores Les familles de bases de données noSQL Column Family Row 1 Row Key Column1 Name1: Value1 ColumnN NameN: ValueN Row N Row Key Column2 Name2: Value2 ColumnN NameN: ValueN
    7. 7. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Document database Les familles de bases de données noSQL Document Articles Title Comment CommentURL Title CommentAuthor URL Author Author
    8. 8. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Graph database Les familles de bases de données noSQL John Eddie Karl manages manages reports_for_project
    9. 9. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE « Azure DocumentDB is a NoSQL document database managed service designed for high performance, scalability and flexibility. » Azure DocumentDB
    10. 10. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE 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
    11. 11. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Hiérarchie
    12. 12. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Requêtage
    13. 13. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • 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 !) Fonctions avancées x-ms-documentdb-pre-trigger-include x-ms-documentdb-post-trigger-include
    14. 14. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Pricing – Séparation throughput et volume de stockage – Incréments plus fins • Collection partitionnée • Global databases (geo- réplication) (preview) • Support MongoDB API (preview) //BUILD 2016 14
    15. 15. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Tarification 15
    16. 16. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE 16
    17. 17. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Syntaxe Requêtes SQL…
    18. 18. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Syntaxe Requêtes SQL
    19. 19. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • 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
    20. 20. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • 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
    21. 21. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE Coût RU des opérations
    22. 22. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • 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é
    23. 23. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • "DocumentDB Data Migration Tool" Migration & Backup
    24. 24. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE • Intégration – PowerBI – Hadoop – Azure Stream Analytics – Azure Search – Azure Data Factory • Liens – Feedback : http://aka.ms/documentdb-uservoice – Découverte : http://aka.ms/docdbplayground – MVA : https://mva.microsoft.com/en-US/training-courses/developing-solutions-with- azure-documentdb-10554 Pour finir
    25. 25. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE ORGANISATION GAB 2016 SPONSORS LOCAUX 25

    ×