润乾集算报表多样性数据源之文本文件

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本、Excel、JSON、HTTP、Hadoop、mongodb等。

这里通过两个例子介绍集算报表使用文本数据源制作报表的步骤,对于小文本文件和大文本文件在集算报表中可以采用不同的方式进行处理。

小文本文件

报表说明

股票交易记录按月以文本形式存储,文件名为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

报表样式如下:

输入查询日期和股票代码,查询到的交易信息:

由于某天的股价信息只会存在一个文件中(按月存储),单个文件数据量并不是很大,因而可以将文件一次性加载到内存中完成数据查询。这里我们也将能够一次性读入内存进行计算的文件称为小文本文件。

编写计算脚本

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

编辑脚本内容(右侧为格子运行后结果):

A1:根据日期参数导入指定文件(一个);这里使用了f.import()将文本数据一次性读入内存,采用全内存方式完成数据计算,这也是处理小文件的常用方法;

A2:根据指定日期和股票代码查询交易记录;

A3:为报表返回结果集。

编辑报表模板

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

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

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

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

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

在脚本数据集中可以分步编写脚本完成计算任务,语法与集算器一致,还可以直接使用报表定义好的数据源(本例并未涉及)和参数。可以这样使用脚本数据集替代集算器数据集(集算脚本)部分(报表参数、表达式等部分与使用集算器数据集时完全一致,不再赘述):

直接使用报表定义的参数date和code。

大文本文件

除了可以用小文本文件做为报表数据源,集算报表还可以读取大文本文件(无法一次性读入内存进行计算)。与小文本处理方式不同,集算报表采用外存计算的方式来处理大文件,这里也通过实例来说明。

我们更改一下上面的报表需求,要求可以查询指定时间段的某些股票交易信息。由于时间跨度可大可小,所以需要读入的文件可能很多,这时无法将多个文件一次性加载到内存中进行计算,需要使用处理大文本的外存计算方式。以下为具体实现:

编写计算脚本

设置脚本参数:

编辑脚本内容(右侧为格子运行后结果):

A1:根据日期范围计算需要查询的月份,以确定用到的文件;

A2:循环所有月份,使用f.cursor()建立文件游标,并通过[email protected]()将多个游标合并为一个;与使用f.import()一次性读入内存不同,文件游标只是外存文件的引用,并未实际读入数据;

A3:根据参数进行过滤,仍然返回游标;

A4:使用cs.fetch()通过游标取出结果后为报表返回。

编辑报表模板

设置报表参数:

设置数据集:

编辑报表表达式:

通过以上步骤即可完成大文件的读取计算。集算报表提供内外存不同的处理方式可以满足用户不同的报表需求,为文本文件数据源报表开发提供帮助。

时间: 2024-07-30 11:13:33

润乾集算报表多样性数据源之文本文件的相关文章

润乾集算报表多样性数据源之json

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:JSON.HTTP.TXT文本.Excel.Hadoop.mongodb等. JSON作为一种轻量级数据格式应用非常广泛,报表读取json数据源进行报表开发的需求也很常见,另外有些报表还会接收来自HTTP服务器的数据进行报表展现.这里通过例子分别来看一下集算报表使用json数据源和http数据源的过程. 一般JSON数据源 报表说明 学

润乾集算报表多样性数据源之Excel

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本.Excel.JSON.HTTP.Hadoop.mongodb等. Excel作为一种常见的文件格式广泛存在,很多报表的数据来源于Excel.由于报表一般都带有参数,经常需要对原始数据进行分组.过滤等,都需要再编写程序代码才能满足有参数报表的查询需求.这里通过一个例子介绍集算报表使用Excel数据源制作报表的步骤. 报表说明

润乾集算报表多样性数据源之mongodb

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本.Excel.JSON.HTTP.Hadoop.mongodb等. mongodb等nosql数据库具有易扩展和高性能等优势,但计算能力比传统SQL要弱(如mongodb的分组结果不能太大,且不直接支持join运算等),而集算报表内置的计算引擎再正好可以补充这一点,在获得mongodb的优势的同时还拥有较强的计算能力. 这里通

润乾集算报表多样性数据源之Hadoop

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本.Excel.JSON.HTTP.Hadoop.mongodb等. 对于Hadoop,集算报表既可以直接访问Hive,也可以读取HDFS中的数据,完成数据计算和报表开发.Hive的访问和普通数据库一样使用JDBC就可以,这里不再赘述了.下面通过一个例子来看直接访问HDFS的过程. 报表说明 股票交易记录按月以文本形式存储在HD

润乾集算报表多样性数据源之多结果集

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表除了支持不同类型的数据源(RDB.TXT文本.Excel.JSON.HTTP.Hadoop.mongodb)外,还支持在一个数据集中为报表返回多个结果集使用,这样可以有效避免重复运算,提升报表开发效率和运算性能.下面通过一个实例说明多结果集的使用过程. 报表说明 根据学生成绩表查询总成绩前三名和后三名的学生姓名以及总成绩.报表样式如下: 由于要分别显示前三名和后三名学生姓名和成绩,报

润乾集算报表多样性数据源之混合多源

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:TXT文本.Excel.JSON.HTTP.Hadoop.mongodb等. 在集算报表中除了单独使用以上数据源,还可以混合使用.支持混合多数据源是集算报表多样性数据源的又一表现.下面通过一个实例说明使用过程. 报表说明 员工每月应发工资跟员工的基本工资.考勤以及绩效有关,考勤信息来源于人力部门从考勤系统中导出的文本文件,基本工资和绩效

润乾集算报表多样性数据源之动态源

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表除了支持不同类型的数据源(RDB.TXT文本.Excel.JSON.HTTP.Hadoop.mongodb)外,还可以根据实际应用情况动态连接不同的数据源完成动态数据源报表的开发.下面通过一个简单实例说明使用过程. 报表说明 应用中需要通过参数控制报表连接的数据源,当参数flag为1时连接数据源一(xmos1),否则连接数据源二(xmos2),查询指定年份到现在的订单情况. 在集算报

润乾集算报表多样性数据源之动态SQL传递

大多数情况下报表的数据源SQL都是固定的,但有时也需要动态变动其中某些部分实现动态拼出,比如在报表应用中允许用户通过选择表和字段查询自己关心的报表数据,报表开发时则希望对同类报表(明细或汇总)使用同一模板.这时就需要在报表中接收相应参数拼接出动态SQL进行查询后制作动态报表. 润乾集算报表提供了两种处理动态SQL的方法,使用宏和集算脚本,可以快速完成这类报表,下面举例说明. 使用宏 集算报表提供了宏机制,通过在动态宏中拼接SQL后交由数据集查询结果,最后在报表中使用动态表达式获得字段名和字段值完

润乾集算报表使用远程HTTP数据源的示例

报表的数据来源多种多样,有时会接收来自HTTP服务器的数据进行报表展现,一般报表工具只能通过报表自定义数据源使用高级语言(如JAVA)进行处理,实现较为复杂.集算报表简单地通用集算器接收HTTP数据源完成报表展现.这里通过一个实例说明. 学生成绩信息存储在远程的JSON格式文件中,其所在HTTP服务器对外提供统一HTTP访问接口,现需要读取学生成绩信息开发报表,汇总学生成绩并按总成绩排名.报表样式如下: JSON文件中包含班级.编号.姓名.学科.成绩等信息,格式如下: [ { "class&qu