博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于ETL的抽取数据的报表实现
阅读量:6237 次
发布时间:2019-06-22

本文共 1781 字,大约阅读时间需要 5 分钟。

  hot3.png

152049_99dU_88864.jpg

1、查询分析器

查询分析器主要工作是从不同来源的数据库中抽取对应指标值。

界面原型参考如下(仿 IREPORT):

161114_ilIe_88864.jpg

图1 数据来源切换

2、报表科目与查询分析字段映射

161131_9lqQ_88864.jpg

图2 字段映射

这里,字段选择的地方增加一列,用作选择数据科目的映射。

161145_A1me_88864.jpg

图3 SQL最后修改

图形化界面生成SQL后,可以手工修改SQL,点击OK生成XML格式的数据抽取脚本。

3、ETL工具

        我使用的是Scriptella,这个工具的好处是,我不用去把查找指定数据的SQL用xml工具去重新解析封装,这种设计对于后期的产品维护,二次开发省了不少事。

        在Scriptella启动之前,我们可以通过查询分析器来指定数据连接的数据表,通过对表的查询,获取到表中的数据字段,字段类型等信息,接着,在系统界面中设置字段对应的数据科目,设置过程可以选择老版本的配置映射进行修改,保存后生产新的映射模板。

        在所有模板设置完成以后,出发脚本生成事件,生成供Scriptella执行的XML脚本。

        XML实例如下:

        
        
        
            
            SELECT * FROM web_org_oper;            
            
                         
             
                            
                INSERT INTO web_org_oper(C_OPER_ID, C_OPER_CNM, C_PASSWD,C_IS_VALID,T_PWD_STRT_TM,T_PWD_END_TM,C_SRC,C_REL_CDE,C_DPT_PERM,C_DPT_DIFF,C_PRD_DIFF,C_OP_DIFF,C_CRT_CDE,T_CRT_TM,C_UPD_CDE,T_UPD_TM,C_OWN_DPT_CDE,C_CSS_STYLE,C_EDU_CDE,C_STATUS,C_LMT_FLAG,C_TRANS_MRK,T_TRANS_TM,C_ID_NO,C_OPER_CNM_BAK)                  values (?C_OPER_ID, ?C_OPER_CNM, ?C_PASSWD,?C_IS_VALID,?T_PWD_STRT_TM,?T_PWD_END_TM,?C_SRC,?C_REL_CDE,?C_DPT_PERM,?C_DPT_DIFF,?C_PRD_DIFF,?C_OP_DIFF,?C_CRT_CDE,?T_CRT_TM,?C_UPD_CDE,?T_UPD_TM,?C_OWN_DPT_CDE,?C_CSS_STYLE,?C_EDU_CDE,?C_STATUS,?C_LMT_FLAG,?C_TRANS_MRK,?T_TRANS_TM,?C_ID_NO,?C_OPER_CNM_BAK);                    

JAVA代码调用(需要依赖 odbc5.jar、scriptella.jar)---这里只写一种,很多种调用方法:
    EtlExecutor.newExecutor(Test.class.getResource("etl.xml")).execute();

4、科目勾稽关系校验及日志记录。

设置对应科目勾稽关系校验公式与模型。

勾稽方向 误差值 上勾稽字段 计算方法 下勾稽字段 描述
= 0 F0 - F1,F2,F3,F4 F0-SUM(F1,F2,F3,F4)=0
< 0 F0 - F1,F2,F3,F4 F0-SUM(F1,F2,F3,F4)<0
> 0 F0 + F1,F2,F3,F4 SUM(F0,F1,F2,F3,F4)>0

以及勾稽关系验证错误后的提示。

5、输出设置

设置最后数据输出的方式,包含XML输出、EXCEL输出、word输出、PDF输出等。

转载于:https://my.oschina.net/blw/blog/473605

你可能感兴趣的文章
问题(1)
查看>>
python发邮件
查看>>
Linux系统管理笔记
查看>>
Spring Cloud和聚合工程架构设计微服务框架
查看>>
Java 内部类
查看>>
java对list中对象的属性排序
查看>>
RabbitMQ的消息确认机制(事务+confirm)
查看>>
C Primer Plus 第4章 字符串和格式化输入输出4.4 printf()和scanf()
查看>>
第14章 结构和其他数据形式 14.6 指向结构的指针
查看>>
FLUSH PRIVILEGES
查看>>
CI3如何使用controller继承
查看>>
Moodle介绍篇
查看>>
nagios部署
查看>>
CentOS 内核升级步骤和方法
查看>>
俄罗斯方块,算法简单 注释详细,大家运行玩玩
查看>>
centos6.5 iptables 配置
查看>>
tuxera NTFS 2016支持macOS 10.12 Sierra
查看>>
ftpclient 上传下载文件
查看>>
JQuery 获取touchstart,touchmove,touchend 坐标
查看>>
exp/imp远程操作数据库
查看>>