我已经使用AppEngine的appcfg.py将我的整个数据库转储了。结果是一个带有'result'表的SQLITE3数据库。该表包含三个字段,一个键,一个数据和一个索引字段。数据字段包含实体数据和字段,但它们都以协议缓冲区格式编码。我想提取这个原始协议缓冲区格式到一个数组或什么是很容易解析(最好在PHP中)。如何解码原始协议缓冲区从AppEngine导出的数据?
我在Python中拥有原始的实体模型结构。我已经检查了几个Protocol Buffers库,但是到目前为止还没有找到一种方法来提取RAW Protocol Buffer数据。
有什么简单的方法来做到这一点在PHP中?我不想生成和编码协议缓冲区;我想用最简单/最简单的方法解码原始协议缓冲区数据。
你有没有考虑过使用bulkloader https://developers.google.com/appengine/docs/python/tools/uploadingdata#Configuring_the_Bulk_Loader并以csv或xml格式下载数据。它可能会为你节省很多时间。 – 2012-07-16 00:07:15
谢谢蒂姆 - 是的,我考虑过了(还在考虑)。不幸的是,我已经将所有数据从AppEngine中导出了,并且由于数据量极大,因此花了几天的时间。如果有机会原始解码我的本地转储将是非常棒的。否则,我可能不得不使用模型转换重新导出或创建一个应用程序并运行它将以适当的格式导出。感谢您的提示,如果我无法在本地解码,我可能必须这样做。 – 2012-07-16 00:19:28
它可能值得深入探讨upload_data过程的内容,它从sqlite3结果数据库中读取blob,并查看是否有任何使用。 – 2012-07-16 01:01:24