关于下载GAE High Replication Datastore数据[实战篇]下

通过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开发实战篇,以便于您获取更多的相关知识。

时间: 2024-12-31 02:21:41

关于下载GAE High Replication Datastore数据[实战篇]下的相关文章

关于下载GAE High Replication Datastore数据[实战篇]上

前言 本文部分内容谷歌官方文档并未陈述,根据谷歌文档和实战经验看来,谷歌目前对High Replication datastore的数据下载支持并不稳定,不过谷歌称在未来将会改善. 从写本文到落实本文期间,谷歌对Google Engine Launcher进行了一次升级到1.7.7.695.所以不保证 本文所有内容对最新的Google Engine都适用. [注意]谷歌关于数据上传下载的文档所针对的是Master/slave datastore,而本文是根据针对High Replication

swiss-prot数据库下载的fasta格式的数据怎么通过ac号看go注释,最好是本地软件!

问题描述 swiss-prot数据库下载的fasta格式的数据怎么通过ac号看go注释,最好是本地软件! swiss-prot数据库下载的fasta格式的数据怎么通过ac号看go注释,最好是本地软件! 解决方案 参考一下这个 利用BioJava从GenBank/EMBL/SwissProt格式中抽取序列并且以FASTA格式输出 http://www.plob.org/2011/09/11/4169.html

安卓加速度传感器-[新手上路]安卓?怎么调用加速度传感器的数据

问题描述 [新手上路]安卓?怎么调用加速度传感器的数据 大神们有没有代码包,或者在哪里可以找到类似的程序源代码想要加速度传感器数据进行处理 解决方案 http://blog.sina.com.cn/s/blog_45e6be0801013mzm.html

ios-用urlconnection下载图片,接收的数据总大小为什么和一次接收到的数据的大小是一样的?

问题描述 用urlconnection下载图片,接收的数据总大小为什么和一次接收到的数据的大小是一样的? 这样的话,做进度条的时候总是1.0 . 代码如下: -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ [_downloadData setLength:0]; _response = response; } -(void)connection:(NSURL

激光雷达-请问如何下载isprs的lidar标准数据?

问题描述 请问如何下载isprs的lidar标准数据? 请问如何下载isprs的lidar标准数据,在isprs的官方网站的education栏目里面没有找到,请问大神们能不能提供标准数据或者下载的链接?谢谢! 解决方案 http://www.itc.nl/isprswgIII-3/filtertest/ 解决方案二: http://emuch.net/html/201301/5436458.html

调用接口-求救各位大神,如何下载stackoverflow上的用户数据。

问题描述 求救各位大神,如何下载stackoverflow上的用户数据. 求救各位大神,如何下载stackoverflow上的用户数据(在stackoverflow上注册的用户的公开的信息).若是调用stackoverflow提供的接口,URL是什么? 解决方案 看看stackexchange有提供一些相关数据API 解决方案二: 没有这样的接口,只有自己做爬虫.

函数式接口、默认方法、纯函数、函数的副作用、高阶函数、可变的和不可变的、函数式编程和 Lambda 表达式 - 响应式编程 [Android RxJava2](这到底是什么)第三部分

本文讲的是函数式接口.默认方法.纯函数.函数的副作用.高阶函数.可变的和不可变的.函数式编程和 Lambda 表达式 - 响应式编程 [Android RxJava2](这到底是什么)第三部分, 太棒了,我们又来到新的一天.这一次,我们要学一些新的东西让今天变得有意思起来. 大家好,希望你们都过得不错.这是我们的 RxJava2 Android 系列的第三篇文章. 第一部分 第二部分 在这篇文章中,我们将讨论函数式的接口,函数式编程,Lambda 表达式以及与 Java 8 的相关的其它内容.这

MaxCompute(原ODPS)开发入门指南——数据上云篇

MaxCompute(原ODPS)开发入门指南--数据上云篇 写在最前面 >>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务. 根据<MaxCompute(原ODPS)开发入门指南--计量计费篇>的了解,大家清楚了MaxCompute可以做什么,计费模式如何,想必大家也开通了MaxCompute想进行一次POC,但是大家遇到第一个问题一定是我的数据如何上云? 可通过多种方式数据流入MaxCompute MaxCompute(原ODPS)提

《D3.js数据可视化实战手册》—— 1.2 搭建一个简易的D3开发环境

1.2 搭建一个简易的D3开发环境 D3.js数据可视化实战手册 在开始使用D3之前,我们要做的第一件事是搭建一个开发环境.这节里,我们将告诉你如何在几分钟内搭建一个简单的D3开发环境. 1.2.1 准备阶段 在我们开始前,请确保你已经安装好一个文本编辑器. 1.2.2 搭建环境 我们先要下载D3.js. 1.我们可以在http://d3js.org/下载最新版本的D3.js,也可以在https://github. com/mbostock/d3/tags下载之前的版本.另外,如果你对开发中的最