En la consola de administración de desarrollo, cuando miro mis datos, dice "Select different namespace
".¿Para qué se utiliza el espacio de nombres en el almacén de datos de App Engine?
¿Cuáles son los espacios de nombres para y cómo debo usarlos?
En la consola de administración de desarrollo, cuando miro mis datos, dice "Select different namespace
".¿Para qué se utiliza el espacio de nombres en el almacén de datos de App Engine?
¿Cuáles son los espacios de nombres para y cómo debo usarlos?
Los espacios de nombres permiten implementar la segregación de datos para aplicaciones con varios inquilinos. El official documentation enlaces a algunos proyectos de muestra para darle una idea de cómo se podría utilizar.
Un espacio de nombre se puede utilizar para crear diferentes bases de datos para diferentes usuarios. Ayuda a crear jerarquía en la base de datos.
mirada, hacia esta pregunta no es que revisó mucho bien y respondió lo que tratar de dar a éste.
Al utilizar espacios de nombres, podemos tener una mejor práctica de la clave y el valor de separación allí en un espacio de nombres dado. Siguiente es el mejor ejemplo de dar la información del espacio de nombres a fondo.
from google.appengine.api import namespace_manager
from google.appengine.ext import db
from google.appengine.ext import webapp
class Counter(db.Model):
"""Model for containing a count."""
count = db.IntegerProperty()
def update_counter(name):
"""Increment the named counter by 1."""
def _update_counter(name):
counter = Counter.get_by_key_name(name)
if counter is None:
counter = Counter(key_name=name);
counter.count = 1
else:
counter.count = counter.count + 1
counter.put()
# Update counter in a transaction.
db.run_in_transaction(_update_counter, name)
class SomeRequest(webapp.RequestHandler):
"""Perform synchronous requests to update counter."""
def get(self):
update_counter('SomeRequest')
# try/finally pattern to temporarily set the namespace.
# Save the current namespace.
namespace = namespace_manager.get_namespace()
try:
namespace_manager.set_namespace('-global-')
update_counter('SomeRequest')
finally:
# Restore the saved namespace.
namespace_manager.set_namespace(namespace)
self.response.out.write('<html><body><p>Updated counters')
self.response.out.write('</p></body></html>')
Los espacios de nombres se utiliza en el motor de aplicación de Google para crear aplicaciones multiusuario. En las aplicaciones de Multitenent, una sola instancia de la aplicación se ejecuta en un servidor y sirve a varias organizaciones de clientes (inquilinos). Con esto, una aplicación puede diseñarse para particionar virtualmente sus datos y configuraciones (lógica de negocios) y cada organización de cliente trabaja con una instancia de aplicación virtual personalizada. Puede dividir fácilmente los datos entre inquilinos simplemente especificando una cadena de espacio de nombres única para cada inquilino. .
Otros usos de espacio de nombres:
Para informar Más visita ación en los enlaces siguientes:
http://www.javacodegeeks.com/2011/12/multitenancy-in-google-appengine-gae.html
https://developers.google.com/appengine/docs/java/multitenancy/
http://java.dzone.com/articles/multitenancy-google-appengine
http://www.sitepoint.com/multitenancy-and-google-app-engine-gae-java/