13
2013.09.26 GDGYaounde @ Yaounde

Data store day 2- Devfest yde 2013

Embed Size (px)

DESCRIPTION

Data store day 2 par Gabriel Kant

Citation preview

Page 1: Data store day 2- Devfest yde 2013

2013.09.26 GDGYaounde @ Yaounde

Page 2: Data store day 2- Devfest yde 2013

CLOUD

Google App Engine& Datastore

KWAYE KANTMember

GDG Yaounde

Page 3: Data store day 2- Devfest yde 2013

Jour 2Atelier 2 : DataStore

Atelier 2.1 : Présentation du magasin de données DataStore1. Introduction2. API Java Datastore3. Entités et propriétés4. Requêtes et Index5. Différence avec SQL

Page 4: Data store day 2- Devfest yde 2013

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

Page 5: Data store day 2- Devfest yde 2013

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

Page 6: Data store day 2- Devfest yde 2013

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.

Page 7: Data store day 2- Devfest yde 2013

Atelier 2 : API Java DataStore

Comme API de bas niveau : le Datastore

Le Datastore GAE n’est pas un SGBDR

?HashMap

Page 8: Data store day 2- Devfest yde 2013

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.

Page 9: Data store day 2- Devfest yde 2013

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.

Page 10: Data store day 2- Devfest yde 2013

Atelier 2 : Requêtes et IndexUne 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.

Page 11: Data store day 2- Devfest yde 2013

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.

Page 12: Data store day 2- Devfest yde 2013

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.

Page 13: Data store day 2- Devfest yde 2013

FIN