SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Google Datastore & Search API
Twitter : @celine_louvet
Github : celinelouvet
Céline Louvet
Chez Sfeir depuis 2011
Développeuse Backend Core
Java, Google Cloud Platform
TDD, Qualité de code
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 que toutes les données soient cohérentes entre les
instances
Google Datastore
Préambule
Google Datastore
Datastore
Megastore
Bigtable
Query
Fiabilité (Réplication)
Scalabilité (Sharding automatique)
Architecture interne
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 :
○ Sur plus de 60 projets
○ Web Search, Youtube, Earth, Analytics, etc.
● Dédiée au stockage : ne supporte pas les queries
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’
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
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
● Données réparties en “Entity
groups”
Cell Cell
Comment
Comment
Comment Comment
Cell
User
Spreadsheet Spreadsheet
Cohérence faible
Google Datastore
Réplication & scalabilité
Datacenter 1
Paul
Datacenter 2
Valérie
Cohérence forteEntity
Group 1
Entity
Group 2
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
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é / Valeur
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
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
● Objectify
○ Beaucoup moins de code
○ Des performances dégradées
○ Prise en compte des évolutions plus longue
○ Des bugs potentiels
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
Google Search API
Documents
● Récupération de documents :
○ par id
○ par plage d’ids
● Recherche par contenu en respectant des critères
Google Search API
Index
● 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
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 System for Structured Data
● Understanding Paxos
Sources

Mais conteúdo relacionado

Destaque

Gae icc fall2011
Gae icc fall2011Gae icc fall2011
Gae icc fall2011
Juan Gomez
 
Sentiment Analysis via R Programming
Sentiment Analysis via R ProgrammingSentiment Analysis via R Programming
Sentiment Analysis via R Programming
Skillspeed
 
Presentación planeación normativa
Presentación planeación normativaPresentación planeación normativa
Presentación planeación normativa
K-Tik Valencia
 
Evaluación de habilidades de lenguaje y comunicacion 6º año
Evaluación de habilidades de lenguaje y  comunicacion 6º añoEvaluación de habilidades de lenguaje y  comunicacion 6º año
Evaluación de habilidades de lenguaje y comunicacion 6º año
manueloyarzun
 
Tunisie securite sociale
Tunisie   securite socialeTunisie   securite sociale
Tunisie securite sociale
Mouhammed Rayes
 

Destaque (20)

App Engine for Python Developers
App Engine for Python DevelopersApp Engine for Python Developers
App Engine for Python Developers
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-python
 
Gae icc fall2011
Gae icc fall2011Gae icc fall2011
Gae icc fall2011
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine Python
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Working with text data
Working with text dataWorking with text data
Working with text data
 
Google App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: BasicGoogle App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: Basic
 
Presentacion taltac2
Presentacion taltac2Presentacion taltac2
Presentacion taltac2
 
Sentiment Analysis in R
Sentiment Analysis in RSentiment Analysis in R
Sentiment Analysis in R
 
Sentiment Analysis via R Programming
Sentiment Analysis via R ProgrammingSentiment Analysis via R Programming
Sentiment Analysis via R Programming
 
R by example: mining Twitter for consumer attitudes towards airlines
R by example: mining Twitter for consumer attitudes towards airlinesR by example: mining Twitter for consumer attitudes towards airlines
R by example: mining Twitter for consumer attitudes towards airlines
 
How Sentiment Analysis works
How Sentiment Analysis worksHow Sentiment Analysis works
How Sentiment Analysis works
 
Introduction to Sentiment Analysis
Introduction to Sentiment AnalysisIntroduction to Sentiment Analysis
Introduction to Sentiment Analysis
 
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw  est prêt à tuer le classpathSoft-Shake 2016 : Jigsaw  est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
 
Presentación planeación normativa
Presentación planeación normativaPresentación planeación normativa
Presentación planeación normativa
 
Evaluación de habilidades de lenguaje y comunicacion 6º año
Evaluación de habilidades de lenguaje y  comunicacion 6º añoEvaluación de habilidades de lenguaje y  comunicacion 6º año
Evaluación de habilidades de lenguaje y comunicacion 6º año
 
Technologie de séparation Flottweg
Technologie de séparation FlottwegTechnologie de séparation Flottweg
Technologie de séparation Flottweg
 
El Estilo de Vida de Jesus
El Estilo de Vida de JesusEl Estilo de Vida de Jesus
El Estilo de Vida de Jesus
 
Tunisie securite sociale
Tunisie   securite socialeTunisie   securite sociale
Tunisie securite sociale
 
"Von Infrastrukturen zu Möglichkeitsräumen" Vortrag #GMW14
"Von Infrastrukturen zu Möglichkeitsräumen" Vortrag #GMW14"Von Infrastrukturen zu Möglichkeitsräumen" Vortrag #GMW14
"Von Infrastrukturen zu Möglichkeitsräumen" Vortrag #GMW14
 

Semelhante a Google datastore & search api

Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
Ludovic Piot
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Horacio Gonzalez
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Denodo
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
MongoDB
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
GDG Nantes
 

Semelhante a Google datastore & search api (20)

Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolRConférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
 
Comment passer de SEO à SEO + data
Comment passer de SEO à SEO + dataComment passer de SEO à SEO + data
Comment passer de SEO à SEO + data
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Les Web APIs en .NET Core
Les Web APIs en .NET CoreLes Web APIs en .NET Core
Les Web APIs en .NET Core
 
Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
 
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
 
Mongo db with C#
Mongo db with C#Mongo db with C#
Mongo db with C#
 
Procima deck 7 May 2014
Procima deck 7 May 2014Procima deck 7 May 2014
Procima deck 7 May 2014
 
Google appengine&guice
Google appengine&guiceGoogle appengine&guice
Google appengine&guice
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
 

Google datastore & search api