0

我正在使用 appcfg.py 将数据从 csv 源文件批量上传到 appengine。csv 文件中一个字段的数据值长度大于 500 个 Unicode 字符。

执行 appcfg 上传命令会生成以下日志:-

[信息] 打开数据库:bulkloader-progress-20121101.024343.sql3

[信息] 连接到 xxxxxxx.appspot.com/remote_api

[INFO] 开始导入;每个帖子最多 10 个实体

.

[INFO ] 共 1 个实体,0 个之前转移

[INFO] 1 个实体(3590 字节)在 15.5 秒内传输

[INFO ] 所有实体已成功转移

执行后,appengine 仪表板上的数据存储查看器不会显示长度值大于 500 个 Unicode 字符的字段的值。

我搜索了很多从 csv 源文件批量上传长度值大于 500 个 Unicode 字符的数据,但没有成功。

编辑1:-

成立Text string (long) com.google.appengine.api.datastore.Text None

Up to 1 megabyte Not indexed

https://developers.google.com/appengine/docs/java/datastore/entities

但是,不确定如何使用它从 csv 源文件批量上传数据。

4

2 回答 2

0

500 个字符是字符串字段的限制。除非它们是文本或 blob 字段,否则任何超过 500 的内容都将被截断。

于 2012-11-06T06:16:59.853 回答
0

export_transform在 bulkloader.yaml 文件中使用要转换为 Text 的属性的标记。

上传数据文档:

进口转换

基于 external_name 或 import_template 字符串返回正确值和类型数据的单参数函数。示例包括内置的 Python 转换运算符(例如 float)、transform 中提供的几个辅助函数中的任何一个,例如 get_date_time 或 generate_foreign_key、您自己的库中提供的函数或内联 lambda 函数...

...

出口转换

与 import_transform 类似,但在导出时执行。

有了它,您可以设置一个功能,在上传之前将您的数据转换为文本,从而解决您的问题。

于 2012-11-05T13:53:51.353 回答