Guillermo, Sandeep - you guys are both missing my point.

You're not giving me a SQL interface to my GAE datastore data.  You're
trying to turn the GAE datastore into an RDBMS.  There is a crucial
distinction.

I don't want to try to run Hibernate against GAE.  I don't want a fat
layer of very complicated software that 1) tries to map my java
objects to SQL and then 2) tries to map that SQL to the GAE datastore
- which really is closer to the original objects in structure.

For my operational needs, working with Objectify (or pick your tier)
is great.  However, my ability to run ad-hoc queries is severely
limited to GQL in the datastore viewer.  I want to be able to run
analytic SQL queries across my Objectify/JDO/Twig/Low-Level
API/whatever data stored in Appengine today.

I can't be certain from jiql's docs if it is the case, but Cloud2db's
docs suggest it is an "all or nothing" proposition.  Your only access
to data is the JDBC interface.  This is of no use to me.  I really
want to use your SQL engine against my data created with my
application.

Before you say "just use Hibernate", I'll repeat what I said in the
thread on Andreas' article:

 * There is no way you can build a performant RDBMS on GAE.

You don't have the key resource that makes RDBMSes fast:  RAM.  You
can't cache indexes in memory.  So all those nifty joins that
Hibernate likes to do are simply out of the question.  You're back to
tiptoeing through your application, limiting your use of Hibernate
features until - guess what - it works basically like the load/store
system presented by Objectify, Twig, SimpleDS, and Slim3.

Maybe I should put this a little differently.  Why will your RDBMS
interface to GAE perform any better than MySQL running on a late 1990s
PC with 128M of RAM?

The thing is, I could happily do analytical queries on a slow system.
I'm patient.  I can't do operational queries on a slow system because
I can't expect my users to be patient.

Jeff

On Tue, Mar 30, 2010 at 6:57 AM, Sandeep Sathaye
<sandeep.sath...@gmail.com> wrote:
> Hi Jeff,
>
> You mentioned in your post about splitting your large requests into smaller
> requests and then collate the results. This is exactly how Cloud2db JDBC
> client driver works. For example if you have a large number of entities in
> your datastore which you want to process. You can just write a standard sql
> query and Cloud2db JDBC driver will handle splitting it into smaller chunks
> and return you the results. You will never be hit by 30s request time limit.
>
> You also mentioned about the GUI tools to access the data. All standard JDBC
> client tools work seamlessly with Cloud2db JDBC driver. We use Squirrel JDBC
> client extensively to access the data. This tool works very well.
>
> Thanks,
>
> Sandeep.
> On Tue, Mar 30, 2010 at 4:51 AM, Jeff Schnitzer <j...@infohazard.org> wrote:
>>
>> Hey, so one of the things I complained about in Andreas' great article
>> is the difficulty of doing analytics on appengine.  GAE is great for
>> operational systems, but ad-hoc queries require writing a bunch of
>> code that is further complicated by the
>> queue-30s-write-temp-data-to-datastore-requeue process.  Painful.
>>
>> I miss being able to run SQL.  I *don't* miss writing code against
>> JDBC, and I *don't* miss configuring Java<->SQL systems like
>> Hibernate, but I do miss the SQL command prompt when I want to know
>> how many users logged in last week or what they've been doing.
>>
>> I'm tantalized by systems like Cloud2db and Jiql but it seems like
>> you're focusing on building operational systems with JDBC.  I'm much
>> happier writing my operational code in java at the higher level of
>> objects and getting the better fidelity of mapping to native
>> operations that you will with Objectify, JDO, or whatnot.  Maybe there
>> are people who still write JDBC apps but they've got to be a pretty
>> masochistic lot.
>>
>> What I really want is a bit of software (perhaps a version) that I can
>> deploy into my application, and a command line (or GUI) tool I can use
>> on my local box.  The tool would take my SQL statements (including
>> joins and aggregation functions), turn this into a series of 30s
>> requests, collate the results, and print them.  It could take hours,
>> fine - as long as it eventually comes up with the answer.  I'd be
>> willing to pay several hundred dollars for a tool like this.
>>
>> Is there any chance that JIQL will go in that direction?  Or are you
>> thinking along the lines of the Cloud2db folks, basically "all or
>> nothing".  I don't want to write JDBC apps, I just want to
>> occasionally run some ad-hoc SQL against my existing apps.
>>
>> Thanks,
>> Jeff
>>
>> On Tue, Mar 30, 2010 at 12:51 AM, Andreas Borglin
>> <andreas.borg...@gmail.com> wrote:
>> > Hi again.
>> >
>> > I had a look at jiql.
>> > "jiql is a JDBC wrapper for accessing Google DataStore on Google App
>> > Engine for JAVA.
>> > jiql supports the use of standard SQL as a method for accessing
>> > the DataStore"
>> >
>> > Even if I had seen jiql earlier I wouldn't have considered it anyway
>> > because,
>> >
>> > 1. I want the API to make perfect sense for working with the
>> > datastore. "Standard SQL" doesn't meet this requirement.
>> > 2. I use GWT. Not JSP or any other technology to dynamically generate
>> > pages on server side.
>> >
>> > On Mar 29, 8:52 pm, Guillermo Schwarz <guillermo.schw...@gmail.com>
>> > wrote:
>> >> One question: Why didn't you consider jiql?
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> On Mon, Mar 29, 2010 at 1:04 PM, Blake <blakecaldw...@gmail.com> wrote:
>> >> > +1
>> >>
>> >> > On Mar 29, 4:03 am, Andreas Borglin <andreas.borg...@gmail.com>
>> >> > wrote:
>> >> > > Hi all.
>> >>
>> >> > > I recently decided to migrate away from JDO to one of the third
>> >> > > party
>> >> > > datastore frameworks. At first I had only heard about objectify,
>> >> > > but
>> >> > > after some further digging I  found out about 5 other frameworks as
>> >> > > well (Twig, SimpleDS, siena, slim3, cloud2db).
>> >>
>> >> > > I was only interested in simple wrapper frameworks that acted as a
>> >> > > convenience layer above the AppEngine low-level API. I _want_ the
>> >> > > framework to expose the true nature of the datastore, but at the
>> >> > > same
>> >> > > time relieve the developer of the tedious tasks that's involved
>> >> > > when
>> >> > > working with the low-level API directly. It is much easier to work
>> >> > > with the AppEngine datastore when its concepts, features,
>> >> > > constraints
>> >> > > and limitations are exposed directly. You can read more about the
>> >> > > reasons for this in the article.
>> >>
>> >> > > This left me with objectify, Twig and SimpleDS. (siena and cloud2db
>> >> > > are multi-platform and slim3 is more than just a datastore
>> >> > > framework)
>> >>
>> >> > > I spent some time researching these when I got the idea to write an
>> >> > > article about them. I contacted the authors for each framework and
>> >> > > asked if they would be interested in participating. Passionate as
>> >> > > they
>> >> > > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), John
>> >> > > Patterson (Twig) and Ignacio Coloma (SimpleDS) for this.
>> >>
>> >> > > The goal is to publish two articles; one interview with the
>> >> > > authors,
>> >> > > and one where I solve some typical scenario with each framework.
>> >> > > The interview article has now been published and can be found
>> >> > > athttp://
>> >> > borglin.net/gwt-project/?page_id=604.
>> >> > > The code example article will be posted sometime in the upcoming
>> >> > > two
>> >> > > weeks.
>> >>
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "Google App Engine for Java" group.
>> >> > To post to this group, send email to
>> >> > google-appengine-j...@googlegroups.com.
>> >> > To unsubscribe from this group, send email to
>> >> >
>> >> > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2B
>> >> > unsubscr...@googlegroups.com>
>> >> > .
>> >> > For more options, visit this group at
>> >> >http://groups.google.com/group/google-appengine-java?hl=en.
>> >>
>> >> --
>> >> Saludos cordiales,
>> >>
>> >> Guillermo Schwarz
>> >> Sun Certified Enterprise Architect
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Google App Engine for Java" group.
>> > To post to this group, send email to
>> > google-appengine-j...@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > google-appengine-java+unsubscr...@googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> google-appengine-j...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine-java+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

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

Reply via email to