码迷,mamicode.com
首页 > 其他好文 > 详细

基于Scriptella抽取数据的报表实现

时间:2015-07-02 17:58:52      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

1、查询分析器

--下班了,明天写!


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

--下班了,明天写!


3、ETL工具

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

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

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

        XML实例如下:

<!DOCTYPE etl SYSTEM "
http://scriptella.javaforge.com/dtd/etl.dtd
">

<etl>

        <connection id="db1" url="jdbc:oracle:thin:@uri_1:1521:orcl" user="username" password="password" classpath="external.jar"/>

        <connection id="db2" url="jdbc:oracle:thin:@uri_2:1521:pcis" user="username" password="password"/>

        <query connection-id="db1">

            <!-- Select product from software category in db1-->

            SELECT * FROM web_org_oper;

            <!-- for each row execute a script -->

            <script connection-id="db2">

            

             <!-- 这里也可以创建表 -->

             <!-- 

             CREATE TABLE Track (

               ID INT,

               ALBUM_ID INT,

               NAME VARCHAR(100),

               DATA LONGVARBINARY

             );

              -->

            

                <!-- Insert all selected products to db2

                     use ? to reference properties, columns or ?{expressions}-->

                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);

            </script>

        </query>

</etl>


JAVA代码调用(需要依赖 odbc5.jar、scriptella.jar)---这里只写一种,很多种调用方法:
    EtlExecutor.newExecutor(Test.class.getResource("etl.xml")).execute();4、报表科目勾稽关系校验及日志记录。

--下班了,明天写!


5、输出设置

--下班了,明天写!

基于Scriptella抽取数据的报表实现

标签:

原文地址:http://my.oschina.net/blw/blog/473605

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!