数据包管道的财务数据包扩展

datapackage-pipelines-fiscal的Python项目详细描述


财政数据包管道

pypi-python版本travis

数据包管道的扩展,用于将财务数据包加载到:

  • 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

输出

  • 更新操作系统包注册表(如果已配置),说明已成功加载该包

贡献

请阅读投稿指南:

如何贡献

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在导航抽屉中显示图像   DDD中的java聚合对象   java如何在登录后隐藏主活动上的项目?   java如何知道MouseWheelListener是否可以接收事件?   java地图中未显示新标记   Z3Java绑定是否具有与python相同的get_vars()API?   java重置或清除Lucene索引   Java骑士之旅代码   集合Java类树集合中的Java方法headSet和tailSet在日志(N)时间内工作吗?   java从SpringWeb服务获取Jetty实例   java需要在jira中将jsp文件更改为vm文件   创建对象时发生java IllegalMonitorStateException   java SnakeYaml从字符串第一行转储   使用java在文件中逐个使用for循环写入行