Vengo del mundo de la base de datos relacional y luego encontré esta cosa del almacén de datos. tardó varios días en acostumbrarse. bueno, hay algunos de mis hallazgos.
Ya debe haber sabido que Datastore está construido a escala y eso es lo que lo separa de RDMBS. para escalar mejor con grandes conjuntos de datos, App Engine ha realizado algunos cambios (algunos significan muchos cambios).
Estructura de RDBMS VS DataStore
En la base de datos, generalmente estructuramos nuestros datos en Tablas, Filas que están en Datastore se convierten en Tipos y Entidades .
Relaciones
En RDBMS, la mayoría de las personas siguen la relación uno a uno, muchos a uno, muchos a muchos, en el almacén de datos, ya que tiene la opción "No unirse", pero aún podemos lograr nuestra normalización usando " ReferenceProperty "Ejemplo de relación uno a uno .
Índices
Por lo general, en RDMBS hacemos índices como Clave primaria, Clave externa, Clave única e Clave de índice para acelerar la búsqueda y aumentar el rendimiento de nuestra base de datos. En el almacén de datos, usted tiene que hacer al menos un índice por tipo (será automáticamente generar ya sea que nos guste o no) porque almacén de datos buscar su entidad sobre la base de estos índices y yo creo que es la mejor parte, en el RDBMS puede realizar búsquedas con campo sin índice, aunque llevará algún tiempo, pero lo hará. En el almacén de datos no puede buscar utilizando propiedades que no sean de índice.
Recuento
En RDMBS, es mucho más fácil contar (*) pero en el almacén de datos, ni siquiera lo piense de manera normal (sí, hay una función de recuento) ya que tiene un límite de 1000 y costará una operación tan pequeña como la entidad que no es bueno pero siempre tenemos buenas opciones, podemos usar Shard Counters .
Restricciones únicas
En RDMBS, nos encanta esta característica ¿verdad? pero Datastore tiene su propio camino. no puede definir una propiedad como única :(.
Query
GAE Datatore proporciona una mejor característica mucho ME GUSTA (¡Oh, no! El almacén de datos no tiene LIKE Keyword) SQL que es GQL .
Insertar / actualizar / eliminar / seleccionar datos
Aquí es donde todos estamos interesados, ya que en RDMBS requerimos una consulta para Insertar, Actualizar, Eliminar y Seleccionar al igual que RDBMS, Datastore ha puesto, eliminado, obtiene (no se emocione demasiado) porque Datastore poner u obtener en términos de escritura, lectura, pequeñas operaciones ( costos de lectura para llamadas al almacén de datos ) y ahí es donde entra en acción el modelado de datos. debe minimizar estas operaciones y mantener su aplicación en funcionamiento. Para la operación de reducción de lectura puede usar Memcache .