`
datamachine
  • 浏览: 163505 次
社区版块
存档分类
最新评论
文章列表
   在数据分析中,我们经常需要将数据分组,然后计算出各组的汇总值,或者在各组中分别计算。集算器中,可以用groups函数计算数据的分组汇总结果,更可以用group函数将表中记录分成多组,以便后续计算。但是,如果需要排序的数据量巨大,情况就不同了,这时是不能一次将它们读入内存的,这样普通的分组汇总,或者分组的方法就无法执行了,此时就可能需要使用外存分组。   下面,先来准备一个大数据表,简单模拟1,000,000条手机用户的通话时长记录,存储在二进制文件PhoneBill中:      其中,电话号码使用8位整数,前4位固定为1234,后4位随机生成。通话开始时间在2014年8月中随机产 ...
   集算器具有丰富的(半)结构化计算函数,支持动态解析表达式,支持多样性数据源。报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果。   集算器与报表工具的集成结构如下:   下面举例说明报表集成集算器的方法。   数据库表SALES3存储着订单数据,部分数据如下:   现在要计算出指定年份每个月订单的总金额、最大订单金额、最小订单金额,以及总订单数,并将数据转置成13列4行,即:四种算法是第一列,列名为subtotal,每个月占一列,列名分别是
   json是半结构化数据,JAVA只能简单解析,很难进行深度计算。集算器支持集合运算、有序计算、动态脚本执行,可降低json的计算难度。集算器还提供了简单易用的JDBC接口,JAVA可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果,详情参考集算器用作Java计算类库的应用结构。   下面举例说明JAVA处理json时常见的难题,以及集算器对应的解法。   json分组汇总   order.json存储着订单记录,现在要按时间段汇总每个月每个客户贡献的销售额,部分源数据如下:      集算器代码:     
  桌面端数据分析程序语言,其重点是使用方便且计算能力强。考察某种语言是否适合进行桌面端数据分析,可以用六个指标来衡量:应用环境、文件处理、文本和字符串处理、结构化数据处理、模型预测算法、其他非重点指标 ...
   来源:https://plus.google.com/+VicNgrail/posts/ebS9JUtFopw。   Mongodb可以存储非结构化数据,要将这些数据导出为标准的结构化数据会存在一定的困难。用集算器结合MongoDB可以方便的导出标准化数据,下面看一下具体做法。   Collection test的部分数据如下: /* 0 */ {   “_id” : ObjectId(“5518f6f8a82a704fe4216a43″),   “id” : “No1″,   “cars” : {     “name” : “Putin”,     “car” : [ ...
   对于本地化语言(例如:中文),mongodb是按照UNICODE编码排序,而不是根据本地语言的编码排序。用esProc集算器结合mongodb可以方便的实现本地化语言的排序(例如:中文按照拼音排序)。下面我们以中文为例,来看一下具体做法。    Mongodb中的集合person保存了姓名和性别如下:   > db.person.find()    { “_id” : ObjectId(“544e4e070f03ad39eb2bf498″), “name” : “宋江”, “gender” : “男”}    { “_id” : ObjectId(“544e4e070f03ad3 ...
   MongoDB实现交叉汇总比较困难,如果将数据取出,用Java等高级语言来汇总的话,也相当复杂。因此,可以考虑用esProc集算器辅助MongoDB完成交叉汇总。下面我们通过一个例子来看一下具体做法。    Student集合如下:    db.student.insert ( {school:’school1′, sname : ‘Sean’ , sub1: 4, sub2 :5 })    db.student.insert ( {school:’school1′, sname : ‘chris’ , sub1: 4, sub2 :3 })    db.student.insert ...
   MongoDB可以按照下标查出内嵌数组的元素,但是不能通过元素的值来查询下标。例如:数组中的元素是按照排名的先后顺序存放的人员姓名,MongoDB可以根据排名(数组下标)来找姓名,但是不能通过姓名查找排名(数组下标 ...
  来源:http://bbs.csdn.net/topics/390611005 。   系统采集的JSON格式数据(s.json)如下:   {     “SUCCESS”: [         {             "MESSAGE": "IMEI Service List",             "LIST": {          ...
   MongoDB不支持join,其官网上推荐的unity jdbc可以把数据取出来进行二次计算实现join运算,但收费版才有这个功能。其他免费的jdbc drive只能支持最基本的SQL语句,不支持join。如果用Java等编程语言将数据取出后实现join计算,也比较复杂。    用免费的集算器esProc配合MongoDB,可以实现join计算。这里通过一个例子来说明一下具体作法。    MongoDB中的文档orders保存了订单数据,employee保存了员工数据。如下:    MongoDB shell version: 2.6.4    connecting to: test ...
   MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单,这时可以考虑用集算器esProc辅助实现。下面我们通过一个例子来看一下具体做法。    MongoDB中的文档orders保存了订单数据,employee保存了员工数据。如下:> db.orders.find();{ “_id” : ObjectId(“5434f88dd00ab5276493e270″), “ORDERID” : 1, “CLIENT” : “UJRNP“, “SELLERID” : 17, “AMOUNT” : 392, “ORDERDATE” ...
  来源:https://groups.google.com/forum/#!msg/mongodb-user/HqzXSh5DZek/ffZG0TQ1w8cJ 。   Collction Cbettwen含有多级子文档,其中dataList是List型,含有多个字符串,每个字符串由多个数字组成。需要找出符合如下条件的字符串:第1个数字大于6154 ...
   Mongodb脚本解决复杂问题的计算能力有限,直接使用时较为吃力。很多情况下需要将数据读出后在主程序中进一步完成运算,而在Java等高级语言中编写这类集合式运算也比较麻烦。这时可以用集算器esProc来辅助,这里通过一个例子来说明。    Mongodb中有一个test集合如下:     > db.test.find({},{“_id”:0})     { “value” : NumberLong(112937552) }     { “value” : NumberLong(715634640) }     { “value” : NumberLong(48722971 ...
        来源:http://stackoverflow.com/questions/29396985/is-there-a-where-like-relation-function-when-using-pymongo 。        Mongodb没有直接提供连接运算,硬编码实现有一定难度。这种情况下可以用集算器来实现多个collection的内连接、左连接、全连接、子文档连接,下面用例子来说明。        Collection categories和rules在逻辑上是主子关系,关联字段是cat,需要进行左连接运算,取出categories的title、regex、cat ...
   来源:http://stackoverflow.com/questions/29392169/populating-field-values-for-referred-documents-in-aggregate-call-in-mongoose。 用Mongodb本身的API需要硬编码才能实现外键关联,不够直观且难度较大,这种情况下可以用集算器来实现,下面用例子说明。 Collection UserCourseProgress记录着用户和课程的关系,其courseid字段是外键,指向Collection Course的_id字段。需要统计出每门课的人数,其中课程名称需要使用Cour ...
Global site tag (gtag.js) - Google Analytics