Ejemplo de contador simple usando mapreduce en Google App Engine

Estoy algo confundido con el estado actual del soporte de mapreduce en GAE. De acuerdo con los documentoshttp: //code.google.com/p/appengine-mapreduce Reducir fase aún no es compatible, pero en la descripción de la sesión de E / S 2011 http: //www.youtube.com/watch? v = EIxelKcyCC0) está escrito "Ahora es posible ejecutar trabajos completos de Map Reduce en App Engine". Me pregunto si puedo usar mapreduce en esta tarea:

Lo que quiero hacer

Tengo modelo de coche con color de campo:

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

Quiero ejecutar el proceso de reducción de mapas (de vez en cuando, definido por cron) que puede calcular cuántos automóviles hay en cada color y almacenar este resultado en el almacén de datos. Parece un trabajo muy adecuado para mapreduce (pero si me equivoco, corríjame), la fase "map" generará pares (, 1) para cada entidad Car, y la fase "reduce" debería fusionar estos datos con color_name, lo que me dará los resultados esperados. . El resultado final que quiero obtener son entidades con datos calculados almacenados en el almacén de datos, algo así:

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

Problema No sé cómo implementar esto en appengine ... El video muestra ejemplos con funciones definidas de mapa y reducción, pero parecen ser ejemplos muy generales no relacionados con el almacén de datos. Todos los demás ejemplos que encontré están usando una función para procesar los datos de DatastoreInputReader, pero parecen ser solo la fase de "mapa", no hay ningún ejemplo de cómo hacer la "reducción" (y cómo almacenar los resultados de reducción en el Almacén de datos)

Respuestas a la pregunta(2)

Su respuesta a la pregunta