1. 商业智能(BI)行业整体概况

商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、联机分析处理技术(OLAP)、数据挖掘和数据展现技术(报表、可视化)进行数据分析以实现商业价值。
商业智能的概念在1996年最早由Gartner提出,Gartner将商业智能定义为:商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。
追究到应用层面,BI经历了四个发展阶段:
image.png

  1. Excel报表:在这个阶段催生了一个职业群体就是“表哥表妹”,他们每天都要从公司不同的ERP、CRM、财务系统中导出大量数据,再将多个表格用vlookup和sumif进行关联计算,最后通过把可视化图表截图放到PPT里进行日报和周报汇报。而至于领导到底会不会看,他们也不关心,因为无力关心。
  2. 报表系统:也是传统报表的升级版,可以直接对接某个业务系统的数据源,对于数据的响应速度比Excel明显提升,已经可以支持权限管理等,但还是偏向于数据汇报,很难辅助决策。
  3. 传统BI:首先可以对接多个系统的数据源,将所有数据整合到一个平台中进行全局分析。其次就是支持实时数据展示,分析维度和深度也远远强于报表系统,支持下钻、联动等数据交互。最后在数据承载量和反应速度上具有明显优势,不仅是汇报工具,更能够辅助决策。
  4. 智能BI:和传统BI一样都是支撑决策,但是用户使用层面强调低代码(或零代码)开发、无缝对接、灵活部署,比如用观远Smart ETL托拉拽进可以做分析看板,无需重新建模,赋能普通业务人员做数据分析的能力,让数据员有更多时间可以专注如何将分析与业务结合。并且,还可以借助AI算法的能力构建基于未来的分析模型,比如销售预测、智能排课等。

image.png
观远BI的能力图谱

2. OLAP数据分析

OLAP分析是BI系统内最为常见也最不可或缺的组成部分。可以说任何BI产品没有OLAP分析能力,就不是一个完整的BI产品。可能只是一个报表工具,或者一个数据可视化工具,因为缺少了核心的数据分析能力。
当今的数据处理大致可以分成两大类:联机事务处理OLTP(On-Line Transaction Processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLAP领域技术发展至今方兴未艾,分析型数据库百花齐放。然而,看似手上拥有很多筹码的架构师们,有时候却面临无牌可打的窘境,这又是为何呢?为了回答这个问题,我们需要重温一下什么是OLAP,以及实现OLAP的几种常见思路。
之前说过,OLAP名为联机分析,又可以称为多维分析,是由关系型数据库之父埃德加·科德(Edgar Frank Codd)于1993年提出的概念。顾名思义,它指的是通过多种不同的维度审视数据,进行深层次分析。维度可以看作观察数据的一种视角,例如人类能看到的世界是三维的,它包含长、宽、高三个维度。直接一点理解,维度就好比是一张数据表的字段,而多维分析则是基于这些字段进行聚合查询。
那么多维分析通常都包含哪些基本操作呢?为了更好地理解多维分析的概念,可以使用一个立方体的图像具象化操作,如图1-1所示,对于一张销售明细表,数据立方体可以进行如下操作。
下钻:从高层次向低层次明细数据穿透。例如从“省”下钻到“市”,从“湖北省”穿透到“武汉”和“宜昌”。
上卷:和下钻相反,从低层次向高层次汇聚。例如从“市”汇聚成“省”,将“武汉”“宜昌”汇聚成“湖北”。
切片:观察立方体的一层,将一个或多个维度设为单个固定值,然后观察剩余的维度,例如将商品维度固定为“足球”。
切块:与切片类似,只是将单个固定值变成多个值。例如将商品维度固定成“足球”“篮球”和“乒乓球”。
旋转:旋转立方体的一面,如果要将数据映射到一张二维表,那么就要进行旋转,这就等同于行列置换。
为了实现上述这些操作,将常见的OLAP架构大致分成三类。

2.1 ROLAP

第一类架构称为ROLAP(Relational OLAP,关系型OLAP),典型代表ClickHouse
ROLAP,顾名思义,它直接使用关系模型构建,数据模型常使用星型模型或者雪花模型。这是最先能够想到,也是最为直接的实现方法。因为OLAP概念在最初提出的时候,就是建立在关系型数据库之上的。多维分析的操作,可以直接转换成SQL查询。例如,通过上卷操作查看省份的销售额,就可以转换成类似下面的SQL语句:
SELECT SUM(价格)FROM 销售数据表 GROUP BY 省
图片1.jpg
但是这种架构对数据的实时处理能力要求很高。试想一下,如果对一张存有上亿行数据的数据表同时执行数十个字段的GROUP BY查询,将会发生什么事情?

2.1 MOLAP

第二类架构称为MOLAP(Multidimensional OLAP,多维型OLAP),典型代表Kylin。它的出现是为了缓解ROLAP性能问题。MOLAP使用多维数组的形式保存数据,其核心思想是借助预先聚合结果,使用空间换取时间的形式最终提升查询性能。也就是说,用更多的存储空间换得查询时间的减少。其具体的实现方式是依托立方体模型的概念。首先,对需要分析的数据进行建模,框定需要分析的维度字段;然后,通过预处理的形式,对各种维度进行组合并事先聚合;最后,将聚合结果以某种索引或者缓存的形式保存起来(通常只保留聚合后的结果,不存储明细数据)。这样一来,在随后的查询过程中,就可以直接利用结果返回数据。但是这种架构也并不完美。维度预处理可能会导致数据的膨胀。这里可以做一次简单的计算,以图1-1中所示的销售明细表为例。如果数据立方体包含了5个维度(字段),那么维度组合的方式则有25(2n,n=维度个数)个。例如,省和市两个维度的组合就有<湖北,武汉>、<湖北、宜昌>、<武汉、湖北>、<宜昌、湖北>等。可想而知,当维度数据基数较高的时候,(高基数意味着重复相同的数据少。)其立方体预聚合后的数据量可能会达到10到20倍的膨胀。一张千万级别的数据表,就有可能膨胀到亿级别的体量。人们意识到这个问题之后,虽然也实现了一些能够降低膨胀率的优化手段,但并不能完全避免。另外,由于使用了预处理的形式,数据立方体会有一定的滞后性,不能实时进行数据分析。而且,立方体只保留了聚合后的结果数据,导致无法查询明细数据。
第三类架构称为HOLAP(Hybrid OLAP,混合架构的OLAP)。这种思路可以理解成ROLAP和MOLAP两者的集成。这里不再展开,我们重点关注ROLAP和MOLAP。

3. 企业大数据架构体系

企业大数据架构体系(有些企业也成为数据中台架构体系),一般分为三层:

  • 底层为大数据平台。大数据平台承载了企业海量数据的汇聚、整合、加工、存储、挖掘的能力,同时需要向上层数据应用提供多维分析、搜索查询等数据服务能力。
  • 上层为数据应用。常见的数据应用包含固定报表、OLAP多维分析、自助式分析系统、数据大屏、用户行为分析系统(用户画像或CDP)、AB Testing系统、业务应用系统等。
  • 中间为数据资产管理。数据资产管理对上支持以价值挖掘和业务赋能为导向的数据应用开发,对下依托大数据平台实现数据全生命周期的管理。主要包含数据标准、数据模型、元数据管理、主数据管理、数据质量、数据安全、数据共享、数据生命周期管理等模块。

BI及大数据行业知识 - 图4

3.1 大数据平台

Hadoop

说到大数据平台,逃不开的就是Hadoop。Hadoop作为实际意义上大数据平台的代名词,是一个由Apache基金会所开发的分布式系统基础架构,一个能够对大量数据进行分布式处理的软件框架。 它可以用一种可靠、高效、可伸缩的方式进行数据处理,让用户可以在不了解分布式底层细节的情况下,开发分布式程序。
image.png
Hadoop生态组件介绍,详见:https://www.yuque.com/yanlingang/lppus5/myq86x
Hadoop的核心为HDFS(分布式文件系统)和MapReduce(离线计算框架)。简单来说,HDFS就是将要储存的文件分散在不同的硬盘上,并记录他们的位置,而MapReduce就是将计算任务分配给多个计算单元,下面针对这两个核心再做进一步的说明。另外,Hadoop还需要Yarn来做整体的资源管理调度。
HDFS
HDFS已经成为现在大数据的储存标准,他适合储存一次写入,多次读取的数据,并且他有自动检错、快速回复数据的功能,能够避免数据因为硬盘损坏而丢失的危险。
HDFS是由DataNode和NameNode组成的,DataNode负责储存数据,而NameNode负责管理数据,一个NameNode对应多个DataNode,NameNode记录着每个DataNode储存的数据内容,并曝露给上层系统调用,也会根据上层的指令对DataNode进行增、删、复制。
MapReduce
MapReduce是将计算任务分配给数据就近的处理节点,进行完运算后再合并导入结果,能很好的去进行大量数据的调取,但是延时较高,不适合处理实时流数据。
MapReduce可以分为Map和Reduce两个处理步骤。首先Map将用户输入的指令解析出一个个的Key/Value,然后再将转化成一组新的KV值,将原本的任务拆解成小的而且是临近数据的,并且确保这些运算任务彼此不会影响。而Reduce则是将这些运算的结果汇总起来,将结果写入。

另外YARN和Zookeepr都是用来管理的,YARN是面对计算资源的管理,而Zookeeper是面对服务器集群的管理。
YARN:资源管理框架,用来管理和调度CPU、内存的资源,避免所有的计算资源被某些任务大量占用,有点像是云管理平台可以创造不同的容器和虚拟机,并将这些硬件资源按用户的意愿分配给计算任务。
Zookeeper:集用来做群管理,跟微服务里的功能相似,可以在集群里面选出一个leader,并保证集群里面服务器的一致性、可靠性和实时性。

其他Hadoop常用组件还包括:
Hive
Hive是将Hadoop包装成使用简单的软件,用户可以用比较熟悉的SQL语言来调取数据,也就是说,Hive其实就是将Hadoop包装成MySQL。Hive适合使用在对实时性要求不高的结构化数据处理。像是每天、每周用户的登录次数、登录时间统计;每周用户增长比例之类的BI应用。
HBase
HBase是用来储存和查询非结构化和半结构化数据的工具,利用row key的方式来访问数据。HBase适合处理大量的非结构化数据,例如图片、音频、视频等,在训练机器学习时,可以快速的透过标签将相对应的数据全部调出。
Storm
前面两个都是用来处理非实时的数据,对于某些讲求高实时性(毫秒级)的应用,就需要使用Storm。Storm也是具有容错和分布式计算的特性,架构为master-slave,可横向扩充多节点进行处理,每个节点每秒可以处理上百万条记录。可用在金融领域的风控上。
Impala
Impala和Hive的相似度很高,最大的不同是Impala使用了基于MPP的SQL查询,实时性比MapReduce好很多,但是无法像Hive一样可以处理大量的数据。Impala提供了快速轻量查询的功能,方便开发人员快速的查询新产生的数据。

目前为止,市场上受认可的Hadoop商业发行版的提供者主要有Cloudera,Hortonworks和MapR:

  • Cloudera:最成型的Hadoop发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具。开发并贡献了可实时处理大数据的Impala项目。我们常听见的CDH就是Cloudera的Hadoop发行版。
  • Hortonworks:使用了100%开源Apache Hadoop提供商。开发了很多增强特性并提交至核心主干,这使得Hadoop能够在包括Windows Server和Azure在内平台上本地运行。
  • MapR:获取更好的性能和易用性而支持本地Unix文件系统而不是HDFS。提供诸如快照、镜像或有状态的故障恢复等高可用性特性。领导着Apache Drill项目,是Google的Dremel的开源实现,目的是执行类似SQL的查询以提供实时处理。

关于不同版本的区别详见:https://blog.csdn.net/akityou/article/details/62423003

其他大数据平台

其他大数据平台主要以各大公有云厂商推出的计算存储服务框架为主。例如,阿里的MaxCompute,其主要的生态组件实际上也还是借鉴或者使用了Hadoop生态的内容,并在此基础上做了大量的封装和面向应用的改造。比如,MaxCompute主要提供了兼容PostgreSQL的SQL语法。
而MaxCompute之上,阿里提供了Dataworks作为数据集成、数据开发调试、作业编排及运维、元数据管理、数据质量管理、数据API服务等等功能的大数据开发IDE套件。
image.png

其他常见大数据技术

大数据发展至今,光Hadoop生态内的能力已经无法满足各式各样的数据组织、管理、计算、分析等场景的要求。于是,大数据行业内不断涌现出新的技术和解决方案实践,用来解决不同的问题。
具体技术介绍可以详见以下文档:https://www.yuque.com/yanlingang/lppus5/dly8uh#HCPbU
这里我们对一些常见的大数据技术进行大致地分类,以及阐述他们各自解决的问题。
大数据技术.xmind

3.2 数据资产管理

数据资产(Data Asset)是指由企业拥有或者控制的,能够为企业 带来未来经济利益的,以物理或电子的方式记录的数据资源,如文件 资料、电子数据等。在企业中,并非所有的数据都构成数据资产,数据资产是能够为企业产生价值的数据资源。
数据资产管理(DAM,Data Asset Management)是指规划、控制和提供数据及信息资产的一组业务职能,包括开发、执行和监督有关数据的计划、政策、方案、项目、流程、方法和程序,从而控制、保护、交付和提高数据资产的价值。数据资产管理需要充分融合业务、 技术和管理,以确保数据资产保值增值。
数据资产管理体系架构包含 8 个管理职能和 5个保障 措施。管理职能是指落实数据资产管理的一系列具体行为,保障措施 是为了支持管理职能实现的一些辅助的组织架构和制度体系
image.png
数据资产管理体系架构
观远数据目前在数据资产管理这一层,主要是在数据开发平台上提供了元数据管理、数据质量管理、数据血缘、数据服务接口等部分能力,暂时没有单独的产品去支撑。未来可能在数据标准管理(指标管理系统)方面会有所深入。

3.3 数据应用

数据应用是数据价值体现的最终承载。按照数据中台的架构体系,数据应用层主要解决决策支持与创新应用两大类场景。常见的数据应用包括:

  • 固定报表
  • BI分析(仪表板、数据大屏、移动分析)
  • 客户洞察(用户行为分析、CDP、用户画像系统、精准营销等)
  • 业务中台
  • AI类业务应用