数据包管道的财务数据包扩展
datapackage-pipelines-fiscal的Python项目详细描述
财政数据包管道
数据包管道的扩展,用于将财务数据包加载到:
- S3(或兼容)存储器,非标准化形式
- 规范化的数据库。
- 元数据将通过操作系统包注册表存储在ElasticSearch实例(如果可用)中
- 还将生成一个
babbage
模型并将其写入数据包中,以便使用其api查询数据库
此扩展可用于自定义源规范和一组处理器。生成器将把源规范转换为一组相互依赖的管道,当按顺序运行时,这些管道将执行数据处理并加载到选定的端点(基于环境变量)。
此扩展由操作系统导体和操作系统数据导入器使用。
环境变量
dpp_db_engine
-用于将数据转储到SQL数据库的连接字符串
elasticsearch_address
[可选]-elasticsearch实例的连接字符串(用于包注册表更新)
s3_bucket_name
[可选]-用于上载数据的s3 bucket。如果没有提供,将创建本地zip文件。
aws_access_key_id
-s3凭证(如果指定了s3 bucket,则为必需)
aws_secret_access_key
-s3凭证(如果指定了s3 bucket,则为必需)
依赖关系
为了完全运行财务数据包流,您需要安装os type
,使用npm:
$npm install-g操作系统类型
此external node.js实用程序用于对已处理的数据包执行财务建模。
财政部.来源-规范.yaml
每个源规范都包含有关单个财务数据包的信息。
顶级属性是:
标题
数据包的标题或显示名称
数据集名称
[可选]
用作数据包名称的段塞。
如果没有提供,将使用标题的重读版本。
资源名称
[可选]
在最终数据包中用作主要资源名称的段塞。
如果未提供,则将使用数据集名称。
所有者ID
此数据包所有者的ID。
此标识符用于生成各种路径和存储名称。
来源
包含财政数据包的非空数据源列表。
每个数据源都具有以下属性:
url
:数据的位置名称
:[可选]此源的名称(稍后将用作中间资源名称)
其他制表符
参数也可以添加为此处的属性,例如工作表
,编码
,压缩
等。
字段
包含财务数据包字段的非空列表。
每个字段定义都具有以下属性:
标题
:结果资源中字段的名称
。标题
[可选]:结果资源中字段的显示名称columntype
:字段的columntype。选项
:要添加到字段的额外选项,例如json表模式属性,如小数字符
等。
测量值
[可选]
用于度量标准化处理的额外信息。 (度量值规范化是将度量值的数量减少到一个,同时将行数相乘并添加额外列以包含用于标识原始度量值的值的过程)。
包含以下子属性:
货币
:输出度量值列的货币代码标题
[可选]:输出度量值列的标题映射
:取消激活映射。
取消激活映射是从度量值的名称到其取消激活数据的映射。
"unpivoting data"是从额外列的名称到值的映射
示例:
measures:currency:GTQmapping:APPROVED:PHASE_ID:"0"PHASE:InicialRELEASED:PHASE_ID:"1"PHASE:VigenteCOMMITTED:PHASE_ID:"2"PHASE:Comprometido
货币
[可选]:要转换为的货币代码列表(默认为"美元")。 有关详细信息,请参见下一节
货币换算
[可选]
有关以其他货币添加一个或多个测量值列的说明。
日期度量值
[可选]:可以从中提取日期的列名。 如果没有提供,将根据列类型进行猜测。标题
[optonial]:货币换算度量值列的标题。
数据包URL
[可选]
包含此数据来自的源数据包的URL。 如果提供此数据包的元数据,则将从此URL加载。
重复数据消除
[可选]
如果true
,则将处理源数据以删除重复行(即主键中具有相同值的行)。将对这些行的测量值求和,以便生成单个输出行。
后处理
[可选]
将应用于数据的额外处理器(和参数)的列表。
格式与任何 如果 默认情况下,在成功运行所有管道后,将删除管道项目(管道执行期间创建的临时目录和文件)。要保留工件,请将此选项设置为 输出: (取决于pipeline-spec.yaml中的格式相同
抑制操作系统
[可选,默认值为false
]false
,则在数据存储上创建与openspending兼容的数据包。这个基本数据包确保一个基本的fdp可以用openspending进行编辑。用os conductor
创建的包已经创建了这个工件,因此将使用suppress os:true
,以防止不必要地创建另一个工件。保留工件
[可选,默认为false
]true
生成的管道
/非规范化的流量
/finalize_datapackage_flow_拆分器
/denormalized\u flow
)/完成数据包流
< >(取决于/finalize\u datapackage\u flow\u拆分器
)
- 从
拆分器
管道以及完整的非规范化数据集加载所有资源
输出:
- 将结果存储在s3 bucket中
- 带有数据包的zip文件(如果未配置s3存储桶)
- 更新操作系统包注册表(如果已配置)
/维度流{层次结构}
(取决于/denormalized\u flow
)
- 加载非规范化数据
- 仅选取层次结构列
- 添加自动递增ID列
- 删除重复项
输出:
- 规范化层次结构数据(本地文件)
/标准化的流量
(取决于/denormalized\u flow
和所有/dimension\u flow{hierarchy}
)
- 将非规范化数据加载为事实表
- 加载所有规范化层次结构数据
- 创建巴贝奇模型
- 用规范化层次结构表中的相应ID替换事实表中的所有层次结构列
输出:
- 规范化事实表(本地文件)
- 更新操作系统包注册表(如果已配置)
/转储程序流{层次结构}
(取决于相应的/dimension\u flow{hierarchy}
)
- 加载规范化层次结构数据
- 修复主键中的空值(用空字符串替换它们)
输出
- 将数据保存为SQL数据库中的单个表
/翻车机流量
(取决于/normalized\u flow
)
- 加载规范化事实表数据
- 修复主键中的空值(用空字符串替换它们)
输出
- 将数据保存为SQL数据库中的单个表
/翻车机流量更新状态
(取决于/dumper_flow
)
输出
- 更新操作系统包注册表(如果已配置),说明已成功加载该包
贡献
请阅读投稿指南:
如何贡献