SlideShare une entreprise Scribd logo
1  sur  13
2013.09.26 GDGYaounde @ Yaounde
CLOUD
Google App Engine
& Datastore
KWAYE KANT
Member
GDG Yaounde
Jour 2
Atelier 2 : DataStore
Atelier 2.1 : Présentation du magasin de données DataStore
1. Introduction
2. API Java Datastore
3. Entités et propriétés
4. Requêtes et Index
5. Différence avec SQL
Atelier 2 : Présentation du magasin de données DataStore
1. Introduction
2. API Java Datastore
3. Entités et propriétés
4. Requêtes et Index
5. Différence avec SQL
Atelier 2 : Introduction
Le magasin de données App Engine constitue une solution évolutive et robuste pour
le stockage des données de votre application Web
Il est conçu pour privilégier les performances des opérations de lecture et de requête.
Une application crée des entités, et stocke les valeurs des données en tant que
propriétés des entités.
L'application peut exécuter des requêtes sur les entités
Toutes les requêtes sont pré-indexées, ce qui garantit des résultats rapides sur des
ensembles de données très volumineux
Atelier 2 : API Java DataStore
Les entités de magasin de données sont dépourvues de schéma :
deux entités de même kind ne sont pas obligées d'avoir les mêmes propriétés,
ni d'utiliser les mêmes types de valeurs pour des propriétés identiques.
La vérification éventuelle de la conformité des entités à un schéma doit être
assurée par l'application.
Le magasin de données fournit une API de bas niveau qui permet d'effectuer
des opérations simples sur les entités, telles que get, put, delete et query.
Vous pouvez utiliser cette API de bas niveau pour implémenter d'autres adaptateurs
d'interface, ou simplement l'exploiter directement dans vos applications.
Chaque entité dispose également d'une clé qui l'identifie de manière individuelle.
La clé la plus simple possède un kind et un identifiant d'entité fournis par le magasin
de données.
Atelier 2 : API Java DataStore
Comme API de bas niveau : le Datastore
Le Datastore GAE n’est pas un SGBDR
?HashMap
Atelier 2 : API Java DataStore
Environnements logiciels pour la modélisation et la persistance des données.
La vérification éventuelle de la conformité des entités à un schéma doit être
assurée par l'application.
Le SDK Java intègre des implémentations des interfaces Java Data Objects (JDO) et
Java Persistence API (JPA) pour la modélisation et la persistance des données
L’equipe Google App Engine a mis a disposition des outils permettant de simplifier
de maniere significative l’utilisation des API de bas niveau, le JDO et le JPA.
Objectify : Objectify est une interface très conviviale et d'une grande simplicité
avec le magasin de données App Engine, qui vous permet d'éviter certaines des
difficultés inhérentes à JDO/JPA et au magasin de données de bas niveau.
TWiG : TWiG est une interface de persistance d'objets configurable, qui améliore la prise
en charge des stratégies d'héritage, du polymorphisme et des types génériques.
À l'instar d'Objectify, TWiG vous aide également à contourner les obstacles présentés
par JDO et par le magasin de données de bas niveau.
Atelier 2 : Entités et propriètés
Un objet de données dans le magasin de données App Engine est appelé entité.
Une entité possède une ou plusieurs propriétés.
Chaque entité dispose également d'une clé qui l'identifie de manière individuelle.
L'identifiant d'entité peut également être une chaîne fournie par l'application.
La clé la plus simple possède un kind et un identifiant d'entité fournis par le magasin
de données.
Le kind classe l'entité, de sorte que vous pouvez la rechercher plus facilement.
Atelier 2 : Requêtes et Index
Une requête de magasin de données App Engine s'exécute sur chaque entité d'un
kind donné (une classe de données).
Elle spécifie zéro filtre ou plus sur les clés et valeurs de propriétés des entités,
et zéro ordre de tri ou plus.
Chaque requête de magasin de données utilise un index, un tableau qui contient les
résultats de la requête dans l'ordre souhaité.
Une entité est renvoyée en tant que résultat d'une requête si elle possède au moins
une valeur (même null) pour chacune des propriétés mentionnées dans les filtres et
ordres de tri de la requête, et que tous les critères de filtrage sont remplis par les valeurs
des propriétés.
Index
Appengine permet d'exécuter uniquement des recherches efficaces.
Limitations sont :
Aucun balayage (parcourt) de table.
Pas de jointure.
Pas de tri en mémoire.
Atelier 2 : Requêtes et Index
si vous désirez réaliser des recherches, vous aurez besoin d'indexes adaptés aux
recherches que vous voudrez exécuter.
Pour simplifier cela, le datastore a l'aptitude de stocker chaque et toutes propriétés
comme "indexées" ou "non indexées"
Entity.setProperty()
Entity.setUnindexedProperty()
Objectify fixe toutes les propriétés comme indexées jusqu'à ce que vous changiez
le champ (ou la classe) avec l'annotation @Unindexed.
Atelier 2 : Différence avec SQL
Le magasin de données App Engine est conçu pour évoluer afin de permettre aux
applications de fonctionner de manière optimale au fur et à mesure que le trafic augmente.
Toutes les requêtes sur App Engine étant diffusées par des index pré-construits,
les types de requêtes pouvant être exécutés sont plus restreints que ceux autorisés
sur une base de données relationnelle avec SQL. Aucune jointure n'est prise en charge
dans le magasin de données. En outre, le magasin de données n'autorise pas le filtrage
d'inégalité sur plusieurs propriétés ni le filtrage de données basé sur les résultats
d'une sous-requête.
FIN

Contenu connexe

En vedette

Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012
Iñaki Ruiz Vazquez
 
Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10
Javier Laguens Garcia
 
Suchmaschinenmarketing
SuchmaschinenmarketingSuchmaschinenmarketing
Suchmaschinenmarketing
idealogues
 

En vedette (20)

Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App Engine
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine Fr
 
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
 
App engine
App engineApp engine
App engine
 
CAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoCAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de Contenido
 
CAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchCAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords Research
 
El SEOy la geolocalización
El SEOy la geolocalizaciónEl SEOy la geolocalización
El SEOy la geolocalización
 
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
 
Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de cas
 
An introduction to Google's App Engine
An introduction to Google's App EngineAn introduction to Google's App Engine
An introduction to Google's App Engine
 
b2performance berth
b2performance berthb2performance berth
b2performance berth
 
Suchmaschinenmarketing
SuchmaschinenmarketingSuchmaschinenmarketing
Suchmaschinenmarketing
 
El SEO y la Geolocalización
El SEO y la GeolocalizaciónEl SEO y la Geolocalización
El SEO y la Geolocalización
 
Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014
 
Google App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im ProduktiveinsatzGoogle App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im Produktiveinsatz
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
FACT-Finder Webinar Recommendation Engine 2.0
FACT-Finder Webinar Recommendation Engine 2.0FACT-Finder Webinar Recommendation Engine 2.0
FACT-Finder Webinar Recommendation Engine 2.0
 

Plus de gdgyaounde (11)

Html5-Devfest Yaoundé 2013
Html5-Devfest Yaoundé 2013Html5-Devfest Yaoundé 2013
Html5-Devfest Yaoundé 2013
 
Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013Intro to polymer-Devfest Yaoundé 2013
Intro to polymer-Devfest Yaoundé 2013
 
Android Intro-DevFest Yde 2013
Android Intro-DevFest Yde 2013Android Intro-DevFest Yde 2013
Android Intro-DevFest Yde 2013
 
Ict4AgriDev-Devfest Yde 2013
Ict4AgriDev-Devfest Yde 2013Ict4AgriDev-Devfest Yde 2013
Ict4AgriDev-Devfest Yde 2013
 
Ict4AgriDev-Devfest Yde 2013
Ict4AgriDev-Devfest Yde 2013Ict4AgriDev-Devfest Yde 2013
Ict4AgriDev-Devfest Yde 2013
 
Tic et agriculture- Devfest Yde 2013
Tic et agriculture- Devfest Yde 2013Tic et agriculture- Devfest Yde 2013
Tic et agriculture- Devfest Yde 2013
 
Web rtc présentation-Devfest Yde 2013
Web rtc présentation-Devfest Yde 2013Web rtc présentation-Devfest Yde 2013
Web rtc présentation-Devfest Yde 2013
 
Présentation Devfest Yde 2013- Devfest Yde 2013
Présentation Devfest Yde 2013- Devfest Yde 2013Présentation Devfest Yde 2013- Devfest Yde 2013
Présentation Devfest Yde 2013- Devfest Yde 2013
 
Communication android
Communication androidCommunication android
Communication android
 
App engineday 1-Devfest Yde 2013
App engineday 1-Devfest Yde 2013App engineday 1-Devfest Yde 2013
App engineday 1-Devfest Yde 2013
 
Apport de la psychologie dans les sciences informatiques -Devfest Yde 2013
Apport de la psychologie dans les sciences informatiques -Devfest Yde 2013Apport de la psychologie dans les sciences informatiques -Devfest Yde 2013
Apport de la psychologie dans les sciences informatiques -Devfest Yde 2013
 

Data store day 2- Devfest yde 2013

  • 2. CLOUD Google App Engine & Datastore KWAYE KANT Member GDG Yaounde
  • 3. Jour 2 Atelier 2 : DataStore Atelier 2.1 : Présentation du magasin de données DataStore 1. Introduction 2. API Java Datastore 3. Entités et propriétés 4. Requêtes et Index 5. Différence avec SQL
  • 4. Atelier 2 : Présentation du magasin de données DataStore 1. Introduction 2. API Java Datastore 3. Entités et propriétés 4. Requêtes et Index 5. Différence avec SQL
  • 5. Atelier 2 : Introduction Le magasin de données App Engine constitue une solution évolutive et robuste pour le stockage des données de votre application Web Il est conçu pour privilégier les performances des opérations de lecture et de requête. Une application crée des entités, et stocke les valeurs des données en tant que propriétés des entités. L'application peut exécuter des requêtes sur les entités Toutes les requêtes sont pré-indexées, ce qui garantit des résultats rapides sur des ensembles de données très volumineux
  • 6. Atelier 2 : API Java DataStore Les entités de magasin de données sont dépourvues de schéma : deux entités de même kind ne sont pas obligées d'avoir les mêmes propriétés, ni d'utiliser les mêmes types de valeurs pour des propriétés identiques. La vérification éventuelle de la conformité des entités à un schéma doit être assurée par l'application. Le magasin de données fournit une API de bas niveau qui permet d'effectuer des opérations simples sur les entités, telles que get, put, delete et query. Vous pouvez utiliser cette API de bas niveau pour implémenter d'autres adaptateurs d'interface, ou simplement l'exploiter directement dans vos applications. Chaque entité dispose également d'une clé qui l'identifie de manière individuelle. La clé la plus simple possède un kind et un identifiant d'entité fournis par le magasin de données.
  • 7. Atelier 2 : API Java DataStore Comme API de bas niveau : le Datastore Le Datastore GAE n’est pas un SGBDR ?HashMap
  • 8. Atelier 2 : API Java DataStore Environnements logiciels pour la modélisation et la persistance des données. La vérification éventuelle de la conformité des entités à un schéma doit être assurée par l'application. Le SDK Java intègre des implémentations des interfaces Java Data Objects (JDO) et Java Persistence API (JPA) pour la modélisation et la persistance des données L’equipe Google App Engine a mis a disposition des outils permettant de simplifier de maniere significative l’utilisation des API de bas niveau, le JDO et le JPA. Objectify : Objectify est une interface très conviviale et d'une grande simplicité avec le magasin de données App Engine, qui vous permet d'éviter certaines des difficultés inhérentes à JDO/JPA et au magasin de données de bas niveau. TWiG : TWiG est une interface de persistance d'objets configurable, qui améliore la prise en charge des stratégies d'héritage, du polymorphisme et des types génériques. À l'instar d'Objectify, TWiG vous aide également à contourner les obstacles présentés par JDO et par le magasin de données de bas niveau.
  • 9. Atelier 2 : Entités et propriètés Un objet de données dans le magasin de données App Engine est appelé entité. Une entité possède une ou plusieurs propriétés. Chaque entité dispose également d'une clé qui l'identifie de manière individuelle. L'identifiant d'entité peut également être une chaîne fournie par l'application. La clé la plus simple possède un kind et un identifiant d'entité fournis par le magasin de données. Le kind classe l'entité, de sorte que vous pouvez la rechercher plus facilement.
  • 10. Atelier 2 : Requêtes et Index Une requête de magasin de données App Engine s'exécute sur chaque entité d'un kind donné (une classe de données). Elle spécifie zéro filtre ou plus sur les clés et valeurs de propriétés des entités, et zéro ordre de tri ou plus. Chaque requête de magasin de données utilise un index, un tableau qui contient les résultats de la requête dans l'ordre souhaité. Une entité est renvoyée en tant que résultat d'une requête si elle possède au moins une valeur (même null) pour chacune des propriétés mentionnées dans les filtres et ordres de tri de la requête, et que tous les critères de filtrage sont remplis par les valeurs des propriétés. Index Appengine permet d'exécuter uniquement des recherches efficaces. Limitations sont : Aucun balayage (parcourt) de table. Pas de jointure. Pas de tri en mémoire.
  • 11. Atelier 2 : Requêtes et Index si vous désirez réaliser des recherches, vous aurez besoin d'indexes adaptés aux recherches que vous voudrez exécuter. Pour simplifier cela, le datastore a l'aptitude de stocker chaque et toutes propriétés comme "indexées" ou "non indexées" Entity.setProperty() Entity.setUnindexedProperty() Objectify fixe toutes les propriétés comme indexées jusqu'à ce que vous changiez le champ (ou la classe) avec l'annotation @Unindexed.
  • 12. Atelier 2 : Différence avec SQL Le magasin de données App Engine est conçu pour évoluer afin de permettre aux applications de fonctionner de manière optimale au fur et à mesure que le trafic augmente. Toutes les requêtes sur App Engine étant diffusées par des index pré-construits, les types de requêtes pouvant être exécutés sont plus restreints que ceux autorisés sur une base de données relationnelle avec SQL. Aucune jointure n'est prise en charge dans le magasin de données. En outre, le magasin de données n'autorise pas le filtrage d'inégalité sur plusieurs propriétés ni le filtrage de données basé sur les résultats d'une sous-requête.
  • 13. FIN