Consultas complejas utilizando el almacén de datos GAE

Estoy en las primeras etapas de desarrollo de un sitio web de estadísticas deportivas (frisbee definitivo) y me gustaría conocer sus opiniones si Google App Engine es adecuado para mí.

Lo estoy escribiendo en Python usando Django y me he sentido cómodo con el RDBMS estándar durante años, pero este sitio es un proyecto a largo plazo y estoy esperando una gran cantidad de datos, por lo que me gustaría la escala "infinita" que ofrece el almacén de datos de GAE. La gran mayoría de las consultas a la base de datos arrojarán resultados muy estándar que harán que el almacén de datos parezca una opción lógica. Sin embargo, me gustaría poder realizar consultas extremadamente complejas en el futuro para generar nuevas estadísticas o simplemente obtener resultados interesantes. Planeo hacer mucho de esto en el futuro, pero no sabré cuáles son estas consultas hasta que los datos ya estén recopilados.

Por ejemplo, a menudo los analistas de estadísticas de béisbol presentan estadísticas ridículas como "Esta es solo la primera vez en los últimos 50 años que dos lanzadores zurdos cuyos apellidos comienzan con 'Z' han lanzado disparos de un golpe en la espalda dias". Me gustaría tener la flexibilidad de hacer cualquier consulta en el futuro. :)

Sin embargo, tengo la impresión de que una base de datos no relacional como bigtable requiere que usted presente modelos que contengan datos redundantes de antemano y todo el trabajo se realiza en las inserciones en lugar de en las búsquedas. Ya he creado modelos de django que contendrían prácticamente todos los datos que tendría que consultar, pero no tengo idea de qué modelos desnormalizados querré tener uno o dos años a partir de ahora. Por lo tanto, creo que hacer consultas complejas en el futuro sería extremadamente difícil en el almacén de datos de GAE y me requeriría extraer una tonelada de información del servidor antes de procesarla en Python.

¿El almacén de datos del motor de la aplicación de Google es simplemente incorrecto para lo que quiero hacer? O simplemente me estoy perdiendo algo. Muchas gracias de antemano!

Actualizar: Gracias por las respuestas hasta el momento. Me doy cuenta de que también debo mencionar que muchas de estas consultas complejas son consultas que me gustaría que los usuarios pudieran hacer, por lo que hacer que una base de datos sin conexión no sea realmente una opción. Por ejemplo, los usuarios deberían poder ver varias estadísticas de qué tan bien juegan dos jugadores en particular cuando están en el campo al mismo tiempo durante juegos o temporadas específicas. Si bien estas consultas no son tan frecuentes como las estadísticas agregadas estándar, seguirán ocurriendo con regularidad.

Tener una base de datos relacional, así como el almacén de datos GAE, sería genial, pero django no es compatible con múltiples bases de datos de forma predeterminada, y parchar una solución a la vez suena difícil y desordenado. Eric Florenzano tiene unbuena solución para dos bases de datos que usan los modelos django, pero si tuviera que usar el almacén de datos GAE, tendría que usar el modelo db del motor de la aplicación. Y encontrar una buena solución como lo hizo para este complejo problema está un poco más allá de mi nivel de habilidad en este momento.

En este momento, mis dos opciones favoritas son usar la cola de tareas de GAE para hacer las consultas difíciles o ir a un host web más estándar como webfaction y luego desnormalizar mis tablas más tarde una vez que mis datos crezcan y necesito aumentar el rendimiento.

Respuestas a la pregunta(4)

Su respuesta a la pregunta