为什么需要OLAP DSL?
OLAP(On-Line Analytical Processing,联机分析处理)是大数据场景中,数据价值探索与挖掘的重要环节。这个领域内,开源社区呈现百花齐放的现象,Elasticsearch、Druid、Clickhouse、Pinot、Kylin、Presto等,各自在业界都有着广泛的应用场景。实际使用过程中,通常会经历以下三个阶段:
业务初期,面临多种选择,如何做技术选型?这时场景较单一,需要解决的问题相对固定,这时简单比较下开源组件各自的特性,参考下业界的使用情况;再或者部署测试环境,模拟业务验证;通常都能够选取出其中一个组件,投入实际生产环境;
业务中期,随着数据需求的不断丰富变化,开源组件需要支撑的应用场景也越来越多,比如:多维统计查询、可视化、报表、监控报警等;本质上,不管是什么样的开源组件,还是为解决“某一类”场景问题设计实现的,这种“大而全”的一站式打包服务是完全不能够胜任的;随着时间推移,服务自身特性的局限与日益丰富的需求场景之间的矛盾愈演愈烈,解决方案也比较简单:尝试引入多个开源组件;
业务后期,大家会不约而同地处于这样的一个现状:生产环境中运行着多个开源组件,服务于业务场景中的多个需求;
综上所述,使用某一个组件,寄希望于它能够应对各种需求(“All In One”)的方式是不可行的,每种组件各有利弊,有的擅长检索,有的擅长统计;最好的方式是结合实际需求,选取若干个合适的组件,每个组件服务于自身最适用的业务场景。
既然是“最好的方式”,且需求已经得到解决,为什么仍然需要OLAP DSL?这里以常见的“多维指标统计”为例,从业务、工程两个视角进行说明。
业务视角
- 多个开源组件并存的场景下,业务指标会分散至不同的组件中,开发/分析人员需要明确知晓指标与组件的对应关系;
- 不同的组件提供不同的API,开发/分析人员需要掌握多种组件的领域概念及相应API使用方法,且不断来回切换;
- 指标可能需要依赖多个组件的复合查询进行计算,开发/分析人员需要清晰了解数据设计、存储信息,且工程能力要求较高;
- 指标的计算实现代码需要在可视化、报表、监控、数据接口等服务中重复编写,如果规则变化,很难做到全覆盖更新,保证数据一致性;
工程视角
如前所述,开发/分析人员需要掌握不同类型的API,且业务系统与这些API紧密集成,已有组件版本升级或者引入新组件时,都会遇到比较大的阻力,灵活性较差;
OLAP DSL需要解决哪些问题?
- 开发/分析人员只需要面对一种统一的API,不需要直接面对多种类型的组件API;
- 开发/分析人员只需要输入查询条件,即可获取计算结果,不需要关心指标数据的计算过程;
OLAP DSL需要提供哪些能力?
- 获取查询系统中有哪些主题;
- 主题下有哪些维度,每个维度下有哪些取值;
- 主题下有哪些指标;
- 可按主题名称、指标名称、时间范围、时间粒度、维度过滤、维度分组等条件进行多维度指标统计查询;
OLAP DSL实现引擎需要负责构建指标计算规则的逻辑/物理执行计划,以及多个组件之间的数据交互。
为什么需要OLAP DSL?的更多相关文章
- 轻量级OLAP(二):Hive + Elasticsearch
1. 引言 在做OLAP数据分析时,常常会遇到过滤分析需求,比如:除去只有性别.常驻地标签的用户,计算广告媒体上的覆盖UV.OLAP解决方案Kylin不支持复杂数据类型(array.struct.ma ...
- 微博大数据即席查询(OLAP)引擎实践
前言 适用于 即席查询 场景的开源查询引擎有很多,如:Elasticsearch.Druid.Presto.ClickHouse等:每种系统各有利弊,有的擅长检索,有的擅长统计:实践证明,All In ...
- Ubuntu手动设置DSL连接
在安装完Ubuntu之后,发现图形界面的DSL连接不管用了,郁闷了好几天,想想移动每个月120个小时的流量岂不是白白浪费了.正当我想重返Windows系统的时候,却发现了手动设置连接DSL的好方法,感 ...
- 联机分析处理(OLAP)到底是什么?
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来. 当今的数据 ...
- 升级Ubuntu 16.04 LTS后 DSL拨号上网(ppp)连接自动断开解决办法
原本在Ubuntu 15.10用拨号上网没有问题,但升级了16.04 LTS后发现原来的DSL连接不上了.主要表现为: 1.在NetworkManager里面选择DSL Connection能够尝试拨 ...
- OLTP(on-line transaction processing)与OLAP(On-Line Analytical Processing)
OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing).联机分析处理OLAP(On-Line Analytical ...
- 星型数据仓库olap工具kylin介绍
星型数据仓库olap工具kylin介绍 数据仓库是目前企业级BI分析的重要平台,尤其在互联网公司,每天都会产生数以百G的日志,如何从这些日志中发现数据的规律很重要. 数据仓库是数据分析的重要工具, 每 ...
- 完全使用一组 DSL 来操作 Grid 控件
最近尝试了一下将 XtraGrid 的初始化工作封装成内部 DSL,例如一个普通的基础数据的增删改查操作的代码会像下面这样: public partial class UserForm : XtraF ...
- 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)
几个月前就一直有博友关心DSL的问题,于是我想一想,我在gac.codeplex.com里面也创建了一些DSL,于是今天就来说一说这个事情. 创建DSL恐怕是很多人第一次设计一门语言的经历,很少有人一 ...
随机推荐
- 【JavaScript】论一个低配版Web实时通信库是如何实现的之二( EventSource篇)
前情提要 「 话说上回说到!那WebSocket大侠,巧借http之内力,破了敌阵的双工鸳鸯锁,终于突出重围. 然而玄难未了,此时web森林中飞出一只银头红缨枪,划破夜色. "莫非!?&qu ...
- Flink的JobManager启动(源码分析)
都知道Flink中的角色分为Jobmanager,TaskManger 在启动脚本里面已经找到了jobmanager的启动类org.apache.flink.runtime.entrypoint.St ...
- 缓存系列-Redis入门教程
Redis是什么? Redis (REmote DIctionary Server)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列,是一个高性能的key-valu ...
- python 12 生成器
目录 1. 生成器 yeild 2. 推导式 2.1 列表推导式: 2.2 生成器推导式: 2.3 字典推导式: 2.4 集合推导式: 3. 内置函数(一) 1. 生成器 yeild 生成器的本质就是 ...
- spring boot整合mybatis框架及增删改查(jsp视图)
工具:idea.SQLyog 版本:springboot1.5.9版本.mysql5.1.62 第一步:新建项目 第二步:整合依赖(pom.xml) <dependencies> < ...
- 计时器(CocosCreator)
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 在游戏中,经常会涉及到计时的功能,主要是倒计时.倒计时通常用在某项活动距离结束的剩余时间以及距离开始某项活动开始的时 ...
- Java基础之Comparable与Comparator
Java基础之Comparable与Comparator 一.前言: Java中实现对对象的排序一般情况下主要有以下两种实现方式(万物皆对象嘛): 对象所在的类实现Comparable 接口 定义比较 ...
- Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka
欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...
- 2019 Multi-University Training Contest 1
2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...
- 牛客暑假多校第二场 K carpet
题意:给你一个n*m的矩阵 ,每个位置都有一个字符并且都有一个值,现在需要找到一个p*q的子矩阵, 原来的矩阵可以由现在这个矩阵无限复制然后截取其中的一部分得到,并且要求 子矩阵里最大的值 * (p+ ...