通过bulk loader可以批量上传下载数据,GAE支持xml,csv格式数据批量上传,以及xml,csv和文本 格式下载。
你可以选择自动生成一个bulkloader.yaml,或者手动编码来写一个bulk loader。谷歌不推荐手动编 写,个人也觉得自动生成才是王道。
如何自动生成bulkloader.yaml
bulkloader.yaml是一个描述数据格式的配置文件,格式例如xml或csv。bulk loader进行数据导入时 需要这个配置文件来将外部数据(xml或csv)转换为中间数据——python字典类型,然后将中 间数据——python字典转换为Google Engine Datastore的Entity数据。下载数据时,转换顺 序则反过来。
执行以下命令自动生成bulkloader.yaml:
$ appcfg.py create_bulkloader_config --filename=bulkloader.yaml -- url=http://your_app_id.appspot.com/_ah/remote_api
这个命令会在当前目录下创建一个bulkloader.yaml文件,一般说来你还要对这个原始的 bulkloader.yaml文件进行配置才能满足你对数据传递的要求。
配置bulkloader.yaml文件
bulkloader.yaml文件主要包含两部分python_preamble和transformers。
python_preamble: - import: google.appengine.ext.bulkload.transform - import: google.appengine.ext.db - import: re - import: base64
一般来说,这部分你都不用修改,除非你要在转换格式中用到其他模块或方法,例如我在这里增加了 datetime。
python_preamble: - import: base64 - import: re - import: google.appengine.ext.bulkload.transform - import: google.appengine.ext.bulkload.bulkloader_wizard - import: google.appengine.ext.db - import: google.appengine.api.datastore - import: google.appengine.api.users - import: datetime
第二部分transformers是用来描述数据类型的,其中包含一个或多个kind,视你在datastore中kind数 量而定。每个kind中又包括以下内容:
connector:用来指定输入输出格式,值为xml,csv或文本。
connector_options:connector的一些属性。
property_map:每个字段的映射关系(即转换关系)。
配置bulkloader.yaml的第一步就是设置connector,谷歌默认的是csv格式,无论输入输出都要求csv 首行是字段名称。connector为:simplexml, csv, simpletext。
connector的配置参数可以在谷歌文档找到。
对property而言:
property:datastore中的字段名称。
external_name:xml的tag名称,或者csv首行中的字段名。
import_transform:上传时的数据格式,或者是数据转换规则。
export_transform:下载时的数据格式,或者是数据转换规则。
property和external_name是必须的,如果只是想要上传或者下载的话,可以注释掉export_transform 或者import_transform。
关于simplexml
bulkloader.yaml中的simplexml目前只支持简单的xml结构,例如:
<book> <article> <author>John Kerry</author> <title>How is it, China</title> <content>Yes, there is a huge population.</content> </article> </book>
在bulkloader.yaml中配置为:
connector: simplexml connector_options: xpath_to_nodes: /book/article style: element_centric
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 配置
, import
, 格式
, python csv文件
, datastore
, 格式文件格式transform
, YAML
, Connector
, python操作csv
, 写csv
CSV模块
zigbee深入浅出实战篇、波浪理论新解实战篇、白银投资技巧实战篇、从零开始学英语实战篇、datasnap开发实战篇,以便于您获取更多的相关知识。