自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

集算器实现SQL动态列计算的示例

       被数据库厂商扩展后的SQL也可动态拼接出语句执行,但SQL的集合运算和有序计算不方便,实现动态列计算很繁琐,往往要借助高级语言拼出动态SQL。       免费的集算器支持动态脚本、有序计算、显式集合,可以弥补这一不足。下面举例说明SQL开发中常见的动态列计算问题,以及集算器对应的解法。列间排序        表order有6个整数类型的字段,现在要对每条记录的字段...

2016-01-29 09:46:41 329

集算器协助SQL实现固定排序

SQL通常只能按某字段进行排序,如果要按照指定列表排序,就只能用decode或union,但项目一多SQL就会很长,项目如果是变动的参数,SQL就更难实现,经常需要建立临时表。而且项目和字段值不一定相等,差异部分有时要补齐在排序结果中,有时要排除在外,用SQL处理起来难度很大。       集算器支持对齐函数、有序计算、显式集合,可轻松实现固定排序。集算器还支持独立使用、控制台执行、报表调用...

2016-01-19 09:48:08 267

集算器协助SQL实现非等值分组

SQL通常只能按源表字段进行分组,如果分组依据来自另一张表、外部参数、条件列表,用SQL就很繁琐。有时分组依据需要动态生成,这些往往要借助高级语言实现。有时分组依据和源表不完全对应(或区间没有交集),差异部分有时要补齐在分组结果中,有时要排除在外,用SQL处理起来难度很大。         集算器支持对位分组、枚举分组、有序计算,可轻松实现上述非等值分组。集算器还支持独立使用、控制台执行、报...

2016-01-15 08:42:14 213

用集算器实现文本比对

       控制台命令、JAVA、python、perl都可以进行简单的文本比对,但这些工具不擅长集合运算、结构化运算,编写多线程代码较复杂,处理多字段对比、大文件对比、异构文件对比等情况时很繁琐。       免费的集算器支持集合运算、游标运算、结构化运算,简化了多线程代码,可以弥补上述不足。集算器应用简单,支持独立使用、控制台执行、JAVA代码调用,详情参考【集算器实现文本处理的应用方...

2016-01-12 08:46:46 241

集算器与R语言的循环函数对比

  循环函数可以遍历数组或集合中的每个成员,可以将结构复杂的循环语句用简单的函数形式表达出来,可以减少代码量并提高可读性。集算器和R语言都支持循环函数,下面将对比两者用法上的异同。1、生成数据  生成1到10之间的奇数。  集算器:x=to(1,10).step(2)  代码中,to(1,10)生成了1到10之间的连续整数,step函数根据上一步计算结果间隔取数,最终结果是[1,...

2015-12-25 17:35:44 311

集算器和R语言处理外存文本文件的对比

  作为数据计算语言,集算器和R语言都提供了丰富的功能用来处理外存中的文本文件。两者在基本用法上有很多相似之处,但区别也很明显,比如处理列宽固定的文件、读写指定的列、处理大文本文件,计算性能等方面。下面详细对比两者的异同。1、基本功能对比  描述:  sales.txt共有六列,列之间以制表符(\t)分割,行之间以换行符(\n)分割,其中第一行为列名。请将该文件读入内存,再原样写入新...

2015-12-22 09:42:44 134

集算器序表和SQL数据表的异同

  集算器序表和SQL数据表都是有结构的二维数据对象,都有记录、索引、主键的概念,都可以应用于结构化数据的计算。虽然都可以应用于结构化数据的计算,但两者的应用场景却有明显的区别,序表适合解决较复杂但数据量不是很大的计算问题,而数据表适合进行常规但可能数据量巨大的计算。  两者的不同是由底层机制决定的。  序表具有有序的特点,每条记录、每列数据都有确定的序号;序表支持显式集合,序表之间可以...

2015-12-18 08:48:13 157

集算器用作Java结构化文件计算类库

  有时我们不能使用数据库而采用文件系统存储数据,这时就需要自行完成基于文件的数据计算。但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差。  使用免费的集算器可以弥补这一不足。集算器封装了丰富的结构化文件计算函数,并提供JDBC接口。JAVA应用程序可以将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器用作Java计算类...

2015-12-15 10:42:01 125

Java查询大文本

  有时我们需要查询大文本而不是数据库,这时就需要流式读入文件并实现查询算法,还要进行并行处理以提高性能。但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的并行处理。  使用免费的集算器可以弥补这一不足。集算器封装了丰富的结构化文件读写和游标计算函数,书写简单代码就能实现并行计算,并提供了易用的JDBC接口。JAVA应用程序可以将集算器脚本文件...

2015-12-11 08:35:09 157

集算器协助报表工具实现跨行运算

  有些报表工具不直接支持跨行计算,需要用表脚本实现,非常麻烦,遇到多层分组的情况会更复杂。集算器支持有序计算,可以弥补这一不足。报表工具可将集算器脚本文件当做数据库存储过程执行,详情参考集算器辅助报表开发的集成方法。  下面举例说明报表开发中常见的跨行计算,以及集算器对应的解法。  比上期和同期比  库表sOrder存储着每个销售员每天的订单,报表需要统计指定时间段内各月份销售额的...

2015-12-08 08:26:01 138

解决报表特殊布局的若干示例

  有些特殊布局难用报表工具提供的功能直接实现,但如果准备出合适的数据源,就能大大降低报表设计的难度。  使用免费的集算器可以弥补这一不足。集算器支持集合运算、有序计算、动态脚本执行,还提供了简单易用的JDBC接口,报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器辅助报表工具的应用过程。  下面举例说明报表常见的特殊布局,以及集算器对应的...

2015-12-04 08:22:10 155

报表工具的动态数据源实现

  有时候我们需要用参数动态指定数据源,或将多数据源连接为单数据源,或向子报表、table控件动态传入数据源名。对于此类需求,报表工具经常要借助高级语言实现或牺牲安全性以降低复杂度,尤其是BIRT、Jasper等单源报表。  使用免费的集算器可以弥补这一不足。集算器封装了丰富的结构化计算函数,支持动态解析表达式,支持多数据源混合计算,书写简单脚本就能实现动态数据源。集算器还提供了简单易用的J...

2015-12-02 08:55:29 283

在Java中辅助报表工具展现json

  JSON是半结构化数据,Java和报表工具只提供了简单解析的类库,很难进行深度计算。而使用集算器可降低JSON的计算难度。报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器辅助报表工具的应用过程。  下面举例说明报表工具呈现JSON时常见的难题,以及集算器对应的解法。  JSON分组汇总  order.json存储着订单记录,现在要...

2015-11-27 08:58:31 220

用集算器准备非常规格式报表的数据

  有些非常规的格式很难用报表工具提供的功能直接实现,但如果准备出合适的数据源,就能大大降低报表设计的难度。  使用免费的集算器可以弥补这一不足。集算器提供了集合运算,支持动态脚本执行,还提供了简单易用的JDBC接口,报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果。  集算器与报表工具的集成结构如下:  下面举例说明集算器实现横向分栏的过程:...

2015-11-24 08:14:08 120

BIRT实现字段拆分表

  来源:http://developer.actuate.com/community/forum/index.php?/topic/36204-split-data-row/ 。  将字段拆分为多条记录,可以用存储过程或报表脚本来实现,但代码比较复杂,这种情况下可以用集算器来辅助报表工具,下面用例子来说明。  库表data有两个字段,需要将ANOMOALIES字段按空格拆分为多个字符串...

2015-11-20 08:30:27 203

不规则月份统计报表的实现

  来源:http://developer.actuate.com/community/forum/index.php?/topic/36323-months-and-quarters-group-issue/。  不规则月份统计:如果起始时间是2014-01-10,则将2014-01-10到2014-02-09作为一组,将2014-02-10到2014-03-9作为一组。如果起始时间是20...

2015-11-17 08:17:48 161

Jasper计算opening balance

  来源:http://community.jaspersoft.com/questions/850400/how-create-report-opening-balance-using-jasper-reports。  根据存取金额计算初期余额时需要进行跨行计算,用Jasper表达式可以实现,但步骤复杂有一定难度,用集算器协助Jasper则可以轻松实现,下面用简化的例子来说明。  da...

2015-11-13 08:49:20 672

集算器协助Jasper计算贷款分期

  来源:http://community.jaspersoft.com/questions/851148/loop-jasper。  根据贷款额计算贷款分期时需要进行循环计算和跨行计算,用存储过程或Scriptlets实现的难度较大,用集算器协助Jasper可以轻松实现,下面用例子来说明。  库表loan存储着贷款信息,包括贷款总额、按月分期数、年利率。要求用Jasper实现一张分组表...

2015-11-10 08:25:44 175

用BIRT实现报表的组内跨行计算

   来源:http://developer.actuate.com/community/forum/index.php?/topic/36160-dealing-with-previous-rows-groups-sorts-and-subtotals/。  组内跨行计算一般要用SQL窗口函数或报表脚本去实现,但代码比较复杂,这种情况下可以用集算器来辅助报表工具,下面用例子来说明。  ...

2015-11-06 08:19:09 168 1

用Jasper计算交叉增长率

   来源:http://community.jaspersoft.com/questions/847490/how-get-annual-growth-rate-crosstab 。  交叉表的每一列都是动态生成的,进行列间计算时需要动态引用,用Jasper脚本实现此类需求有一定难度,用集算器在数据准备阶段实现则相对简单,下面用例子来说明。  数据库表store存储着多种产品在2014...

2015-11-03 08:46:46 148

在主表中动态插入子表字段

   库表dColThread是主表,主键是tID。dColQuestion是子表,外键是tID,如下:  dColThread:    dColQuestion;    报表需要根据ApplicationName查询主表并以列表的形式展现数据。主表每条记录对应的status字段值有多个,但不超过5个,需要横向插入主表的Phone、Decline字段之间,依次命名为Quest...

2015-10-30 09:44:27 276

不规则跨行计算报表

   使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,比如源数据中有条特殊数据,其他数据都要和它进行占比、求和等计算。集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求。下面通过一个例子来说明不规则跨行计算报表的实现过程。  数据库表majorSum存储着某医院重点科室以及全院的患者统计,报表需要按字母顺序呈现各科室的...

2015-10-27 08:30:17 233

原创 多数据源主子报表的处理(Jasper为例)

   主报表和子报表(或Table表)使用不同的数据库时。JasperReport/Birt等报表工具从功能上可以处理,但在子报表中无法直接使用数据源名,需要使用显式的数据库账号、口令。可以看到这种方式存在一定的安全隐患,而且实施过程比较复杂。  集算器具有结构化强计算引擎,支持多样性数据源,集成简单,可以协助报表工具方便地实现此类需求,下面通过一个例子来说明主子报表多数据源的实现过程。...

2015-10-20 08:16:55 665

MongoDB join mysql的报表制作

   多样性和多数据源问题使用JasperReport等报表工具本身不易处理,比如展现MongoDB和mysql的混合运算。虽然JasperReport/Birt有virtual data source或table join等功能,但只在商业版或高端版本出现,在免费版中实现难度很大,而且功能也有较大局限,无法对连接后的数据进行类似SQL的结构化计算。   集算器具有结构化强计算引擎,支持多样...

2015-10-16 08:52:05 388

用Jasper report实现MongoDB join

   多样性数据源是报表开发的常见问题,但用JasperReport等报表工具本身难以处理,比如展现两个MongoDB collection连接的结果。虽然Jasper Report有virtual data source或table join,但这些功能只在商业版或高端版本出现,在免费版中实现的难度很大。而且这些功能只支持两个数据源的连接,要实现多连接则麻烦得多。另外,这些功能只是图形化界面,...

2015-10-13 08:01:52 208

结果集复用来提升报表性能

         报表项目中,如果一个报表有多个sql数据集,可能会出现其中两个或者几个数据集很相似的情况。如果相似数据集的结果可以复用,就能有效的提高性能。但是,sql数据集的结果是没有办法复用的。例如下面这个“销售排名、分布报表”(db2数据库):   如果采用sql结果集,需要两个数据集:Ds1:SELECT * from (select e.eid 雇员编号,max(...

2015-09-25 08:37:09 165

集算器实现外存排序的代码示例

在数据分析计算中,将表中的记录排序,是很常见的需求。集算器中,可以用sort函数为序列或者序表中的数据排序。如果需要排序的数据量巨大,就不能一次将它们读入内存,这样普通的排序方法就无法执行了,此时需要使用外存排序。 如,文本文件Order_Foods.txt中,存储了50,000条食品的订单信息: 现在,需要将订单中的数据按照以下要求排序:1、按照食品名称升序排序;2、按...

2015-09-22 08:30:13 133

文件计算的并行分组汇总

   在前文中我们介绍了文件并行的查找与过滤的实现方法,这里再介绍一下查找过滤加分组汇总的做法。和上一篇一样,这里只讨论小结果集,也就是计算结果在内存中可以装下的情况。         用多线程实现查找过滤和分组汇总的思路是:采用多线程方式,每个线程处理一部分数据的查找过滤和分组汇总,最后将每一部分检索的结果合并分组汇总,再在主程序中完成最终的过滤。这里通过一个例子来看一下具体做法。考虑...

2015-09-18 09:03:06 164

文件计算的并行查找与过滤

   润乾集算器具备文件计算能力。对于数据量相对较大的情况,集算器提供了多线程并行的功能,可以充分利用计算机的多CPU多核的计算能力,获得接近或超过传统数据库的计算性能。  这里只考虑小结果集的情况,即数据计算结果在内存可以装下的情况。  集算器多线程并行结构示意图如下:   如上图所示,集算器通过一个主脚本将任务分配给多个子脚本,每个子脚本分别访问本地数据的一部分进行计算。子脚...

2015-09-15 09:03:11 147

多层外键连接的文件计算实现

在结构化数据计算任务中,会出现源数据来自多层外键关联的多个数据表的情况。例如要在订单系统中计算出比较特殊的订单,就遇到了下图中的多层外键结构。具体的计算需求是:求产品供应商和订单的客户在同一个地区的订单,这些订单按照客户分组求每组的订单总价和个数。  数据结构示意图如下: 如果用数据库完成,需要的SQL脚本如下:select cid,count(ordered),sum(price*...

2015-09-11 08:00:49 119

在外存中实现分组的代码示例

   在数据分析中,我们经常需要将数据分组,然后计算出各组的汇总值,或者在各组中分别计算。集算器中,可以用groups函数计算数据的分组汇总结果,更可以用group函数将表中记录分成多组,以便后续计算。但是,如果需要排序的数据量巨大,情况就不同了,这时是不能一次将它们读入内存的,这样普通的分组汇总,或者分组的方法就无法执行了,此时就可能需要使用外存分组。  下面,先来准备一个大数据表,简单模...

2015-09-08 08:55:36 170

集算器辅助报表工具的应用过程

   集算器具有丰富的(半)结构化计算函数,支持动态解析表达式,支持多样性数据源。报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果。  集算器与报表工具的集成结构如下: 下面举例说明报表集成集算器的方法。 数据库表SALES3存储着订单数据,部分数据如下: 现在要计算出指定年份每个月订单的总金额、最大订单金额、最小订单金额,以及总订单...

2015-09-01 08:23:23 159

集算器协助Java处理JSON

   json是半结构化数据,JAVA只能简单解析,很难进行深度计算。集算器支持集合运算、有序计算、动态脚本执行,可降低json的计算难度。集算器还提供了简单易用的JDBC接口,JAVA可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器用作Java计算类库的应用结构。  下面举例说明JAVA处理json时常见的难题,以及集算器对应的解法。  jso...

2015-08-28 08:35:54 179

桌面端数据分析程序语言

  桌面端数据分析程序语言,其重点是使用方便且计算能力强。考察某种语言是否适合进行桌面端数据分析,可以用六个指标来衡量:应用环境、文件处理、文本和字符串处理、结构化数据处理、模型预测算法、其他非重点指标。    一、应用环境  进行桌面数据分析的用户绝大多数都不是专业程序员,他们更习惯在windows下工作,他们缺乏专业程序员拥有的配置环境的技能,因此桌面端分析程序语言的应用环境应当足够...

2015-08-25 08:31:09 140

将MongoDB导出成csv文件

   来源:https://plus.google.com/+VicNgrail/posts/ebS9JUtFopw。  Mongodb可以存储非结构化数据,要将这些数据导出为标准的结构化数据会存在一定的困难。用集算器结合MongoDB可以方便的导出标准化数据,下面看一下具体做法。  Collection test的部分数据如下:/* 0 */{  “_id” : Objec...

2015-08-21 08:38:51 892

MongoDB的本地化排序

   对于本地化语言(例如:中文),mongodb是按照UNICODE编码排序,而不是根据本地语言的编码排序。用esProc集算器结合mongodb可以方便的实现本地化语言的排序(例如:中文按照拼音排序)。下面我们以中文为例,来看一下具体做法。   Mongodb中的集合person保存了姓名和性别如下:   > db.person.find()    { “_id” : Object...

2015-08-18 08:33:54 211

在MongoDB中实现交叉汇总

   MongoDB实现交叉汇总比较困难,如果将数据取出,用Java等高级语言来汇总的话,也相当复杂。因此,可以考虑用esProc集算器辅助MongoDB完成交叉汇总。下面我们通过一个例子来看一下具体做法。   Student集合如下:    db.student.insert ( {school:’school1′, sname : ‘Sean’ , sub1: 4, sub2 :5 })...

2015-08-14 07:57:35 325

如何做MongoDB的数组中查下标

   MongoDB可以按照下标查出内嵌数组的元素,但是不能通过元素的值来查询下标。例如:数组中的元素是按照排名的先后顺序存放的人员姓名,MongoDB可以根据排名(数组下标)来找姓名,但是不能通过姓名查找排名(数组下标)数值。esProc集算器可以协助MongoDB实现这个需求,下面通过例子来看一下具体做法。   MongoDB的集合b中,保存了姓名和朋友(数组)。朋友数组中的人名是按照排...

2015-08-11 08:17:04 1396

集算器解析动态JSON入库

  来源:http://bbs.csdn.net/topics/390611005 。  系统采集的JSON格式数据(s.json)如下:  {    “SUCCESS”: [        {            "MESSAGE": "IMEI Service List",            "LIST": {                "MOVISTA...

2015-08-07 08:42:21 309

MongoDB里做表间关联

   MongoDB不支持join,其官网上推荐的unity jdbc可以把数据取出来进行二次计算实现join运算,但收费版才有这个功能。其他免费的jdbc drive只能支持最基本的SQL语句,不支持join。如果用Java等编程语言将数据取出后实现join计算,也比较复杂。   用免费的集算器esProc配合MongoDB,可以实现join计算。这里通过一个例子来说明一下具体作法。 ...

2015-08-04 07:53:58 717

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除