我正在使用python脚本上传一些数据到我的应用引擎后端。
下面是它在bulkloader.yaml中的定义
- kind: Subcategory
connector: csv
connector_options:
encoding: utf-8
property_map:
- property: __key__
external_name: id
export_transform: transform.key_id_or_name_as_string
import_transform: transform.none_if_empty(int)
- property: name
external_name: name
- property: categoryId
external_name: categoryId
export_transform: transform.key_id_or_name_as_string
import_transform: transform.none_if_empty(int)
- property: language
external_name: language
- property: active
external_name: active
import_transform: bool问题是,active列稍后会动态变化,下次我再次上传相同的数据时,它将被替换为false,因为,column在csv中不存在。
我尝试从bulkloader中删除该列,但随后这些列就消失了。这可能是因为实体被替换而不是更新。有没有办法在上传时保留已有的列而不替换/删除它们?
发布于 2014-09-14 10:10:03
很抱歉,没有简单的方法来合并属性与批量加载程序。正如你所注意到的,它基于你的CSV数据创建实体,然后用已知的密钥存储它们,覆盖现有的实体。要完成合并,您需要批量下载现有实体,在数据集中执行合并,然后加载合并的实体。
在加载程序逻辑期间,有一些钩子可以用来做一些奇特的事情,这可能有助于实现合并工具。请参阅相关的SO问题:Merge multiple columns in bulkloader,但您仍然需要以某种方式从数据存储中获取要合并的属性。数据存储区无法自行执行合并。
https://stackoverflow.com/questions/25824840
复制相似问题