W konsoli administratora programisty, gdy patrzę na moje dane, jest napisane "Select different namespace
".Do czego służy przestrzeń nazw w magazynie danych w App Engine?
Co to są przestrzenie nazw i jak ich używać?
W konsoli administratora programisty, gdy patrzę na moje dane, jest napisane "Select different namespace
".Do czego służy przestrzeń nazw w magazynie danych w App Engine?
Co to są przestrzenie nazw i jak ich używać?
Przestrzenie nazw umożliwiają wdrożenie segregacji danych dla aplikacji dla wielu dzierżawców. official documentation łączy się z przykładowymi projektami, aby dać wyobrażenie o tym, jak można go użyć.
Przestrzeń nazw może być używana do tworzenia różnych baz danych dla różnych użytkowników. Pomaga w tworzeniu hierarchii w bazie danych.
Patrząc, w kierunku tego pytania nie jest tak dobrze ocenione i odpowiedział, więc stara się dać ten.
Używając przestrzeni nazw, możemy mieć najlepszą praktykę rozdzielania klucza i wartości w danym obszarze nazw. Oto najlepszy przykład dokładnego podania informacji o przestrzeni nazw.
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>')
Przestrzenie nazw jest używany w Google App Engine do tworzenia Multitenant Applications. W aplikacjach wielodostępnych pojedyncza instancja aplikacji działa na serwerze, obsługując wiele organizacji klientów (dzierżawców). Dzięki temu można zaprojektować aplikację tak, aby wirtualnie dzieliła dane i konfigurację (logika biznesowa), a każda organizacja klienta współpracuje z niestandardową instancją aplikacji wirtualnej. Możesz łatwo podzielić dane na dzierżawców po prostu przez określenie unikalnego ciągu nazw dla każdego dzierżawcy. .
Inne zastosowania nazw:
Więcej informacji acji odwiedź poniższe linki:
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/