3

对于我的项目,我使用 GAE 数据存储来存储数据。出于备份目的,我决定使用bulkloader——它将整个数据完美地下载到一个csv文件中。上传也可以正常上传数据而没有错误。

我的问题是,上传不会更新现有数据,而是会创建重复数据。这是来自数据存储查看器的示例:

更新前:

ID/Name 
id=18000
id=20001 

更新后:

ID/Name
id=18000
id=20001
name=18000
name=20001 

在数据存储实体中,我将其用作数据 ID:

@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
private Long id; 

知道如何使用 bulkloader 实际更新现有数据吗?

谢谢,亚当

4

1 回答 1

3

bulkloader 的默认设置有一个讨厌的习惯,即踩踏值的类型。这对于键和列表来说尤其是一个问题。

我使用这些辅助函数bulk_helper,并将其添加到我的 bulkloader.yaml 中:

python_preamble:
- import: bulk_helper
...

property_map:
  - property: __key__
    external_name: key
    import_transform: bulk_helper.reverse_str_to_key
    export_transform: bulk_helper.key_to_reverse_str

这会保留完整的密钥,包括种类和父信息,并保持人类可读(如果这对您很重要)。

于 2011-04-20T02:17:28.207 回答