自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何做MongoDB的数组中查下标

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

2016-01-29 09:22:31 4180

原创 MongoDB的本地化排序

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

2016-01-19 09:28:37 2371

原创 集算器协助MongoDB计算之交叉汇总

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

2016-01-15 08:49:58 955

原创 MongoDB里做表间关联

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

2016-01-12 08:19:05 7035

原创 用MongoDB做子查询

MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单,这时可以考虑用esProc辅助实现。下面我们通过一个例子来看一下具体做法。  MongoDB中的文档orders保存了订单数据,employee保存了员工数据。如下:    > db.orders.find();    { “_id” : ObjectId(“543

2015-12-25 17:40:05 13252

原创 将MongoDB导出成csv文件

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

2015-12-22 09:48:33 5797

原创 查询MongoDB子文档的List字段

来源:https://groups.google.com/forum/#!msg/mongodb-user/HqzXSh5DZek/ffZG0TQ1w8cJ 。  Collction Cbettwen含有多级子文档,其中dataList是List型,含有多个字符串,每个字符串由多个数字组成。需要找出符合如下条件的字符串:第1个数字大于6154并小于等于6155。  Cbettwen

2015-12-18 09:00:13 18179

原创 MongoDB的外键关联

来源:http://stackoverflow.com/questions/29392169/populating-field-values-for-referred-documents-in-aggregate-call-in-mongoose。  用Mongodb本身的API需要硬编码才能实现外键关联,不够直观且难度较大,这种情况下可以用集算器来实现,下面用例子说明。  Collect

2015-12-15 10:54:41 14390

原创 MongoDB的连接运算

来源:http://stackoverflow.com/questions/29396985/is-there-a-where-like-relation-function-when-using-pymongo 。  Mongodb没有直接提供连接运算,硬编码实现有一定难度。这种情况下可以用集算器来实现多个collection的内连接、左连接、全连接、子文档连接,下面用例子来说明。

2015-12-11 08:44:25 2441

原创 解析动态JSON入库

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

2015-12-08 08:33:29 1775

原创 MongoDB系列之分组topN

来源:https://groups.google.com/forum/#!topic/mongodb-user/Rjv6lyUCe1s 。  Collction last3有两个字段:variable和timestamp,需要先按variable分组,选出每组文档中timestamp最晚的3个,再从这些文档中找到timestamp最早的1个。  last3的部分数据如下:

2015-12-04 08:31:00 1059

原创 (MongoDB系列之合并MongoDB子文档

问题来源:https://groups.google.com/forum/#!topic/mongodb-user/BpgEaRqrKsA 。  Collection C1的部分数据如下:  集算器代码:  A1:连接MongoDB,连接字格式为mongo://ip:port/db?arg=value&…  A2: 使用find函数从

2015-12-02 09:02:27 5590

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

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

2015-11-27 09:21:07 566

原创 集算器协助SQL实现各种固定排序

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

2015-11-24 08:31:34 539

原创 集算器协助java合并批量文本到excel

问题来源:http://bbs.csdn.net/topics/390842850 。问题描述:把几千个txt文本里面的数据存取到Excel文件中去。txt文本中的数据都是很规范的,如下示例:   文件夹 test      文件下文件名    a.txt,b.txt,c.txt等等     a.txt的内容是这样的  :     数据A       数据B     数据C

2015-11-20 08:46:17 520

原创 用集算器实现文本比对

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

2015-11-17 08:37:25 764

原创 实现SQL动态列计算的示例

被数据库厂商扩展后的SQL可以动态拼接出语句执行,但SQL的集合运算和有序计算不方便,实现动态列计算很繁琐,往往要借助高级语言拼出动态SQL。  免费的集算器支持动态脚本、有序计算、显式集合,可以弥补这一不足。集算器还支持独立使用、控制台执行、报表调用、JAVA代码调用,详情参考集算器辅助SQL编写的应用结构。  下面举例说明SQL开发中常见的动态列计算问题,以及集算器对应的解法。

2015-11-13 09:13:15 5442

原创 集算器实现SQL转置的通用方法

转置是SQL中常见的算法,比如静态/动态行列转置,正转置/逆转置,单层/多层,对齐/补齐,无计算列/有计算列。针对上述不同的场景,SQL要用不同的方法来处理,有时要用pivot函数,有些只能用group+case when,有时要用union,有时只能用高级语言实现对应的动态SQL。方法太多,程序员缺乏清晰的思路,导致代码难以书写。  免费的集算器支持动态脚本、有序计算、集合运算,可用一种

2015-11-10 08:49:09 1174

原创 集算器辅助SQL编写的应用结构

集算器支持有序集合、对象式访问、分步计算,可以简化复杂的SQL式计算。实际使用中有两种常见的应用结构:独立使用、JAVA集成。下面先举例说明独立使用的步骤。  表sales存储着多年的订单数据,要求根据表计算出指定时间段内各月份的销售额比上期。部分源数据如下:  步骤一:在集算器IDE中连接数据库  可以同时连接多个数据源进行混合计算,本案例使用

2015-11-06 08:36:26 1030

原创 简化各种SQL有序计算的示例

SQL集合无序使得完成有序计算比较困难,而这类计算在实际业务中又非常常见,网上有很多讨论,比如:          http://bbs.csdn.net/topics/390959904          http://bbs.csdn.net/topics/390994046          http://bbs.csdn.net/topics/390980889     

2015-11-03 09:20:04 576

原创 Java下拼接执行动态SQL语句

在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题:  http://bbs.csdn.net/topics/390876591  http://bbs.csdn.net/topics/390981627  https://www.linkedin.com/groups/SQL-Query-Help-needed-137774.

2015-10-30 09:57:30 11125

原创 集算器分段导出指定格式文本

来源:http://bbs.csdn.net/topics/370240857。   数据库表(TB1)部分数据如下: 现需要根据上述数据,并以小时作为时间段生成如下命名(yyyyMMddHH)和格式的txt:  2011101106.txt  1|2011-10-11 6:24:21|aaa  2|2011-10-11 6:30:45|

2015-10-27 08:39:00 464

原创 集算器实现记录合并

问题来源:http://bbs.csdn.net/topics/390991336。  表1(T1)中存储了单独的id和name字段,部分源数据如下:  id    name  1     a  2     b  3     c  4     d  5     e   表2(T2)中存储了多个id组成的ids字段,其值如下: 

2015-10-20 08:36:45 448

原创 简化SQL计算之按记录条数汇总数据

问题来源:http://bbs.csdn.net/topics/391014229 。   表1(tb1)中SL字段数据如下:  SL  5  7  7  8  8  5  7  8  2  3  4  2  现需要每5行汇总一次SL数据,汇总后结果如下:  1-5  3

2015-10-16 09:00:09 756

原创 集算器生成动态列结果集

问题来源:http://bbs.csdn.net/topics/391012377 。  表1(tb1)中部分源数据如下:  Prjno      Subtask   Ddate      Num  P9996     P9996-sub002 2015-01-01     123  P9996     P9996-sub002 2015-01-02     134

2015-10-13 08:47:24 553

原创 集算器实现优先随机更新

问题来源:https://www.linkedin.com/groups/update-records-based-on-rank-1890173.S.5914444354742661123?trk=groups_items_see_more-0-b-ttl 。  目标:随机更新表TMP_SURVEY_TRAN_BZ_3_WORKING中符合条件的20条记录,将Quota_Include_

2015-09-25 08:46:23 445

原创 简化SQL计算之字母分段

表rbd_dtl的RBP_VALUE字段存储着字符串“ALL”和一些字母,现在要将该字段拼成分段的字符串,形如: A-F,H,J-K,N-O,Q-S,U-V,X-Z  源数据如下:   具体规则是:  如果RBP_VALUE=“ALL”,则舍去该值。  如果RBP_VALUE前后都是连续的字母,则取第一个字母和最后一个字母作为一段,中间用横杠,比

2015-09-22 08:37:58 574

原创 简化SQL计算之打乱数据列次序(Shuffle)

REF_VALUES是数据库表,ID是主键,ORIGINAL_VALUE是源列,将ORIGINAL_VALUE打乱次序后要更新到空列SHUFFLED_VALUE。部分数据如下:  SQL:  不同的数据库写法不同,以Oracle为例:  Sql代码:create or replace procedure shuffle as TYPE My_CurTyp

2015-09-18 09:14:54 3084

原创 跨库动态MERGE运算的另一种实现方法

MSSQL,ORACLE等数据库都有MERGE语句,用于更新表很方便。但源表和目标表来自不同数据库时,就很难直接使用MERGE语句了。这时候,可以用集算器来协助处理。  参数source和target代表两个结构相同但数据不同的表,分别属于两个不同的数据库,要求以主键为标准用source更新target,比如table1和table2的主键都是A和B,数据如下:   用

2015-09-15 09:22:53 837

原创 简化SQL式计算之记录拆分

数据库应用开发中,经常会遇到一些比较复杂的SQL式计算,比如记录拆分,将按分隔符分隔的一条记录拆分成多条记录。SQL在实现时由于数据库间的差异,会遇到语法支持不足、嵌套多层等问题。而集算器具有丰富的类库,可以编写直观分步的脚本,完成这类计算要简单许多,下面通过一个例子来看一下集算器的实现方式。   应用程序将用户一次登陆后的所有操作代码按逗号分隔,以一条记录存储到数据库用户操作表user_

2015-09-11 07:54:25 1295

原创 简化SQL式计算之区间合并

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,区间合并就是其中一种,比如进行不重复时间段汇总,或将重叠的时间段合并等计算。由于SQL集合无序,实现时需要采用递归的方式实现,而对于递归函数不足的数据库实现起来则更加困难。除了递归,SQL实现时还要依赖多层子查询嵌套问题,SQL语句过为冗长使得实现和修改起来都很困难。   集算器在实现这类计算时则比较简单,可以通过直观分步的脚本实现区

2015-09-08 08:35:53 1531

原创 简化SQL式计算之行间计算

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,行间计算就是其中一种,比如用每月的销售额除以上月的销售额,求比上期,或用每月销售额除以去年同月的销售额,求同期比。有些数据库没有提供SQL2003标准的窗口函数(或支持的不完备),完成行间计算就需要更换思路使用连接(join)运算替代,不仅难以理解而且运算效率低下。即使可以使用窗口函数仍要面临嵌套子查询等问题,SQL语句仍较为冗长。而使用集算

2015-09-01 08:11:54 2970

原创 简化SQL式计算之固定排序

在数据库应用开发中,我们经常要面对复杂的SQL式计算,固定排序就是其中一种。固定排序不是按照某个字段升序或降序排序,而是有着固定的顺序,比如按照2,3,1的顺序排序,或者按照”DSGC”,”TAS”,”GC”,”HU”的顺序来排序。如果允许在数据库建一张表来存储依据,那就可以用join语句来实现排序。但很多时候排序依据是变动的,或者数据库不能建表,这时就需要先union再join,或者用decod

2015-08-28 08:26:37 1513

原创 固定分组计算的sql简化

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,固定分组就是其中一种。固定分组的分组依据不在待分组的数据中,而是来自于外部,比如另一张表、外部参数、条件列表。对于特定类型的固定分组,用SQL实现还算简单,比如:分组依据来自另一张表,且对分组次序没有要求,但要实现其他情况就困难了。   集算器可以轻松解决固定分组中的各类难题,下面用几个例子来说明。   表sales存储着订单

2015-08-25 08:52:15 1283

原创 简化实现动态行列转置的SQL

动态行列转换的计算在实际业务中很常见,网上各类技术论坛上都有讨论,比如下面这些问题:http://www.iteye.com/problems/87788http://bbs.csdn.net/topics/390869577http://bbs.csdn.net/topics/391000711http://bbs.csdn.net/topics/391001035http:

2015-08-21 09:07:17 6436

原创 简化动态MERGE的SQL计算

MSSQL,ORACLE等数据库支持MERGE语句更新表,但表结构未知时,由于缺乏集合类数据,用存储过程获得表结构再动态拼出SQL非常麻烦,代码会有几十行之多;同样原因,用Java等高级语言实现也不简单。而且使用存储过程或Java程序需要代码将内置于数据库或应用程序中,更新管理较为麻烦。这时候可用集算器来协助处理,代码可置于数据库和应用程序之外,不影响数据库与应用程序的结构,易于维护。   

2015-08-18 08:23:15 976

原创 简化多层分组关联计算的sql

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,比如多层分组中的关联计算。由于SQL分组时必须同时汇总,并且不能进行对象式关联访问,因此处理这类问题会比较复杂,只能用窗口函数嵌套多层的子查询的高级技巧来实现。集算器支持真正的分组,直观的对象式关联访问,解决这类问题更加容易。   分组关联在实际业务中遇到的较多,比如http://forums.bit-tech.net/showthrea

2015-08-14 08:29:15 2094

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

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

2015-08-11 08:33:04 1017

原创 浅析桌面端数据分析程序语言

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

2015-08-07 09:00:28 791

原创 用Jasper report实现横向分栏报表

Jasper或BIRT等报表工具通常只支持纵向分栏,很难实现记录横向摆放并分栏的布局,比如下面的报表。  集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求。下面通过一个例子来说明横向分栏的实现过程。  库表emp存储着员工信息,EId是员工编号。报表需要按编号顺序依次显示员工编号、姓名、部门,数据横向分三栏,条件为编号的起止区间。部分源数据如下:

2015-08-04 08:06:10 4777

空空如也

空空如也

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

TA关注的人

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