你好,游客 登录 注册 搜索
背景:
阅读新闻

报表数据源之Hadoop

[日期:2015-04-28] 来源:http://demo.netfoucs.com/  作者: [字体: ]

        集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本、Excel、JSON、HTTP、Hadoop、mongodb等。

        对于Hadoop,集算报表既可以直接访问Hive,也可以读取HDFS中的数据,完成数据计算和报表开发。Hive的访问和普通数据库一样使用JDBC就可以,这里不再赘述了。下面通过一个例子来看直接访问HDFS的过程。

报表说明

       股票交易记录按月以文本形式存储在HDFS中,文件名为stock_record_yyyyMM.txt(如 stock_record_200901.txt),内容包括股票代码、交易日期和收盘价。根据指定月份查询并计算各只股票的收盘均价,以便进行股价趋势 分析。文本内容如下:

       code                  tradingDate    price

       120089    2009-01-0100:00:00        50.24

       120123    2009-01-0100:00:00        10.35

       120136    2009-01-0100:00:00        43.37

       120141    2009-01-0100:00:00        41.86

       120170    2009-01-0100:00:00        194.63

       区别于一般报表工具,集算报表可以直接访问HDFS完成数据的读取计算,以下为实现过程。

拷贝相关jar包

       使 用集算报表访问HDFS时需要加载Hadoop核心包及配置包,如:commons-configuration-1.6.jar、commons- lang-2.4.jar、hadoop-core-1.0.4.jar(Hadoop1.0.4)。将以上jar拷贝到[集算报表安装目 录]\report\lib和[集算器安装目录]\esproc(如果需要使用集算器编辑器编辑和调试脚本的话)下。

编写计算脚本

       使用集算编辑器编写脚本(stockFromHdfsTxt.dfx),完成HDFS的文件读入和数据过滤,为报表返回结果集。由于要接收报表传递的参数,首先设置脚本脚本参数。

Hadoop

       编辑脚本。

Hadoop

       A1:使用hdfsfile函数根据文件路径和指定参数创建HDFS文件游标;

       A2:针对股票代码汇总收盘价和数量;

       A3:计算每只股票的平均收盘价,通过A4为报表返回结果集。

编辑报表模板

       使用集算报表设计器新建报表模板,并设置参数:

Hadoop

       设置数据集,使用“集算器”数据集类型,调用编辑好的脚本文件(stockFromHdfsTxt.dfx)。

Hadoop

       其中,dfx文件路径既可以是绝对路径,也可以是相对路径,相对路径是相对选项中配置的dfx主目录的。

 

       编辑报表表达式,直接使用集算脚本返回的结果集,完成报表制作。

       值得注意的是,在报表设计器中预览时,需要将Hadoop相关jar包拷贝到[集算报表安装目录]\report\lib下。

       除了可以直接访问HDFS的文本文件外,集算报表也可以读取HDFS中的压缩文件。这时仍然使用hdfsfile函数,由扩展名决定解压方式。比如,要访问Gzip文件可以这样写:

=hdfsfile("hdfs://192.168.1.210:9000/usr/local/hadoop/data/stock_record_"+d_date+".gz","GBK"),只需在将扩展名包含在url中即可。

       

       通过上面的实现可以看到,使用集算器脚本可以很方便地完成HDFS文件的读取计算,而且外置的集算脚本具有可视化的编辑调试环境,编辑好的脚本还可以复 用(被其他报表或程序调用)。不过,如果脚本已经调试好,而且不需要复用的时候,要维护两个文件(集算脚本和报表模板)的一致性会比较麻烦,这时候直接使 用集算报表的脚本数据集就比较简单了。

       在脚本数据集中可以分步编写脚本完成计算任务,语法与集算器一致,还可以直接使用报表定义好的数据源(本例并未涉及)和参数。使用脚本数据集可以这样完成:

        1.  在数据集设置窗口中点击“增加”按钮,弹出数据集类型对话框,选择“脚本数据集”;

        2.      在弹出的脚本数据集编辑窗口中编写脚本;

Hadoop

        直接使用报表定义的参数arg1。

        3.报表参数设置和报表表达式,与使用集算器数据集一致,不再赘述。

 

       报表部署时,同样需要将Hadoop的相关jar放到应用classpath下,如应用的web-inf\lib下。





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款