多行日志合并处理的内外存方法

上一讲中,我们介绍了如何用SPL将一行日志结构化为一条记录,今天则要说一下多行日志对应一条记录的情况,我们称之为不定行日志。   事实上,集算器自己的输出日志就是这种不定行日志,我们来看一下集算器节点机下的一个日志文件rqlog. log,同样摘录两段日志: [2018-05-14 09:2...

2018-10-15 15:28:36

阅读数:4

评论数:0

优化Join运算的系列方法(3)

5 综合案例 实际业务中,多表关联运算十分常见,外键表、同维表、主子表这几种关联类型可能会混合出现。下面我们来看一个综合案例。 5.1 表结构和查询目标 某电商平台中和订单编号这个字段相关的有6个表,主要表结构如下: 订单表 订单明细表 ...

2018-10-15 15:24:00

阅读数:5

评论数:0

优化 Join 运算的系列方法(2)

3 半内存时的外键表 外键指针化的前提是事实表和维表都可以装入内存,但实际业务中涉及的数据量可能很大,那就不能采用这种方法了。 3.1 维表内存化 如果只是事实表很大,而维表仍然可以全部装入内存,那么仍然可以采用上面的外键指针化方法处理,只要修改一下对事实表的访问,使用游标的方式取从集文件里...

2018-10-15 15:16:54

阅读数:7

评论数:0

优化 Join 运算的系列方法(1)

JOIN是关系数据库中常用运算,用于把多个表进行关联,关联条件一般是判断某个关联字段的值是否相等。随着关联表的增多或者关联条件越来越复杂,无论理解查询含义、实现查询语句,还是在查询的性能方面,可以说JOIN都是最具挑战的SQL运算,没有之一。   特别是JOIN的性能,一直是个老大难问题。下面...

2018-10-15 15:14:29

阅读数:7

评论数:0

10 行代码,集算器实现写诗机器人

集算器不仅有大数据计算,还有诗和远方。最近看到不少写诗机器人的新闻,于是尝试用集算器简单地实现一个。这个实现真的很简单,简单到只有10几行代码,请看实现步骤:   1.下载字典和诗词 从网上找一个用于分词的字典文件,里面记录着每个中文词汇的词性。我从GitHub上找了一个,稍微处理之后保存到...

2018-10-15 15:12:44

阅读数:3

评论数:0

超大数据下大批量随机键值的查询优化方案

一、问题描述   键值查询是很常见的查询场景,在数据表上建有索引后,即使表中数据记录数巨大(几亿甚至几十亿行),用键值查询出单条记录也会很快,因为建立索引后的复杂度只有 logN(以 2 为底)次, 10 亿行数据也只要比较 30 次(10 亿约等于 2^30),在现代计算机上也只需要数十毫秒...

2018-10-15 15:05:23

阅读数:5

评论数:0

浅解比SQL更好用的SPL

从 SQL 到集算器的基本查询语法迁移(一)单表操作 数据库和数据分析领域,有一个强大的存在,大名 SQL,全名结构化查询语言 (Structured Query Language)。从字面上看,这个语言的目标就是把数据“查询”出来,而查询这个词给人的感觉并不是很难。但实际上,为了支持貌似简...

2018-09-30 15:45:33

阅读数:18

评论数:0

简单几行程序轻松分析Excel

随着互联网的快速发展,大数据时代的到来,数据资源的处理成了各行各业都面临的热点问题。除了通过特别专业、特别特别昂贵、特别特别特别复杂的分析平台来处理特别 x4 海量的数据外,我们还常常会遇到 Excel(xls,xlsx)文件这样手边能够即时获得的数据文件。使用 Excel 记录、处理和交换数据,...

2018-09-30 15:27:19

阅读数:23

评论数:0

文本导出的方方面面

TXT文本文件是我们常用的在应用之间传递数据的途径之一,因为它具有通用、灵活、易维护等诸多优点。不过并不是所有应用都提供了生成txt文件的功能,往往需要额外的程序设计和开发工作才能获得。这时如果能够有一个通用的工具软件,灵活地根据需要生成目标格式的文本,将能够极大地助力我们的业务工作。本文介绍的集...

2018-09-27 10:48:31

阅读数:15

评论数:0

秒级展现的百万级大清单报表怎么做

数据查询业务中,有时会碰到数据量很大的清单报表。由于用户输入的查询条件可能很宽泛,因此会从数据库中查出几百上千万甚至过亿行的记录,常见的包括银行流水记录,物流明细等。呈现时如果等着把这些记录全部检索出来再生成报表,那会需要很长时间,用户体验自然会非常恶劣。而且,报表一般采用内存运算机制,大多数情况...

2018-09-27 10:13:56

阅读数:15

评论数:0

日志结构化,SQL来查询

通常,日志文件都是文本格式,其中的内容是非结构化的文本串。这就使得我们查询日志信息时,一般只能使用文本编辑软件的搜索功能,输入关键字后,靠眼力去侦查每处匹配结果。在日志量不大,或者只是偶尔查一下时,这么操作倒也无妨。不过,再简单的事情也怕多次重复。如果需要频繁查询,量变就可能引起质变。如果每次还都...

2018-08-30 09:26:02

阅读数:38

评论数:0

用简单程序替换 MySQL 窗口函数

窗口函数是SQL2003标准才开始有的一系列SQL函数,用于应付一些复杂运算是比较方便。但是普遍使用的MySQL数据库对窗口函数支持得却很不好,直到最近的版本才开始有部分支持,这当然就让MySQL程序员很郁闷了。 实际操作中,我们可以在MySQL里用SQL拼出窗口函数功能,但是需要使用用户变量以...

2018-08-30 09:25:08

阅读数:27

评论数:0

如何用外部程序优化 SQL 语句中的 IN 和 EXISTS

数据结构 IN和EXISTS是SQL中常见的复杂条件,在将SQL(存储过程)转换成库外计算获取高性能时也会面对这些问题。本文将以TPC-H定义的模型为基础,介绍如何用集算器的语法实现IN、EXISTS并做优化。 TPC-H是TPC事务处理性能委员会制定的用于OLAP数据库管理系统的测试标准,模...

2018-08-29 11:02:39

阅读数:13

评论数:0

正确使用缓存让报表支持高并发

使用缓存可以提升报表性能是不争的事实,一般高端报表工具都会提供报表缓存功能,可将整个报表计算结果缓存在文件系统中,以便用户下次访问相同参数的报表时可以快速读取缓存结果进行展现。但有些情况下报表开发人员还希望对缓存的内容进行更准确和灵活的控制,比如缓存的不是整个报表结果而是其中一部分、缓存内容可被其...

2018-08-29 10:56:02

阅读数:20

评论数:0

轻量级跨库多维分析解决方案

问题的提出 多维分析(BI)系统后台数据源通常有三种选择。一、普通数据库;二、专业数据仓库;三、BI系统自带的数据源。 但是,这三种选择都有各自的问题。普通数据库一般都是行式存储,很难获得多维分析希望的高性能,只适用较小数据量。专业数据仓库有不少是列式存储的,性能问题不大,但是价格都比较昂贵,...

2018-08-29 10:52:02

阅读数:70

评论数:0

用计算路由的方法优化 BI 后台性能

问题的提出 BI系统的常见结构是:前端是BI应用,负责多维分析的用户操作和结果呈现;后台是数据库/数据仓库,负责数据计算和存储。前端和后台之间用SQL作为接口。 实际应用中,常常出现后台数据仓库压力过重的问题。问题表现为前端响应时间过长,数据仓库反应速度变慢。 常见的解决方案是在数据仓库和应...

2018-08-29 10:45:45

阅读数:24

评论数:0

如何优化多数据集关联报表

多数据集关联报表是很常见的报表形式,它允许开发者分别从不同的来源(表或数据库)分别准备数据形成不同的数据集,在报表端(模板)通过表达式描述数据集间的关系完成关联。这样可以避免在数据准备时写过于复杂的SQL/存储过程,降低维护难度。尤其当报表数据来源于多个数据库时,多数据集的优势更加明显。 凡事都...

2018-08-29 10:45:03

阅读数:27

评论数:0

趣味集算:八皇后问题

有关国际象棋的问题很多,八皇后问题就是其中相当著名的一个。在 8×8 的国际象棋棋盘中,放入 8 个皇后,使它们不互相攻击,共有多少种方法呢? 国际象棋中皇后的威力巨大,攻击范围是同一行、同一列以及同一斜行,因此,符合条件的 8 个皇后必须都不在同一行、同一列或者同一斜行上。 由于每一...

2018-08-29 10:27:59

阅读数:20

评论数:0

趣味集算:算二十四

算24点,是一种常见的智力游戏。它可以使用抽去大小王的扑克牌来玩,随便抽出4张牌,要求通过加、减、乘、除等四则运算,并使用所有的这4个数,将结果算为24。在玩这个游戏时,扑克牌中的JQK记为11,12和13。 用集算器,可以比较方便地编写程序,根据随便给定的4个数,计算出游戏的解答,如下面的24...

2018-08-03 10:27:05

阅读数:76

评论数:0

妙用集算,掌上观文

随着互联网的快速发展,大数据时代的到来,数据资源的处理成了各行各业都面临的热点问题。除了通过特别专业、特别特别昂贵、特别特别特别复杂的分析平台来处理特别x4海量的数据外,我们还常常会遇到Excel(xls,xlsx)文件这样手边能够即时获得的数据文件。使用Excel记录、处理和交换数据,是因为这个...

2018-08-03 10:22:42

阅读数:15

评论数:0

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