It doesn't exist yet in Java:

http://code.google.com/p/appengine-mapreduce/source/browse/#svn/trunk/java/src/com/google/appengine/tools/mapreduce

It doesn't seem like it'd be too hard to add, however, but there are no
immediate plans to do this soon. I talked to Fred and this seems like
something he'd patch in if someone builds an implementation ... !

--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blogger: http://googleappengine.blogspot.com
Reddit: http://www.reddit.com/r/appengine
Twitter: http://twitter.com/app_engine



On Mon, Nov 29, 2010 at 1:35 PM, Eli Jones <[email protected]> wrote:

> I'm pretty sure mapreduce already allows keys only with
> the DatastoreKeyInputReader.
>
>
> http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/mapreduce/input_readers.py#377
>
> Granted, I don't use mapreduce since I'm so used to writing my own code to
> fire off tasks to do something with batches of entities.. but it seems that
> the documentation for mapreduce is so light.. that many people don't really
> understand how the API works.
>
> As someone mentioned in the "Bulk Deletion Woes" thread... the Datastore
> Admin deleter uses the DatastoreKeyInputReader:
>
>
> http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/datastore_admin/delete_handler.py#148
>
> So.. maybe some insights could be gleaned about mapreducing with keys_only
> there.
>
> <http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/mapreduce/input_readers.py#377>
>
>
> On Mon, Nov 29, 2010 at 3:20 PM, Ikai Lan (Google) <
> [email protected] <ikai.l%[email protected]>> wrote:
>
>> Thanks for the feedback Stephen. Yeah, I can see where having an option to
>> not return the Entity could be useful.
>>
>> Yep, Stephen's way is the way to go (we talked about this at lunch the
>> other day). Create a new set of Entities with random keys that point to the
>> original entities, then randomly select a few of these based on key.
>>
>> --
>> Ikai Lan
>> Developer Programs Engineer, Google App Engine
>> Blogger: http://googleappengine.blogspot.com
>> Reddit: http://www.reddit.com/r/appengine
>> Twitter: http://twitter.com/app_engine
>>
>>
>>
>> On Sat, Nov 27, 2010 at 10:27 AM, Stephen Johnson <[email protected]
>> > wrote:
>>
>>> To extend on Tim's comments. I find that map reduce can be your best
>>> friend in a lot of situations. Why not use map reduce to pre-generate random
>>> test lists of keys. Then you're only going through all the keys every so
>>> often and not every time you need a new test. Create a new Entity kind to
>>> hold these pre-generated lists and then when you need a new test grab the
>>> first one from the pre-generated list of keys and then delete it (or just
>>> mark it as used if you want a historical record of the test). Have your map
>>> reduce job create as many as you think you'll need over a certain period and
>>> then just have a task to that runs the map reduce job every so often.
>>>
>>> As a side note to any of the Googlers that maintain and update
>>> map-reduce, this is another example of where it would be nice to have an
>>> option of map-reduce only returning keys and not also the entire entity
>>> because as in this example there is no need to incur the CPU cost of
>>> returning the entire entity. This was discussed also in the Bulk Deletion
>>> Woe topic a couple of weeks ago.
>>>
>>>
>>> On Fri, Nov 26, 2010 at 10:44 PM, Tim Hoffman <[email protected]>wrote:
>>>
>>>> Hi
>>>>
>>>> Do you know your key structure and general distribution?
>>>>
>>>> If for instance you keys are ints, you could randomly choose a key
>>>> do a > query and grab the first past that value or a random number
>>>> past the first one,
>>>> that way you only need to return a few keys/entities.
>>>>
>>>> To make it more likely to get hits, your could have a task queue that
>>>> maps the
>>>> keys ranges, then your random choice can come from a set of values
>>>> more likely to give you an entity.
>>>>
>>>> Just a thought ;-)
>>>>
>>>> T
>>>>
>>>> On Nov 26, 11:35 pm, lein <[email protected]> wrote:
>>>> > hello,
>>>> >
>>>> > i have a table of questions that has many rows. every now and then i
>>>> > would have to generate a quiz by randomly selecting questions from
>>>> > this table. making a key only query and randomly selecting the
>>>> > question keys from the resulting list of keys, takes a lot of CPU
>>>> > resources. any suggestions on how i could better do this?
>>>> >
>>>> > thanks
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Google App Engine" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<google-appengine%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/google-appengine?hl=en.
>>>>
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "Google App Engine" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<google-appengine%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-appengine?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-appengine%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to