Gae DataStore vs Google Cloud SQL dla Systemów Zarządzania Przedsiębiorstwem

Buduję aplikację, która jest systemem zarządzania przedsiębiorstwem wykorzystującym gae. Zbudowałem kilka aplikacji wykorzystujących Gae i magazyn danych, ale nigdy takich, które będą wymagały dużej liczby użytkowników wprowadzających transakcje wraz z potrzebą raportowania administracyjnego i zarządczego. Moim największym obawą jest to, że kiedy muszę tworzyć Cross-tab i inne szczegółowe raporty (lub raportowanie business intelligence i manipulacja danymi) będę musiał zmierzyć się z górą problemów z magazynem danych Gae limity zapytań i pobierania danych. Czy to naprawdę tylko Preferencje architektoniczne, czy są tu jakieś obawy ilościowe?

W przeszłości budowałem systemy wykorzystujące C++/C# / Java przeciwko Oracle / MySql/MSSql(z warstwą buforowania usypaną w celu zwiększenia wydajności złożonych lub często dostępnych wyników db).

Wciąż czytam, że mamy wyrzucić starą mentalność danych relacyjnych i przenieść się do nowego świata wielkiego McHashTable na niebie... ale nowe nie zawsze jest lepsze... Każdy wgląd lub doświadczenie na powyższe byłoby pomocne.

Author: MindWire, 2012-06-06

2 answers

From the Cloud SQL FAQ :

Czy powinienem używać Google Cloud SQL lub App Engine Datastore?

Zależy to od wymagań aplikacji. Datastore zapewnia pamięć masową NoSQL key-value >, która jest wysoce skalowalna, ale nie obsługuje złożonych zapytań oferowanych przez bazę danych SQL. Cloud SQL obsługuje złożone zapytania i transakcje ACID, ale oznacza to, że baza danych działa jako "stały strumień", a wydajność jest mniej skalowalna. Wiele aplikacji wykorzystuje zarówno rodzaje przechowywania.

Jeśli potrzebujesz dużo zapisów (~XXX per/s) do DB entity z kluczami rozproszonymi, to właśnie tam magazyn danych Google App Engine naprawdę świeci.

Jeśli potrzebujesz wsparcia dla złożonych i losowych zapytań użytkownika, To właśnie tam Google Cloud SQL jest wygodniejszy.

 21
Author: proppy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-06 22:07:29

To co mnie bardziej przeraża w Gae datastore to ograniczenie liczby indeksów. Na przykład, jeśli potrzebujesz wyszukiwania według jakiegoś pola lub sortowania-potrzebujesz indeksu +1. Możesz mieć 200 indeksów. Jeśli masz encję z 10 polami do przeszukiwania i możesz sortować według dowolnego pola - będzie około 100 kombinacji. Więc potrzebujesz 100 indeksów. Opracowałem kilka małych projektów dla gae - i to jest historia sukcesu. Ale kiedy nadchodzi wielki - to nie jest dla gae.

O cache-można to zrobić z gae, ale rozpowszechniali pamięć podręczną działa bardzo wolno. Wolę tworzyć prywatną pojedynczą instancję stałego backendu z RESTfull API, która przechowuje wartości w pamięci podręcznej. Instancje interfejsu wywołują to API, aby uzyskać / ustawić wartości.

Być może możliwe jest zbudowanie złożonego systemu z gae, ale będzie to zestaw małych aplikacji/usług.

 6
Author: alexey28,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-06 06:09:20