Google Datastore & Search API
Twitter : @celine_louvet
Github : celinelouvet
Céline Louvet
Chez Sfeir depuis 2011
Développeuse Backend Core
Java, Google...
Google Datastore
● BDD dédiée pour AppEngine
● BDD NoSQL Schemaless
● Clé / Valeur
Google Datastore
Qu’est ce que c’est ?
Cohérence forte :
La donnée est toujours cohérente entre toutes les instances
Cohérence faible :
Il faut du temps avant qu...
Google Datastore
Datastore
Megastore
Bigtable
Query
Fiabilité (Réplication)
Scalabilité (Sharding automatique)
Architectur...
Google Datastore
Datastore
Megastore
Bigtable
Query
Fiabilité (Réplication)
Scalabilité (Sharding automatique)
Bigtable
Google Datastore
Qu’est ce que Bigtable ?
● 1ère
base haute disponibilité et scalable de Google
● Utilisation par Google :...
Google Datastore
Représentation de Bigtable
● Map multi-dimensionnelle, triée
○ comporte des lignes
○ une ligne comporte d...
Google Datastore
Opérations sur Bigtable
● Exclusivement pour une ligne
○ Create, Read, Update & Delete
○ une cohérence fo...
Google Datastore
Datastore
Megastore
Bigtable
Query
Scalabilité (Sharding automatique)
Megastore
Fiabilité (Réplication)
Entity Group 1 Entity Group 2
Google Datastore
Qu’apporte Megastore ?
● Réplication des données
● Cohérence acceptable
● D...
Cohérence faible
Google Datastore
Réplication & scalabilité
Datacenter 1
Paul
Datacenter 2
Valérie
Cohérence forteEntity
G...
Google Datastore
Opérations entre Entity Groups
Entity Group 1
Entity Group 2
Index globaux
Cohérence faible
Index locaux
...
Google Datastore
Datastore
Megastore
Bigtable
Query
Scalabilité (Sharding automatique)
Datastore
Fiabilité (Réplication)
Google Datastore
Qu’apporte Datastore ?
● Facilité de requête
○ APIs de manipulation des données (Python, Java, Go)
● Clé ...
Google Datastore
Principe du Datastore
● Combinaison de plusieurs Bigtables
○ Entities table
○ Index tables :
■ entities b...
Google Datastore
Différentes APIs
● API Low-Level
● JDO/JPA
● Frameworks externes : Objectify, Twig, Slim3, etc.
Google Datastore
Différentes APIs
Démo
Google Datastore
Différentes APIs en résumé
● API Low-Level
○ Meilleures performances
○ Plus de code à produire
● Objectif...
Google Search API
● Moteur de recherche plein texte
● Document
● Scalable, shardée
Google Search API
Qu’est ce que c’est ?
● Objet unique avec un id et des champs
● Plusieurs types de champs :
○ Atom
○ Text
○ HTML
○ Number
○ Date
○ Geopoint
Goog...
● Récupération de documents :
○ par id
○ par plage d’ids
● Recherche par contenu en respectant des critères
Google Search ...
● Sur tous les champs :
la tour sombre
● Sur certains champs spécifiquement :
“author=king”
● En combinant :
“author=king ...
Google Search API
Démo
Le couple idéal
Le couple idéal
Service
DAO Search
Datastore
Search
API
Des questions ?
Merci
Sources
● Megastore : Providing Scalable, Highly Available Storage for
Interactive Services
● Bigtable: A Distributed Storage Syst...
Prochain SlideShare
Chargement dans…5
×

Google datastore & search api

651 vues

Publié le

Présentation Google DataStore / search API

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

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

Aucune remarque pour cette diapositive

Google datastore & search api

  1. 1. Google Datastore & Search API
  2. 2. Twitter : @celine_louvet Github : celinelouvet Céline Louvet Chez Sfeir depuis 2011 Développeuse Backend Core Java, Google Cloud Platform TDD, Qualité de code
  3. 3. Google Datastore
  4. 4. ● BDD dédiée pour AppEngine ● BDD NoSQL Schemaless ● Clé / Valeur Google Datastore Qu’est ce que c’est ?
  5. 5. Cohérence forte : La donnée est toujours cohérente entre toutes les instances Cohérence faible : Il faut du temps avant que toutes les données soient cohérentes entre les instances Google Datastore Préambule
  6. 6. Google Datastore Datastore Megastore Bigtable Query Fiabilité (Réplication) Scalabilité (Sharding automatique) Architecture interne
  7. 7. Google Datastore Datastore Megastore Bigtable Query Fiabilité (Réplication) Scalabilité (Sharding automatique) Bigtable
  8. 8. Google Datastore Qu’est ce que Bigtable ? ● 1ère base haute disponibilité et scalable de Google ● Utilisation par Google : ○ Sur plus de 60 projets ○ Web Search, Youtube, Earth, Analytics, etc. ● Dédiée au stockage : ne supporte pas les queries
  9. 9. Google Datastore Représentation de Bigtable ● Map multi-dimensionnelle, triée ○ comporte des lignes ○ une ligne comporte des colonnes ○ chaque cellule comporte plusieurs versions de la donnée, indexées par timestamp Row 1 Col 1 t1 t1’ Col 2 t2 t2’ Row 2 Col 1 t3 t3’
  10. 10. Google Datastore Opérations sur Bigtable ● Exclusivement pour une ligne ○ Create, Read, Update & Delete ○ une cohérence forte ○ transactions ● Tri par clé de ligne ○ Permet les requêtes par plage de clés de ligne ○ Mais aucune recherche par colonne
  11. 11. Google Datastore Datastore Megastore Bigtable Query Scalabilité (Sharding automatique) Megastore Fiabilité (Réplication)
  12. 12. Entity Group 1 Entity Group 2 Google Datastore Qu’apporte Megastore ? ● Réplication des données ● Cohérence acceptable ● Données réparties en “Entity groups” Cell Cell Comment Comment Comment Comment Cell User Spreadsheet Spreadsheet
  13. 13. Cohérence faible Google Datastore Réplication & scalabilité Datacenter 1 Paul Datacenter 2 Valérie Cohérence forteEntity Group 1 Entity Group 2
  14. 14. Google Datastore Opérations entre Entity Groups Entity Group 1 Entity Group 2 Index globaux Cohérence faible Index locaux Cohérence forte Entités Modification Queue Entités Index locaux Cohérence forte
  15. 15. Google Datastore Datastore Megastore Bigtable Query Scalabilité (Sharding automatique) Datastore Fiabilité (Réplication)
  16. 16. Google Datastore Qu’apporte Datastore ? ● Facilité de requête ○ APIs de manipulation des données (Python, Java, Go) ● Clé / Valeur
  17. 17. Google Datastore Principe du Datastore ● Combinaison de plusieurs Bigtables ○ Entities table ○ Index tables : ■ entities by kind ■ entities by property ASC ■ entities by property DESC ○ Custom indexes table
  18. 18. Google Datastore Différentes APIs ● API Low-Level ● JDO/JPA ● Frameworks externes : Objectify, Twig, Slim3, etc.
  19. 19. Google Datastore Différentes APIs Démo
  20. 20. Google Datastore Différentes APIs en résumé ● API Low-Level ○ Meilleures performances ○ Plus de code à produire ● Objectify ○ Beaucoup moins de code ○ Des performances dégradées ○ Prise en compte des évolutions plus longue ○ Des bugs potentiels
  21. 21. Google Search API
  22. 22. ● Moteur de recherche plein texte ● Document ● Scalable, shardée Google Search API Qu’est ce que c’est ?
  23. 23. ● Objet unique avec un id et des champs ● Plusieurs types de champs : ○ Atom ○ Text ○ HTML ○ Number ○ Date ○ Geopoint Google Search API Documents
  24. 24. ● Récupération de documents : ○ par id ○ par plage d’ids ● Recherche par contenu en respectant des critères Google Search API Index
  25. 25. ● Sur tous les champs : la tour sombre ● Sur certains champs spécifiquement : “author=king” ● En combinant : “author=king AND NOT title=tour” Google Search API Requêtes
  26. 26. Google Search API Démo
  27. 27. Le couple idéal
  28. 28. Le couple idéal Service DAO Search Datastore Search API
  29. 29. Des questions ?
  30. 30. Merci
  31. 31. Sources
  32. 32. ● Megastore : Providing Scalable, Highly Available Storage for Interactive Services ● Bigtable: A Distributed Storage System for Structured Data ● Understanding Paxos Sources

×