jean-luc boucho - azure documentdb - global azure bootcamp 2016 paris
TRANSCRIPT
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE1
Azure DocumentDB
Jean-Luc BOUCHOArchitecte, Manager @JeanLucBoucho
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
– Performance
– Sécurité
SOMMAIRE
3
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
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
Column Family
Row 1
Row KeyColumn1
Name1: Value1
ColumnN
NameN: ValueN
Row N
Row KeyColumn2
Name2: Value2
ColumnN
NameN: ValueN
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
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Graph database
Les familles de bases de données noSQL
John
Eddie
Karlmanages
manages
reports_for_project
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
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
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)
– 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
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
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Tarification
15
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE16
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. 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
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
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
– 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é
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 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
Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
ORGANISATION GAB 2016
SPONSORS LOCAUX
25