2012-06-26 10 views
5

Rozglądam się za pomocą Google App Engine do projektu i chciałbym mieć pewność, że mam sposób na eksport wszystkich moich danych, jeśli kiedykolwiek zdecyduję się opuścić GAE (lub GAE zostanie wyłączony).Jak mogę eksportować dane z magazynu danych o wysokiej replikacji Google App Engine?

Wszystko, czego szukam, eksportując dane z punktów GAE do https://developers.google.com/appengine/docs/python/tools/uploadingdata. Ta strona zawiera jednak tę notatkę:

Uwaga: Niniejszy dokument dotyczy aplikacji korzystających z magazynu danych master/slave . Jeśli Twoja aplikacja korzysta z magazynu danych o wysokiej replikacji, możliwe jest skopiowanie danych z aplikacji za pomocą , ale Google obecnie nie obsługuje tego przypadku użycia w wersji . W przypadku próby skopiowania z magazynu danych o dużej replice pojawi się błąd high_replication_warning w konsoli administracyjnej , a pobrane dane mogą nie zawierać ostatnio zapisanych jednostek .

Problem polega na tym, że niedawno magazyn danych główny/podrzędny został niedawno wycofany na korzyść magazynu danych o wysokiej replikacji. Rozumiem, że magazyn danych master/slave jest nadal obsługiwany przez pewien czas, ale nie czuję się komfortowo z użyciem czegoś, co oficjalnie zostało wycofane i jest w drodze. Pozostawia mi to dane z magazynu danych o wysokiej replikacji i jedynym sposobem, w jaki wydaje się eksportować dane, jest powyższa metoda, która nie jest oficjalnie obsługiwana (i dlatego nie daje mi gwarancji, że mogę pobrać moje dane).

Czy istnieje inny (oficjalnie obsługiwany) sposób eksportowania danych z magazynu danych o wysokiej replikacji? Nie czuję się dobrze, używając Google App Engine, jeśli oznacza to, że moje dane mogą być tam zablokowane na zawsze.

Odpowiedz

0

Musisz skonfigurować wbudowany program o nazwie remote_api. This article zawiera wszystkie informacje i wskazówki potrzebne do pobrania wszystkich danych dzisiaj iw przyszłości.

+2

Problem polega na tym, że jak już wspomniałem, ta metoda nie jest oficjalnie obsługiwana w przypadku magazynu danych o wysokiej replikacji, którego używam. –

+2

Wierzę, że to działa dla twojego porpuse. HRD jest systemem rozproszonym, dlatego jeśli chcesz pobrać swoje dane, może to nie być nowa kopia. Ale jeśli planujesz przeprowadzić migrację, prawdopodobnie już wcześniej wyłączyłeś zapis. Będziesz więc miał bezpieczną chwilę, aby pozwolić HRD powtórzyć wszystkie zmiany. –

2

Zajęło mi dużo czasu, aby skonfigurować pobieranie danych z GAE, ponieważ dokumentacja nie jest tak jasne, jak być powinno.

Jeśli wyodrębnisz dane z serwera uniksowego, być może powinieneś użyć skryptu poniżej.

Ponadto, jeśli nie podasz parametru "plik_konfiguracyjny", wyodrębni on wszystkie dane tego typu, ale w zastrzeżonym formacie, którego można użyć tylko do przywrócenia danych.

#!/bin/sh 
#------------------------------------------------------------------ 
#-- Param 1 : Namespace 
#-- Param 2 : Kind (table id) 
#-- Param 3 : Directory in which the csv file should be stored 
#-- Param 4 : output file name 
#------------------------------------------------------------------ 
appcfg.py download_data --secure --email=$BACKUP_USERID --  config_file=configClientExtract.yml --filename=$3/$4.csv --kind=$2 --url=$BACKUP_WEBSITE/remote_api --namespace=$1 --passin <<-EOF $BACKUP_PASSWORD EOF 
+0

Co to jest configClientExtract.yml (--config_file) i --url? Tak, strona pomocy nie opisuje, co akceptuje plik konfiguracyjny lub punkt końcowy URL –

1

Obecnie datastore silnika aplikacji obsługuje również inną opcję. Funkcja tworzenia kopii zapasowych danych może być używana do kopiowania wybranych danych do magazynu blob lub do przechowywania w chmurze Google. Ta funkcja jest dostępna w obszarze administracyjnym magazynu danych w konsoli mechanizmu aplikacji. W razie potrzeby dane z kopii zapasowej można następnie pobrać z przeglądarki blob lub magazynu w chmurze. Aby wykonać kopię zapasową magazynu danych o wysokiej replikacji, zaleca się, aby zapisywanie danych magazynu było wyłączone przed wykonaniem kopii zapasowej.

Powiązane problemy