2010-11-18 21 views
4

J'utilise ce qui suit pour télécharger toutes les occurrences d'un de mes ordres:moteur App vrac chargeur Avertissement de téléchargement « Aucun index descendant sur __key__, effectuer le téléchargement série »

appcfg.py download_data --config_file=bulkloader.yaml --kind=ModelName --filename=ModelName.csv --url=http://appid.appspot.com/remote_api 

Si le type a plus de cas que la taille du lot, alors je reçois cet avertissement:

No descending index on __key__, performing serial download 

Je n'ai aucun index personnalisés, ou des propriétés avec des index désactivés. Est-ce que j'ai «besoin» de faire quelque chose pour résoudre cet avertissement ou est-ce simplement un avertissement que je peux ignorer en toute sécurité? Cela affecte-t-il la vitesse du téléchargement?

This article on the bulkloader inclut le message d'avertissement dans l'exemple de sortie, mais n'en fait aucune mention.

This post on the app engine group dit que j'ai besoin de créer un index. Cependant ajouter plus d'index ralentirait les écritures vers mes entités - ce que je préférerais ne pas faire car je vais écrire des entités plus souvent que je ne ferais de téléchargements de données en masse.

Merci.

+0

Avez-vous des questions dans l'ordre décroissant dans votre code? – systempuntoout

+0

@systempuntoout: Oui, mais uniquement sur l'un de mes types (et cet avertissement se produit avec des instances de taille de lot), et la clause order n'est pas sur la clé __key__ (elle se trouve sur une propriété datetime). –

Répondre

6

Comme le décrit l'erreur, sans un index descendant sur __key__ pour le modèle que vous téléchargez, le chargeur de masse doit être téléchargé en série. Si vous ajoutez l'index comme décrit, il pourra être téléchargé en parallèle. Si vous ne le faites pas, cela fonctionnera bien, mais sera plus lent à télécharger, car il fonctionne en série. Notez qu'un index supplémentaire n'a qu'un faible impact sur la latence, car les lignes d'index sont écrites en parallèle à l'écriture de l'entité, ce qui signifie que l'écriture ne dure que la mise à jour la plus lente.

+0

Merci pour ce Nick. –

+3

... comment définir un index descendant? tout ce que je peux trouver sont des trucs de 2-3 ans qui produisent des erreurs en 2013. :( –

2

Je l'ai résolu ce problème en ajouter ce code à index.yaml

kind: books 
- properties: 
    name: __key__ 
    - direction: desc 
kind: books 
- properties: 
    name: another_indexes_here 
0

Si votre utilisation de JAVA et le fichier datastore-indexes.xml.

Ajouter (en supposant le nom du genre est "Livres") au fichier datastore-indexes.xml:

<datastore-index kind="Books" ancestor="false" source="auto"> 
    <property name="__key__" direction="desc"/> 
</datastore-index> 

redéployer votre application. Assurez-vous de vérifier l'onglet de l'index du magasin de données pour voir que le service __key__ est en cours d'exécution. Ensuite, vous pouvez réessayer de télécharger.