[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-12 Thread Wooble



On May 12, 11:58 am, Oliver Zheng  wrote:
> I have been looking at the stored data of some apps, and noticed those
> 3 columns. Key appears to be a hash/string of some sort. ID is usually
> empty. Key name looks like an actual readable identifier, but it's
> usually just "key_" + username or something that already exists.
>
> What is the use for any of this, from the perspective of a (python)
> app? Why are they created and what can or should I do with them?

http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html#Kinds_Names_and_IDs
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-12 Thread Jason (Google)
Hi Oliver. This page may help explain the difference between these fields:

http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html

When you create entities, you have the option of specifying a unique key
name that you can use to reference these entities directly (e.g. retrieving
entities without queries, thereby improving the performance of your
application). If you don't pass in a key name, a unique ID will be created
for you, which is contained in the ID field.

The key field is a Base64 encoding of the full key, including application ID
and path. This is what is stored when you use reference properties for
example.

- Jason

On Mon, May 11, 2009 at 4:52 PM, Oliver Zheng wrote:

>
> I have been looking at the stored data of some apps, and noticed those
> 3 columns. Key appears to be a hash/string of some sort. ID is usually
> empty. Key name looks like an actual readable identifier, but it's
> usually just "key_" + username or something that already exists.
>
> What is the use for any of this, from the perspective of a (python)
> app? Why are they created and what can or should I do with them?
>
> >
>

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



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-13 Thread Big Stu

> When you create entities, you have the option of specifying a unique key
> name that you can use to reference these entities directly (e.g. retrieving
> entities without queries, thereby improving the performance of your
> application).

I'm not sure what you mean by this.  Are you saying if I know enough
to reconstruct the full key name of an instance I want to retrieve I
can instantiate the model with that key name and then start using it
directly?  In other words, I know that when I create these instances I
use "some_string" + "owner model name" + "something else" as the key
name, so if I'm in some other situation where I know all those values
I can easily rebuild the key name and start using the model without
having to run a query on the datastore?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-13 Thread Nick Johnson (Google)

On Wed, May 13, 2009 at 12:47 PM, Big Stu  wrote:
>
>> When you create entities, you have the option of specifying a unique key
>> name that you can use to reference these entities directly (e.g. retrieving
>> entities without queries, thereby improving the performance of your
>> application).
>
> I'm not sure what you mean by this.  Are you saying if I know enough
> to reconstruct the full key name of an instance I want to retrieve I
> can instantiate the model with that key name and then start using it
> directly?  In other words, I know that when I create these instances I
> use "some_string" + "owner model name" + "something else" as the key
> name, so if I'm in some other situation where I know all those values
> I can easily rebuild the key name and start using the model without
> having to run a query on the datastore?

That's correct, as long as you also know the entity type and any
ancestors' keys.

-Nick Johnson

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



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-13 Thread djidjadji

If you ask this type of question you obviously are not the writer of
the application.
Or have not read the code.
Do a search for "key_" on the code and all will be clear.

2009/5/12 Oliver Zheng :
>
> I have been looking at the stored data of some apps, and noticed those
> 3 columns. Key appears to be a hash/string of some sort. ID is usually
> empty. Key name looks like an actual readable identifier, but it's
> usually just "key_" + username or something that already exists.
>
> What is the use for any of this, from the perspective of a (python)
> app? Why are they created and what can or should I do with them?

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



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-15 Thread Jason (Google)
Yes. See the Model functions that are available:

http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model_get_by_key_name
http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreService.html

- Jason

On Wed, May 13, 2009 at 4:47 AM, Big Stu  wrote:

>
> > When you create entities, you have the option of specifying a unique key
> > name that you can use to reference these entities directly (e.g.
> retrieving
> > entities without queries, thereby improving the performance of your
> > application).
>
> I'm not sure what you mean by this.  Are you saying if I know enough
> to reconstruct the full key name of an instance I want to retrieve I
> can instantiate the model with that key name and then start using it
> directly?  In other words, I know that when I create these instances I
> use "some_string" + "owner model name" + "something else" as the key
> name, so if I'm in some other situation where I know all those values
> I can easily rebuild the key name and start using the model without
> having to run a query on the datastore?
> >
>

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



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-22 Thread Oliver Zheng

Hi Jason,

On May 12, 5:12 pm, "Jason (Google)"  wrote:
> [...] thereby improving the performance of your application [...]

What is the extent of this? I suppose you mean that if you know the
key, you can construct an object and save it to datastore by
overwriting it, without first querying for that object.

But beyond that, is there performance improvement to querying with a
key instead of another field that is also indexed?

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



[google-appengine] Re: What's the difference among key, id, and key name?

2009-05-26 Thread Nick Johnson (Google)

Hi Oliver,

Doing a get() for a specific key is definitely much faster than doing
a query, even if that query only returns one entity.  As an example,
take a look at the System Status page for gets:
http://code.google.com/status/appengine/detail/datastore/2009/05/26#ae-trust-detail-datastore-get-latency
and the one for queries:
http://code.google.com/status/appengine/detail/datastore/2009/05/26#ae-trust-detail-datastore-query-latency
. Gets average 20-40ms, while queries average 150-200ms.

-Nick Johnson

On Fri, May 22, 2009 at 10:51 AM, Oliver Zheng  wrote:
>
> Hi Jason,
>
> On May 12, 5:12 pm, "Jason (Google)"  wrote:
>> [...] thereby improving the performance of your application [...]
>
> What is the extent of this? I suppose you mean that if you know the
> key, you can construct an object and save it to datastore by
> overwriting it, without first querying for that object.
>
> But beyond that, is there performance improvement to querying with a
> key instead of another field that is also indexed?
>
> Thanks,
> Oliver
> 

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