Exemplo de contador simples usando mapreduce no Google App Engine

Estou um pouco confuso com o estado atual do suporte de mapreduce no GAE. De acordo com os documentoshttp: //code.google.com/p/appengine-mapreduce fase de redução ainda não é suportada, mas na descrição da sessão de E / S 2011 http: //www.youtube.com/watch? v = EIxelKcyCC0) está escrito "Agora é possível executar tarefas completas de Redução de mapa no App Engine". Gostaria de saber se posso usar mapreduce nesta tarefa:

O que eu quero fazer

Tenho modelo de carro com a cor do campo:

class Car(db.Model):
    color = db.StringProperty()

Eu quero executar um processo de mapreduce (de tempos em tempos, definido pelo cron) que pode calcular quantos carros existem em cada cor e armazenar esse resultado no armazenamento de dados. Parece um trabalho adequado para mapreduce (mas, se estiver errado, corrija-me), a fase "map" produzirá pares (, 1) para cada entidade Car, e a fase "reduzir" deverá mesclar esses dados por color_name, fornecendo os resultados esperados . O resultado final que desejo obter são entidades com dados computados armazenados no armazenamento de dados, algo como:

class CarsByColor(db.Model):
    color_name = db.StringProperty()
    cars_num = db.IntegerProperty()

Problema Não sei como implementar isso no appengine ... O vídeo mostra exemplos com funções definidas de mapa e redução, mas parecem exemplos muito gerais, não relacionados ao armazenamento de dados. Todos os outros exemplos que encontrei estão usando uma função para processar os dados do DatastoreInputReader, mas parecem ser apenas a fase "map", não há exemplo de como fazer a "redução" (e como armazenar resultados reduzidos no banco de dados)

questionAnswers(2)

yourAnswerToTheQuestion