2015-10-27 11 views
7

Bu old answer, Google App Engine documentation üzerindeki bir bağlantıya işaret ediyor, ancak bu bağlantı şu anda GAE verilerinizi yedeklemekle ilgili değil, indirmekle ilgili.Verileri Google App Engine'den csv'ye aktar

Tüm veriler bir csv'ye nasıl indirilir? Veriler küçüktür, yani < 1 TR

+0

Bu yedekleri indirebilirsiniz. Yine de, csv formatında değil, ama muhtemelen bunu –

+0

dönüştürebilirsiniz. Ayrıca, bunu gsutil ile geri yükleyebilirim, değil mi? Her şeyi indirmiyor gibi görünüyor. – Heisenberg

+0

evet, "muhtemelen dönüştürün" :) bu leveldb dökümüdür, bu yüzden biraz karmaşıktır. Gsutil yüklemelerini hiç denemedim, nasıl çalıştığından emin değilim. –

cevap

3

Kind verilerini csv biçiminde indirmek için appcfg.py kullanabilirsiniz.

$ appcfg.py download_data --help

Kullanımı: appcfg.py [seçenekler] download_data veri deposundan

İndir kişiler.

'download_data' komutu veri deposu varlıklarını indirir ve yazarak bunları CSV veya geliştirici tanımlı format olarak kaydeder.

+0

appcfg.py nereden geliyor? –

+0

Bu Google uygulama motoru sdk –

+0

iyi bir parçası, hayır, bu, sdk değil, python sdk bir parçasıdır. appcfg.sh bu komutu yok, ne yazık ki. –

13

Ben here ve here özetlenen CSV kullanarak adımlara ihracat birkaç farklı yaklaşımlar çalıştı. Ama ben işe yaramadı. Yani, yaptığım şey buydu (en büyük masam yaklaşık 2GB idi). o ... çok sayıda adımdan gibi Google saatlerce değişmiş olabilir rastgele kod mücadele daha iyi görünüyor olsa Bu da hatta nispeten hızlı bir şekilde çalışır:

  1. Bulut Depolama içine gidin ve 2 yeni grup oluştururuz "data_backup "ve" data_export ". Öğeleri depolamak için zaten bir kovanız varsa bunu atlayabilirsiniz.
  2. Dönüştürmeye çalıştığınız veri deposu için "Konsolum"> Google Datastore> Yönetici> Datastore Yöneticisi'ni açın.
  3. Yedeklemek istediğiniz varlık veya varlıklara bakın ve "Yedekleme Varlıkları" na tıklayın. Ben sadece bir defada 5 hepsini kontrol etmek yerine ihracat 5 tablo gibi vardı beri bir anda yaptım.
  4. Google Depolama (gs) Asistan Google Big Query gidin
  5. bunları saklamak istiyor kepçe belirtin (Bunu daha önce hiçbir yerde kullanmadığı ama gitmem kek oldu)
  6. aşağı küçük oka tıklayın ve "Yeni Veri Kümesi Oluştur" u seçin ve ona bir isim verin.
  7. Yeni oluşturduğunuz yeni veri kümesinin yanındaki aşağı oku ve ardından "Yeni Tablo Oluştur" u seçin. Veri Seç adımının altındaki "Bulut Datastore Yedekleme" yi seçerek içe aktarma adımlarını izleyin. Ardından, Büyük Sorgu'ya almak istediğiniz yedeklemeyi seçin, böylece bir sonraki adımda csv'ye dışa aktarabilirsiniz.
  8. Tablo içe aktarıldığında (ki benimki için oldukça hızlıydı), tablo adının yanındaki aşağı oku tıklayın ve "Dışa Aktar" ı seçin. Doğrudan csv'ye dışa aktarabilir ve dışa aktarma için oluşturduğunuz google saklama kutusuna kaydedebilir ve oradan indirebilirsiniz.

İşte birkaç ipucu:

  • veri ilişkileri iç içe verdiyse, (onlar da bu her ne avro biçimde sunduğumuz)
  • ben json2csv kullanılan ziyade CSV daha JSON ihracat zorunda kalacak csv olarak kaydedilemeyen dışa aktarılmış JSON dosyalarınımı dönüştürmek için. Büyük masalarda biraz yavaş çalışır, ancak bitirir.
  • Json2csv'deki bir python bellek hatası nedeniyle 2 GB dosyasını 2 dosyaya bölmem gerekiyordu. Ben dosyaları bölmek için GSplit kullanılan ve Diğer Özellikleri altında seçeneğe onay işareti> Başlıkları> ... GSplit etiketleri eklemeyin Etiketler & (bu yapılan GSplit bölünmüş dosyaları herhangi bir veri eklemek vermedi emin)

gibi Dedim ki, bu birkaç adım olsa da aslında oldukça hızlıydı. Umarım birileri, tuhaf yedekleme dosyası formatlarını dönüştürmeye veya artık çalışmayabilecek kodları çalıştırmaya harcanan zamandan kaçınmaya yardımcı olur.

+5

Bu temiz, teşekkürler Scott. Ben sadece, 7. adımda, dosyayı, yüklemek üzere olduğunuz Varlığa karşılık gelen .backup_info uzantılı bir dosya sağlamanız gerekir; bu dosya, Varlıklar arasında kovada saklanır. –

+0

Teşekkür ederim. Adımlarını denedim ve işe yarıyor. Bunu yapmak için kaç defa ihtiyacım olduğu konusunda kafam karıştı. Her masa için yapmam gerekiyor mu? ya da her şeyi bir seferde ihraç etmenin bir yolu var mı? Teşekkürler – filias

+0

Her tablo için yaptım @ filias. Sadece 5 veya 6 gerçekten büyük masalarım vardı. Eğer sizin için çalışıyorsa, doğru cevap olarak işaretlemeniz harika olur. Teşekkürler! – Scott