繁体   English   中英

导出应用引擎数据时如何排除列

[英]How do I exclude columns when exporting app engine data

我计划对我的 django 应用程序进行一些数据挖掘,该应用程序使用 appengine 来存储数据,但是,我的一个表将图像存储在其中的两个列中,因此,它的大小为千兆字节,因此速度太慢了每次我想分析新数据时都下载。 对于数据挖掘,我只关心该表中的计划文本列,如何在将数据导出到 csv 文件时排除这些列?

我知道 buildupload.yaml 的 csv 连接器有一个“column_list”,您可以指定在导出数据时只包含某些列,但看起来它仍然会在过滤掉列之前下载整个表格行将 appengine 的中间 sqlite3 数据文件转换为 csv。

作为参考,我使用此处描述的方法下载我的数据http://code.google.com/appengine/docs/python/tools/uploadingdata.html ,但我对其他解决方案持开放态度,最好是那些我可以每隔几天自动导出此数据。

你不能。 AppEngine 数据存储 API 和底层 GQL 仅执行两种 SELECT 查询:仅__key__和所有字段。 无法获得字段的子集。

有点晚了,但我在类似情况下所做的只是从自动生成的 bulkloader.yaml 文件中删除不需要的属性。

这是一个使用Google 文档从 csv 文件中排除“帐户”属性的示例。 我将它用于 blob 之类的东西,它在那里也能正常工作:

property_map:
- property: __key__
  external_name: key
  export_transform: transform.key_id_or_name_as_string
START DELETE
- property: account
  external_name: account
  # Type: Key Stats: 119 properties of this type in this kind.
  import_transform: transform.create_foreign_key('TODO: fill in Kind name')
  export_transform: transform.key_id_or_name_as_string
END DELETE
- property: invite_nonce
  external_name: invite_nonce
  # Type: String Stats: 19 properties of this type in this kind.

正如您所观察到的,bulkloader 使用 remote_api 下载整个记录,然后仅将您关心的字段输出到 CSV。 如果您只想下载选定的字段,则必须编写自己的代码才能在服务器端执行此操作 - 可能通过在 mapreduce 中使用新的 Files API 来编写您可以下载的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM