用于处理App Engine数据转储的工具

时间:2010-03-13 07:29:50

标签: database google-app-engine backup

使用the bulkloader.py utility,您可以从应用程序的数据存储区下载所有数据。

然而,数据的存储方式并不明显。从它的外观来看,您可以在一个表中获得一个包含二进制格式的所有数据的SQLite文件:

sqlite> .tables
bulkloader_database_signature  result  

sqlite> .schema result
CREATE TABLE result (
  id BLOB primary key,
  value BLOB not null,
  sort_key BLOB);

是否有任何工具可以处理这些数据?

1 个答案:

答案 0 :(得分:1)

好的,还没有工具。只是为了分享我到目前为止所发现的内容:

存储在列值中的二进制数据采用Google Protocol Buffer格式。 每行代表一个实体。

使用Java SDK,您可以解码数据:

 OnestoreEntity.EntityProto m = new OnestoreEntity.EntityProto();
 m.parseFrom(data);
 Entity entity = EntityTranslator.createFromPb(m);

 System.out.println(entity.getAppId());
 System.out.println(entity.getKind());
 System.out.println(entity.getKey());

 // the properties (a Map)
 System.out.println(entity.getProperties());