谈谈”取数”的那些事儿

标签: 大数据平台 数据仓库/数据库 数据仓库 | 发表时间:2017-08-03 18:01 | 作者:[email protected]
出处:http://lxw1234.com

一个公司的业务运营,不论规模大小,什么行业,都离不开数据的支撑。既然要数据,那么就得取数,谁来取数,怎么取?可能是一个销售人员在用Excel取,可能是一个DBA从生产数据库中查,也可能是一个数据开发人员写SQL或者写程序从数据仓库中取。

bi

作为一个多年从事数据相关的开发者,深受“临时数据提取”之苦,自己也是用尽十八般武艺,目的就是想尽可能的解决取数难、取数慢的问题。在此总结一下多年来对于取数的一些方法(更多是针对公司有自己的数据团队),大概包含以下几个方面:

  • 固定报表;
  • OLAP系统;
  • 自助分析系统;
  • 自助取数系统;
  • 临时数据提取需求;

固定报表

固定报表是最常见、最简单的取数方式。通常是需求方在经过对数据调研之后,形成固定的数据报表需求,然后提给数据开发团队,由数据开发团队安排资源实施完成。报表形成后,定期更新数据,报表一般通过WEB界面(自研或者使用开源)来呈现,有些则是通过邮件(Excel)方式每天定时发送。

bi

OLAP系统

然而需求方的数据需求并不总是固定格式的,他们希望从所有可能的维度去探索数据,因为很多时候,他们自己一开始也不知道最终想要的数据。这时候,依靠固定报表显然无法满足需求。

OLAP系统开始发挥他们的长处,数据开发团队依据业务和数据,在OLAP系统中设计相应的CUBE,定期更新,而需求方则可以在OLAP系统中,基于设计好的CUBE,自己选择需要查询的维度、指标、条件等等,进行探索分析查询。

bi

一个比较好的OLAP系统需要依赖以下方面:规整的数据仓库模型(事实表、维度表),不错的OLAP引擎,Nice的OLAP前端工具。

自助分析系统

为了进一步减少数据开发的工作量,让需求方能更加自助和自主的去完成一些取数,我们开发了自助分析系统( http://lxw1234.com/archives/2016/12/819.htm)。用户可以自己上传Excel、文本,接入数据仓库数据,接入自己数据库数据,自助建模(相当于定义Cube),然后来探索分析数据。

另外,该系统也适用于那些没有数据开发团队的小公司。

自助取数系统

慢慢的,又遇到问题了。OLAP系统和自助分析系统,都需要定义CUBE,而CUBE对数据模型(事实表,维度表)有一定的要求。对于一些数据需求,很难固化成数据模型去支持查询。

刚开始,直接提供SQL接口让需求方去提交SQL去查,但问题是他们不太会SQL,即使会,提交过来的SQL执行性能很有问题。因此,我想增加一种功能,让需求方只去操作界面,后台根据界面操作,转换成SQL去执行。这个问题看似简单,但是我想做的更灵活简单一些。

bi

数据开发人员去配置一个自助取数模板,这个模板核心由一段SQL和一些变量组成。

bi

变量有三种类型:维度、指标和常量。

bi

数据开发人员定义好模板后,需求方可以在自助取数任务页面使用模板,提交取数任务。

bi

在取数任务页面,常量是必填字段,维度和指标可以随意组合选择,也可以增加过滤条件。选择好后,由后台根据任务条件,替换模板中的变量,生成SQL,产生结果供下载。

bi

这个过程,更像是一个动态虚拟CUBE,虽然离线运行SQL并生成结果需要一段时间,但灵活性更好,也收到了比较好的效果。

临时数据提取需求

尽管为了满足取数需求,减少数据开发工作量,我们做了上面很多的努力,但仍然有小部分的需求,需要由数据开发人员来完成。


 

其实依靠平台化、系统化、自动化去解决80-90%的数据需求,已经非常不错了。

如果觉得本博客对您有帮助,请 赞助作者

转载请注明: lxw的大数据田地 » 谈谈”取数”的那些事儿

相关 [大数据平台 数据仓库/数据库 数据仓库 ] 推荐:

日志实时收集之FileBeat+Kafka

- - lxw的大数据田地
之前,我们的某一个业务用于实时日志收集处理的架构大概是这样的:. 在日志的产生端(LogServer服务器),都部署了FlumeAgent,实时监控产生的日志,然后发送至Kafka. 经过观察,每一个FlumeAgent都占用了较大的系统资源(至少会占用一颗CPU 50%以上的资源). 而另外一个业务,LogServer压力大,CPU资源尤其紧张,如果要实时收集分析日志,那么就需要一个更轻量级、占用资源更少的日志收集框架,于是我试用了一下Filebeat.

大规模集群下使用P2P技术软件(Murder)分发大文件

- - lxw的大数据田地
一般情况下,在运维多台服务器的时候,使用Ansible来完成文件的分发和命令的执行. 但如果运维的机器数量多,而且内网带宽有限的情况下,比如,需要向500台机器分发一个1G大小的升级包,这时候如果使用Ansible直接分发,那么肯定会引起带宽占满,导致SSH链接超时,Ansible执行卡死,分发任务执行失败.

关于Redis的数据清理

- - lxw的大数据田地
我们数据平台中有使用Redis来给线上提供低延时(20毫秒以内)的高并发读写请求,其中最大的Redis使用了阿里云的Redis集群(256G),存储的记录超过10亿,Key的有效期设置为15天,每天写入的记录大概5000万左右,QPS大概在6万左右. 由于过期Key的产生速度大于Redis自动清理的速度,因此在Redis中会有大量过期Key未被及时清理.

数据仓库

- Ran - Linux@SOHU
翻译:马少兵、曾怀东、朱翊然、林业. 尽管服务器存储、处理能力得到有效的提高,以及服务器价格的降低,让人们能够负担起大量的服务器,但是商业软件应用和监控工具快速的增加,还是使得人们被大量的数据所困扰. 在数据仓库领域中的许多系统管理员、应用开发者,以及初级数据库管理员发现,他们正在处理“海量数据”-不管你准备与否-都会有好多不熟悉的术语,概念或工具.

谈谈”取数”的那些事儿

- - lxw的大数据田地
一个公司的业务运营,不论规模大小,什么行业,都离不开数据的支撑. 既然要数据,那么就得取数,谁来取数,怎么取. 可能是一个销售人员在用Excel取,可能是一个DBA从生产数据库中查,也可能是一个数据开发人员写SQL或者写程序从数据仓库中取. 作为一个多年从事数据相关的开发者,深受“临时数据提取”之苦,自己也是用尽十八般武艺,目的就是想尽可能的解决取数难、取数慢的问题.

实时流计算、Spark Streaming、Kafka、Redis、Exactly-once、实时去重

- - lxw的大数据田地
本文想记录和表达的东西挺多的,一时想不到什么好的标题,所以就用上面的关键字作为标题了. 在实时流式计算中,最重要的是在任何情况下,消息不重复、不丢失,即Exactly-once. 本文以Kafka–>Spark Streaming–>Redis为例,一方面说明一下如何做到Exactly-once,另一方面说明一下我是如何计算实时去重指标的.

从定制到开放,四维图新 MineData 大数据平台的又一年

- - 爱范儿
「数据要盘活才有新的价值,数据要跨界才有新的故事」,在四维图新发展了一年 MineData 大数据平台后,四维图新高级副总裁、世纪高通总经理梁永杰得到了这样的感悟. 时隔一年,MineData 2.0 正式发布,在过去的一年里,MineData 位置大数据平台横跨了很多个行业,已经在交警、公安、规划、电信、保险、物流、车厂等领域开展了很多项目.

漫谈大数据平台安全风险与建设

- - FreeBuf互联网安全新媒体平台
上篇文章【 漫谈大数据平台架构】大家应该对大数据平台有了一个整体架构上的理解和认识,作为姊妹篇,本篇着重讲解大数据平台安全风险与建设. 大数据平台安全伴随着大数据平台而生. 随着互联网和大数据应用的普及,新闻头条上发布的数据泄露、滥用、诈骗层出不穷,引发了一系列发人深思的社会事件和问题. 本文以大数据发展面临的安全挑战开篇.

数据仓库概念

- - 互联网 - ITeye博客
数据仓库:是一个数据库环境,它提供用户用于决策支持的当前和历史数据,这些数据在传统的数据库中不方便得到. 特点:面向主题,集成的,相对稳定的,反应历史变化的. 组成:数据仓库的数据库,数据抽取工具,元数据,访问工具,数据集市,数据仓库管理,信息发布系统. 数据挖掘:就是从大量数据中获取有效的,新颖的,潜在有用的,最终可理解的模式的过程.

大数据仓库-kudu

- - 数据库 - ITeye博客
数据仓库里面存储引擎是非常重要的,存储引擎的好坏,基本决定了整个数仓的基础. cloudera公司最近发布了一个kudu存储引擎. 按照cloudera的想法,kudu的出现是为了解决,hbase,parquet不能兼顾分析和更新的需求,所以需要一个新的存储引擎可以同时支持高吞吐的分析应用以及少量更新的应用.