3

私のプロジェクトでは、GAE データストアを使用してデータを保存しています。バックアップの目的で、データ全体を 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; 

バルクローダーで既存のデータを実際に更新する方法はありますか?

ありがとう、アダム

4

1 に答える 1

3

バルクローダーのデフォルト設定には、値のタイプを踏みにじるという厄介な習慣があります。これは、キーとリストで特に問題になります。

これらのヘルパー関数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 に答える