集团公司(嵌入ETL工具)財务报表系统解决方式
集团公司(嵌入ETL工具)財务报表系统解决方式
一、项目背景:
某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包含:金矿、铜矿、房产、化纤等。因为子公司在业务上的差异。子公司的財务报表也存在非常多不同之处。因此,各个子公司须要依据自己的情况,制作符合自己个性化需求的报表模版,然后再部署到集团server进行统一管理。
集团使用的是SAP,全部子公司正是因这个系统而产生大量数据且这些数据保存在一起。此外,各子公司也有一些自己的系统。所以各自也会产生一些数据。
出于数据安全等因素的考虑,各个子公司的数据统一集中在集团总部的数据库。子公司的报表开发者使用FineReport连接到总部数据库时,仅仅能看到自己权限内的数据。
二、项目建设目标:
定期的将总数据源中数据导入到各子公司内的数据库表中。此时各子公司在开发报表时就仅仅需连自己的数据库表就可以,这样就实现了数据权限的控制。同一时候也较好的将各子公司的数据放在各子公司的数据库表内。
三、项目建设方案:
1. 所用工具Kettle简单介绍
Kettle是一款国外开源的ETL工具,纯java编写,能够在Window、Linux、Unix上运行,绿色无需安装。数据抽取高效稳定。
ETL即数据抽取、转换、装载的过程。它是构建数据仓库的重要环节。
数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合用以支持经营管理中的决策制定过程。Kettle 的中文名称叫水壶,含义就是希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它同意你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描写叙述你想做什么。而不是你想怎么做。
Kettle中有两种脚本文件。transformation和job。transformation完毕针对数据的基础转换,job则完毕整个工作流的控制。
作为Pentaho的一个重要组成部分。如今在国内项目应用上逐渐增多。FineReport报表软件能够实现和Kettle工具的完美集成应用。
2. Kettle工具的优势:
(1)kettle开源、高效
(2)kettle 非常强大并且易于使用的设计界面
(3)有非常强大并且众多的使用群体,应用广泛
(4)可用java进行集成开发:
提供了基于JAVA的脚步编写功能,能够灵活地自己定义ETL过程,使自行定制、批量处理等成为可能。这才是一个程序猿须要做的工作,而不仅是象使用Word一样操作kettle用户界面。
3. Kettle工具工作原理:
(1)Kettle的四大模块:
Spoon 是一个图形用户界面。它同意你运行转换或者任务。当中转换是用Pan工具来运行,任务是用Kitchen来运行。Pan是一个数据转换引擎。它能够运行非常多功能,比如:从不同的数据源读取、操作和写入数据。
Kitchen 是一个能够运行利用XML 或数据资源库描写叙述的任务。通常任务是在规定的时间间隔内用批处理的模式自己主动运行。
以下是一个简单的ETL过程:
(2)原理总结:
Kettle实现数据转换,主要是通过JDBC驱动,建立连接。载入数据。转化数据并储存数据。
4. 利用kettle实现定时导出数据方案
实现定时导出数据。主要实现二个关建点:
1.定时功能
2.从源数据库中提取数据插入目标数据库
利用 kettle工具能够轻松实现以上二点。
1.定时功能:
Kettle是成熟专业的ETL工具,实现定时功能仅仅需对作业进行相应的设置就可以,例如以下所看到的,表示每天的12点整运行同步任务。
2.从源数据库中提取数据插入目标数据库
Kettle仅仅需简单配置就可以从数据库中取出数据,例如以下图所看到的。
当中${company}为公司变量名称。存入目标数据库也相似,仅仅须要简单配置就可以
详细使用配置见以下的实例。
5. Kettle工具的定时数据提取应用实例:
(1)实例功能:
定期对各个子公司的数据库表进行查询并且通过数据抽取和比較实现数据插入更新。
(2)实例分析:
实现整项作业共须要3个文件,名称和相应功能例如以下表所看到的:
文件名 |
实现功能 |
main.kjb |
作业文件,用来定时运行mainTrans.ktr |
mainTrans.ktr |
用来批量运行trans1.ktr,并提供trans1.ktr的变量 |
trans1.ktr |
依据mainTrans.ktr提供的变量详细运行导出的转化 |
(1)文件详细说明:
mainTrans.ktr:
在mainTrans.ktr中生成不同的数据库连接信息和其它变量信息。
演示样例中为手动输入数据,也能够把信息保存在文本中或者数据库中,设置相应的输入就可以。例如以下所看到的,table为子公司数据库中的表名,company相应公司。后面的值为子公司数据库的连接信息。
mainTrans.ktr中有个java脚本,详细行为为获取trans1.ktr文件,设置变量并运行。
上面有几条记录就会运行几次trans1.ktr。
trans1.ktr:
详细运行导出的文件。演示样例中为mysql数据库。表名和字段也是特别设置的,请依据自己的环境进行相应的改动。
表输入:
表输入依照须要导出的总数据库信息配置好,sql演示样例语句为:
SELECT * FROM kettletb WHERE company='${company}'
表示为仅仅选出相应子公司的数据。当中${company}为传入进来的公司名。
详细配置页面例如以下图:
表输出:
这里的配置须要依据变量来设置,目标表为${table}来获取要导出的表名。其它配置例如以下所看到的,当中的值相应mainTrans.ktr中生成的数据(当中Password为${password}):
插入更新:
演示样例中对数据库表中的id和name字段进行查询,通过对id的比較来筛选掉原本数据库表里就用的数据,这种话仅仅须要插入最新更改的数据就可以,大大提高了数据转换的效率。
设置main.kjb的定时时间。运行就可以。设置页面參考例如以下图:
售后服务体系:
集团公司(嵌入ETL工具)財务报表系统解决方式的更多相关文章
- 集团公司(嵌入ETL工具)财务报表系统解决方案
集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...
- GridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL)不兼容低版本号系统解决方式
项目开发中须要使用GridView批处理操作,多项选择. 可是GridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL)不兼容低版本号. 找 ...
- 大数据之ETL工具Kettle的--1功能介绍
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用. ...
- ETL工具的功能和kettle如何来提供这些功能
不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...
- 为什么建立数据仓库需要使用ETL工具?
在做项目时是不是时常让客户有这样的困扰: 1.开发时间太长 2.花费太多 3.需要太多资源 4.集成多个事务系统数据总是需要大量人力成本 5.找不到合适的技能和经验的人 6.一旦建立,数据仓库无法足够 ...
- SDC信息统计分析系统ETL工具的研究与实现[专业:计算机应用技术]
SDC信息统计分析系统ETL工具的研究与实现[专业:计算机应用技术] http://www.docin.com/p-265530271.html
- 国内A股16家上市银行的財务数据与股价的因子分析报告(1)(工具:R)
分析人:BUPT_LX 研究目的 用某些算法对2014年12月份的16家国内A股上市的商业银行当中11项財务数据(资产总计.负债合计.股本.营业收入.流通股A.少数股东权益.净利润.经营活动的现金流量 ...
- ETL工具总结
ETL的考虑 做 数据仓库系统,ETL是关键的一环.说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具.回忆一下工作这么些年来,处理数据迁移.转换的工作倒 还真的不少.但是那些工 ...
- 基于两种架构的ETL实现及ETL工具选型策略
企业信息化建设过程中,业务系统各自为政.相互独立造成的"数据孤岛"现象尤为普遍,业务不集成.流程不互通.数据不共享--.这给企业进行数据的分析利用.报表开发等带来了巨大困难.在此情 ...
随机推荐
- Map的四种遍历方法
1.取值遍历 for(String key:map.keySet()){ System.out.println("key="+key+"and value=" ...
- TI低功耗蓝牙(BLE)介绍
TI低功耗蓝牙(BLE)介绍 本文档翻译和修改自参考资料:CC2540Bluetooth Low Energy Software Developer’s Guide (Rev. B),部分图片直接引用 ...
- 20121124.Nodejs创建HTTP程序.md
####1.源代码: var http=require('http');//读取http模块 http.createServer(function(req,res){//创建一个服务,接受一个回 ...
- JavaScript和CSS实用工具、库与资源
JavaScript和CSS实用工具.库与资源 JavaScript 库 Particles.js - 一个用于在网页上创建漂亮的浮动粒子的 JS 库: Three.js - 用于在网页上创建 3 ...
- 题解 P1774 【最接近神的人_NOI导刊2010提高(02)】
这道题很明显是求逆序对. 所谓逆序对,就是逆序的数对. 譬如在下面这个数列中: 1 2 3 4 6 5 6 5就是一个逆序对. 求逆序对的方法比较多,常见的有归并排序和树状数组(线段树当然也行). 本 ...
- 自己主动化測试程序之中的一个自己定义键盘的模拟測试程序(C语言)
一.測试程序编写说明 我们做的终端设备上运行的是QT应用程序.使用自己定义的键盘接口.经过測试人员长时间的人机交互測试,来确认系统的功能是否满足需求. 如今须要编写一个自己主动化的測试程序,能够依照预 ...
- POJ 3664 Election Time 题解
这道题网上非常多人都会说easy,水题之类的话,只是我看了下说这种话的人的程序,能够说他们的程序都不及格! 为什么呢?由于他们的程序都是使用简单的二次排序水过(大概你能搜索到的多是这种程序).那样自然 ...
- Android自己定义矩形及selector、shape的使用
[声明]转载请注明出处.此文出自指尖飞落的博客:http://blog.csdn.net/huntersnail --每天写一篇博客.每天做一点技术积累! Android自己定义矩形及selector ...
- html屏蔽鼠标右键
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 具体解释XML解析(一)—解析接口浅析
在DRP项目中接触到了一个XML解析工具DOM4J,它作为解析工具的据说性能很优秀.可是刚刚接触解析工具不久,而且也没有使用过其它的解析工具.因此对于DOM4J的性能没有直接的感受(没有參照物).只是 ...