valtech - nosql, solution alternative ou complémentaire aux bases de données relationnelles...

Download Valtech - NoSQL, solution alternative ou complémentaire aux bases de données relationnelles traditionnelles ?

Post on 27-Jun-2015

2.754 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

NoSQL, solution alternative ou complémentaire aux bases de données relationnelles traditionnelles ? Séminaire NoSQL, 28 juin, Valtech Toulouse Hervé Desaunois, Responsable Technique Herve.Desaunois@valtech.fr Jean-Philippe Barbé, Senior Consultant jean-philippe.barbe@valtech.fr Mathieu Cousy, Senior Consultant mathieu.cousy@valtech.fr

TRANSCRIPT

  • 1. Jean-Philippe Barb& Mathieu CousySenior ConsultantNoSQLValtech Toulouse

2. Sommaire Prsentation NoSQL DynamoDB Cas dutilisation Architecture Cas Pratique Cassandra Cas dutilisation Architecture Cas Pratique Conclusion 2 3. Cas dutilisation Technologie relative aux bases de donnesAlternatives au SGBD relationnels pour grer de gros volumes mergence printemps 2009 avec le Cloud Computing et le Web 2.0BigTable Google, Dynamo Amazon, Hbase Facebook, CassandraTwitter De nombreuses solutions Open SourceCassandra, CouchDB, MongoDB, Riak, HBase, Neo4J3 4. Lcosystme NoSQL Document ColonneCl ValeurGraphe4 5. Les bases Cl Valeur Cl ValeurImplmentations trs nombreuses Cl ValeurStructure de donnes trs simple Cl Valeur MapBase simple crer DynamoDB, Redis, Voldemort, MemcacheDB 5 6. Les bases ColonnesUne table est dfinie par des familles de colonnes Chaque famille peut avoir un nombre quelconque de colonnes Les colonnes sont reprsentes par des couples cls-valeurOptimis pour laccs par colonneReprsentation plus flexible Famille One to many Grand nombre de colonnes Sparse dataCl Cl Valeur Cl ValeurCl Cl Valeur Cl Valeur HBase, Cassandra, BigTableCl Cl Valeur Cl Valeur Colonne6 7. Les bases DocumentLa cl correspond un document soit ClXML soit JSON Cl ValeurRetrouver avec une seule cl un Cl Valeurensemble dinformations structures demanire hirarchiqueCl Valeur Lutilisateur, ses statuts, ses Cl Valeur amis Cl ValeurLquivalent en relationnel impliquerait Cl Valeurbeaucoup de jointures Cl Valeur MongoDB, CouchDBCl Valeur 7 8. Les bases GrapheReposent sur la notionde nudset de relationset de propritsTraitement des donnes de rseaux sociaux lutilisateur, ses amis, les amis de ses amisEn phase avec les outils du web smantique (RDF, SparQL) Neo4J 8 9. Le CAP Theorem (Eric Brewer)9 10. NoSQL Amazon DynamoDB 11. SOMMAIRE PRESENTATION PRINCIPALES FONCTIONNALITES DYNAMODB vs. AUTRES SERVICES ARCHITECTURE PROVISIONNED THROUGHPUT / CONSISTANCE API ELASTIC MAP REDUCE SECURITE CAS DUTILISATION FACTURE CONCLUSION 12. PRESENTATION DynamoDB est la base NoSQL utilise en interne parAmazon depuis 2007 et rendue publique le 18 janvier2012. DynamoDB est une base oriente cl-valeur. DynamoDB est une implmentation de Dynamo storagesystem et donc peut tre compare Riak, Redis etVoldemort. DynamoDB fait partie des services cloud dAmazon et estdisponible uniquement en SaaS. 13. PRINCIPALES FONCTIONNALITES Base de donnes oriente cl-valeur. Indexation sur un attribut ou un attribut et un range. Rplication et haute disponibilit. Ractivit : < 5ms en lecture, < 10 ms en criture (disqueSSD) Map/Reduce. CloudWatch pour monitorer et affiner les rglages. Prix en fonction de la consistance des donnes. Web Services HTTP et HTTPS + API. 14. DynamoDB vs autres services AmazonAmazon Relational Database Service (RDS): AMI de base de donnes relationnelle Amazon EC2 (MySQL ouOracle) Amazon RDS traite les longues tches de gestion de base dedonnes, comme la gestion des corrections, les sauvegardes etla rplication 15. DynamoDB vs autres services AmazonAmazon SimpleDB:Les deux sont des bases non relationnelles sans besoindadministration. SimpleDB est vraiment simplifie au maximum, lutilisateura trs peu de contrle, limite de stockage de 10Go, toutes lescolonnes sont indexes et une limite dans la capacit derequtes pouvant tre excutes. DynamoDB peut tre configure plus finement, seules lescls primaires sont indexes et le modle de prix est plusclair (nombre de lecture/criture contre heure machine) 16. DynamoDB vs autres services AmazonAmazon S3 (Simple Storage Service):A m a z o n D y n a m o D B s t o c k e d e s d o n n e sstructures, indexes par cl primaire, et permet une faiblelatence pourlire et crire des items allant de1 octet64Ko. Amazon S3 stocke des blobs non structurs et est doncadaptpour stocker des objetsde grande taillejusqu 5TB. 17. ARCHITECTUREBase cl-valeur vs base oriente document : Une base cl valeur est le modle le plus simple: une valeurindexepar une cl. limit la requtepar cl etles valeurssont opaques,le magasinne sait rien leur sujet. Cela permet de trs rapide lectures et critures(un accs au disquesimple) c e m o d l e p e u t t r e v u c o m m e u n e s o r t e d e cache non volatile (cest dire bien adapt si vous avez besoindaccs rapidespar claux donnes). Une base de donnes oriente document tend lemodle prcdent et les valeurs sont stockes dans un formatstructur (un document, do le nom) que la base de donnespeut comprendre. Les requtes peuvent donc aller plus loinque la simple cl. 18. ARCHITECTURE Le modle de donnes DynamoDB repose sur des tables,des items et des attributs. Une table contient un ensemble ditems compossdattributs sous la forme cl/valeur 19. ARCHITECTURE Pas de schema part la dclaration de cl primaire. Cl primaire de type hash ou hash et range. Types de valeur: nombres / chaines de caractres /ensemble de nombres ou de chanes. Un item dune table a un nombre illimit dattributs,mais il y a une limite de taille 64 KB (somme des taillesdes noms et des valeurs de tous les attributs) 20. Le CAP Theorem (Eric Brewer) 21. PROVISIONNED THROUGHPUT Sur chaque table il faut dfinit le provisionnedthroughput pour permettre Amazon dallouer desressources matrielles suffisantes. U n e u n i t d e W r i t e C a p a c i t y p e r m e tdeffectuer une criture par seconde pour des envoisdejusqu1KB. Une unit de Read Capacity permet deffectuer unelecture fortement consistante par seconde (ou deuxfinalementcohrentespar seconde)darticles jusqu1KB.Expected Item Consistency Desired Reads ProvisionedSizePer SecondThroughputRequired1KB Consistent50502KB Consistent501001KB Eventually5025Consistent2KB Eventually5050Consistent 22. CONSISTANCE Dpend du provisionned throughput Ecriture conditionnelle: Permet de dfinir des rgles de priorits en cas daccsconcurrents Overwrite ou mise jour avant dcrire Compteur atomique 23. API Amazon DynamoDB est un Web Service qui utilise leprotocole HTTP et HTTPS comme transport, etJSONcomme format de srialisationmessage. Accs direct lAPI DynamoDB dans une application. Ilfaut alors crire le code ncessaire pour signer etauthentifiervos demandes. AWS SDK pour Java, Microsoft. NET, PHP, Android, iOS, etRuby. Les SDKs pour Java and .NET fournissent une API depersistance pour mapper directement les classes delapplication sur des tables DynamoDB. 24. API fournies par les SDKs CreateTable : permet de crer une table et de spcifierlindex primaire utilis pour accder aux donnes. UpdateTable: permet de mettre jour les valeursdu dbitrserv pour une table donne. DeleteTable: permet de supprimer une table. DescribeTables : permet dobtenir des informationsrelatives la taille, au statut et lindex de la table. PutItem / UpdateItem / DeleteItem : oprationsclassiques ventuellement conditionnelles GetItem : opration consistante terme sinon il faututiliser ConsistentRead BatchGetItem : renvoie les attributs associs plusieurslments depuis plusieurs tables laide des clsprimaires correspondantes Query/ Scan 25. API: Query et Scan QueryUne requte ne cherche que les valeurs des cls primaireset prend en charge un sous-ensemble des oprateurs decomparaison. Une requte renvoie toutes les donnes desitems correspondants. ScanUne opration descan parcourslensemble de la table.Il est possible de spcifier des filtres appliquer auxrsultats pour affiner les valeurs remontes aprs lescancomplet. 26. ELASTIC MAP REDUCE Permet deffectuer en parallle des calculs sur de grosvolumes de donnes. Map: dcouper les donnes en sous ensembles Compute: traiter les sous ensembles sparment Reduce: Consolider les rsultats des sous ensembles 27. ELASTIC MAP REDUCELutilisation dElastic Map Reduce sur DynamoDB permet : Importer/Exporter les donnes vers et depuis Amazon S3. Requter les donnes en live sur DynamoDB en utilisantHiveQL (un langage SQL-like pour Hadoop) Charger des donnes de DynamoDB sur un HadoopDistributed File System 28. SECURITEAmazon DynamoDB intgre AWS Identity et AccessManagement(IAM),un servicequi permet de : Crer des utilisateurs et des groupes sous votre compteAWS A t t r i b u e r d e s i n f o r m a t i o n s di d e n t i f i c a t i o n d escuritpropres chaqueutilisateur Grer le contrle daccs aux services et ressources parutilisateur Obtenir une seule facture pour tous les utilisateurs sous lecompteAWS 29. CAS DUTILISATION Mise en cache de pages wiki (document JSON de toutes lespages du wiki de DynamoDB, qui reprsente ~51 GB). Quelques raisons dutiliser une base cls/valeurs: Quand la vitesse dcriture est la priorit (Mozilla Test Pilot pourrcuprer le feedback des utilisateurs de Firefox). Quand la lecture par cl primaire suffit. Qui utilise DynamoDB: AmazonLepanier dachat etle service de session du site IMDbLe systme de notation des films 30. CAS DUTILISATION Exemple dun site de critiques de livres 31. CAS DUTILISATION Table Book: Cl primaire: isbn(number) Attributs: title(string), author(string), pages(number) Table Thread: Cl primaire: subject(string) Attributs: isbns(set of numbers), author(string),content(string) Table Reply: Cl primaire range: isbn + subject(string) et date (datetime) Attributs: author(string), reply(string) 32. CAS DUTILISATION 33. CAS DUTILISATION 34. CAS DUTILISATION 35. CAS DUTILISATION Table Tag avec une relation many-to-many: Cl primaire: name(string) Attributs: isbns(set of numbers) Table Book avec une relation many-to-many: Attributs: tags(set of string) 36. FACTURE Paiement en lusage sur 3 critres: Capacit de dbit rserv: Dbit dcriture: $0,0113 par heure pour 10units de capacit dcriture Dbit de lecture: $0,0113 par heure pour 50units de capacit de lecture Stockage de donnes indexes: $1,13 par Go-mois Transfert de donnes Premier 1 Go / mois : $0 par GB Jusqu 10 To / mois : $0,12 par GB 100 Mo de stockage gratuit et capacit de dbitpermanent de 5 critures/seconde et de 10 lectures/seconde au maximum offerte par table. 37. FACTUREExemple de factu