一个大型查询json实用程序包
bqtools-json的Python项目详细描述
这是bqtools一组方便的实用程序,可以帮助从json对象创建大查询表,并将它们转换成表(从而获得模式)和创建json新行文件。 再加上一组通用函数,以便于编写biq查询python代码
目标
- 简化大查询结构化数据和json数据之间的处理和移动
- 允许您从json结构创建大查询表模式(作为资源或模式对象)使用类型的反射
- 为日分区表提供轻松的视图生成
- 头部-最新数据
- 数据时间快照的差异视图,即每天分区都有数据的当前视图
- 从可以用作大查询模式基础的具有代表性的json数据计算有效的json结构
- 清理json数据,以便将其加载到大查询中
- 用词典替换空列表
- 用大查询中可以是列名的有效值替换字段名(使用大查询自动检测架构时使用的相同算法删除字段名中不允许的空格和字符)
- 对日期、日期时间、时间和时间增量的JSON输出进行编码,以大查询对应字段类型可接受的格式进行编码
- 从bq表结构生成bq命令行工具的代码
- 简化处理大查询数据的常见任务
- 存在的数据集或表的基本测试< /LI>
模式修补将现有的模式与模板JSON对象进行比较,如果更改并生成可在补丁 中使用的合并模式,则计算
- 展平视图以避免视图深度限制
- 存在的数据集或表的基本测试< /LI>
import bqtools
# if you load a json object say something like
foo = {
"id":1,
"description":""
"aboolean":False
}
# generate a schema
table = {
"type":"TABLE",
"location":os.environ["location"],
"tableReference":{
"projectId": os.environ["projectid"],
"datasetId": os.environ["dataset"],
"tableId": key
},
"timePartitioning":{
"type": "DAY",
"expirationMs": "94608000000"
},
"schema": {}
}
# use bqtools to create a schema structure
table["schema"]["fields"] = bqtools.get_bq_schema_from_json_repr(foo)