为什么需要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恐怕是很多人第一次设计一门语言的经历,很少有人一 ...
随机推荐
- cookie、session和application都是些什么神?——图文加案例,不怕你不会,就怕你不看
cookie.session和application都是些什么神? 前言: 一直想写一篇关于cookie和session的博客,由于种种原因,一直没有整理,这不,今天还就遇到问题了,之前虽然会,但是好 ...
- HTML页面仿WORD样式
公司要求不再浏览器中添加office插件的前提下.展示WORD文档中的内容要求一一对应.经过查询资料以及调整,得出如下相关资料: 1 标题样式: 目录 -- 宋体 小二 加粗 一级标题 -- 微软雅 ...
- Codeforces 1006F
题意略. 思路: 双向bfs. 如图,对于曼哈顿距离为5的地方来说,除去两端的位置,其他位置的状态不会超过曼哈顿距离为4的地方的状态的两倍. 所以,最大曼哈顿距离为n + m.最多的状态不过2 ^ ( ...
- 【Leetcode】【简单】【17. 整数反转】【JavaScript】
题目描述 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输 ...
- 模式匹配和正则表达式_python
模式匹配和正则表达式的学习 python实现 正则表达式 其对文字处理有着超高的效率 利用正则表达式可以实现"三步解决一个问题" 步骤 1.用 import re 导入正则表达式模 ...
- HDU5988 - 2016icpc青岛 - G - Coding Contest 费用流(利用对数化乘为加
HDU5988 题意: 有n个区域,每个区域有s个人,b份饭.现在告诉你每个区域间的有向路径,每条路有容量和损坏路径的概率.问如何走可以使得路径不被破坏的概率最小.第一个人走某条道路是百分百不会损坏道 ...
- hdu-6601 Keen On Everything But Triangle
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=6601 Description N sticks are arranged in a row, and ...
- acm未解之谜-洛谷P1109学生分组
把每一组的学生个数调度到一个给定区间范围内: 看了一圈题解,大佬都对原因避而不答: #include <iostream> #include <algorithm> using ...
- URAL-1982-Electrification Plan最小生成树或并查集
Electrification Plan 题意:在一个无向图中,给你几个源点,找出把所有点连接到源点后最小的消费: 可以利用并查集: 先用结构体把每个边存起来,再按照消费大小排序.之后从消费小的到大的 ...
- codeforce375div2-D. Lakes in Berland 搜索
Lakes in Berland 题意与解释:这道题就是求图中被围起来的点群,问最少去掉几个点,可以使得孤立的点群数目为K; 因为自己写的代码又长又had bugs. 我自己写的bfs,想着是先染色, ...