领读|解决方案介绍---数据平台的那些事(下)

关键词:数据分析、报表系统、数据平台、集算器

    当'智能’和'大数据’的压路机压过来的时候,要么你成为压路机的一部分,要么你就成为路的一部分。

数据平台的建设有哪些方案可以选择

如果用一句话回答的话,那就是:太多了。

简单的说可以分成了以下几类,相信也一定程度上覆盖了不少企业的需求了。

   一、常规数据仓库:概念不说了,既然是做数据这一行的,相信大家都比较清楚,不清楚的就找度娘吧。它的重点在于数据整合,同时也是对业务逻辑的一个梳理。虽然它也可以打包成saas(多维数据集)、cube(多维数据库)一类的东西来提升数据的读取性能,但是数据仓库的作用,更多的是为了解决企业的业务问题,而不仅仅是性能问题。这一点后面会详细介绍。

优点:

1、方案成熟,关于数据仓库的架构,不管是Inmon架构还是Kimball架构,都有着非常广泛的应用,而且相信能将这两种架构落地的人也不少。

2、实施简单,涉及的技术层面主要是仓库的建模以及ETL的处理,很多软件公司具备数据仓库的实施能力,实施难度的大小更多的取决于业务逻辑的复杂程度,而并非技术上的实现。

3、灵活性强,说这句话要有对应场景的,数据仓库的建设是透明的,如果需要,可以对仓库的模型、ETL逻辑进行修改,来满足变更的需求。同时对于上层的分析而言,通过Sql或者MDX对仓库数据的分析处理具备极强的灵活性。

缺点:

1、“实施周期长”,注意,我加了引号,对应下面的敏捷型数据集市,而且这点是相对的,实施周期的长与短要取决于业务逻辑的复杂性,时间是花在了业务逻辑的梳理,并非技术上的瓶颈。关于这点,后面会详细介绍。

2、数据的处理能力有限,这个有限,也是相对的,海量数据的处理它肯定不行,非关系型数据的处理它也不行,但是TB以下级别的数据,还是搞得定的(也取决于所采用的数据库系统),这个量级的数据,而相当一部分企业的数据,还是很难超过这个级别的。

   二、商业敏捷型数据集市:底层的数据产品与分析层绑定,使得应用层可以直接对底层数据产品中的数据进行拖拽式分析。这一类产品的出现,其初衷是为了对业务数据进行简单的、快速的整合,实现敏捷建模,并且大幅提升数据的处理速度。目前来看,这些产品都达到了以上的目的。但它的优缺点也比较明显。

优点:

1、部署简单,敏捷开发,这也是这类产品最大的优点,和数据仓库相比,实施周期要短的多。实际上它也没什么严格的实施的概念,因为这类产品只是针对需要分析的数据,进行局部的关联,只考虑眼前要解决的问题就够了,迭代的能力更强些。

2、与上层的分析工具结合较好,上层的分析工具接入这类数据产品后,可直接实现数据的图形化展示和olap分析。

3、对数据处理性能的提高,这类产品都对数据的分析性能做了处理,虽然方式不尽相同,有内存映射文件存储的,也有分布式架构、列数据存储的。但无疑都一定程度上提高了数据的处理性能。

缺点:

1、首先,它是要收费的。

2、无法处理复杂的业务逻辑,这只是一个工具,它无法解决业务问题。这类工具中自带简单的ETL功能,实现简单的数据处理和整合,而如果考虑到历史数据,考虑到整体的数据之间的逻辑和关系,它一定是解决不了的。

一个简单的例子,当某个表中,有两个字段,一个要保留历史数据,一个要更新历史数据,要怎样实现自动处理。有一个观念是需要清楚的,不能指望一款工具来解决业务问题。这种数据产品仅仅是对当前的业务数据进行简单的整合,第一,数据是局部的,第二,时间是当前的(其涵带的增量更新或者全量更新,是无法应对复杂的逻辑的,相信熟悉ETL的人都知道这个过程有多复杂)。当然,对于一些企业来说,可能需求只是对当前业务数据进行整合分析,那么这类产品就够了。

3、灵活性低,这个也是没法避免的,越是操作简单的工具,他的灵活性肯定受限,因为封装住了,产品是不透明的,常规的需求用起来非常方便,但是遇到复杂的,发现对他内部不了解,你也没法修改,只有寻求厂商解决的份。

从笔者的角度看,它是很难成为公司的数据中心的。

   三、MPP(大规模并行处理)架构的数据产品,以Greenplum为例

传统的主机计算模式在海量数据面前,显得很弱。造价非常昂贵,同时技术上也无法满足高性能的计算,SMP架构难于扩展,在独立主机的CPU计算和IO吞吐上,都没办法满足海量数据计算的需求。分布式存储和分布式计算正是解决这一问题的关键,不管是后面的MapReduce计算框架还是MPP计算框架,都是在这一背景下产生的。

Greenplum的数据库引擎是基于postgresql的,并且通过Interconnnect连接实现了对同一个集群中多个postgresql实例的高效协同和并行计算。同时,基于greenplum的数据平台建设,可以实现两个层面的处理,显而易见的一个是对数据处理性能的处理,greenplum数据库宣称支持50PB级海量数据的处理,对目前greenplum实际应用情况的了解,100TB级左右的数据,是非常轻松的。

另一个是数据仓库可以搭建在greenplum中,这一层面上也是对业务逻辑的梳理,对公司业务数据的整合。

优点:

1、海量数据的支持,大量成熟的应用案例,所以我想这一点是不用怀疑的。                          2、扩展性,据说可线性扩展到10000个节点,并且每增加一个节点,查询、加载性能都成线性增长。

3、易用性,不需要复杂的调优需求,并行处理由系统自动完成。依然是sql作为交语言,简单、灵活、强大。

4、高级功能,greenplum还研发了很多高级数据分析管理功能,例如外部表,还有Primary/Mirror镜像保护机制,行/列混合存储等。

5、稳定性,greenplum原本作为一个纯商业数据产品,具有很长的历史,其稳定性相比于其他产品以及敏捷性数据集市是更加有保障的。greenplum有非常多的应用案例,纳斯达克、纽约证券交易所、平安银行、建设银行、华为等都建立了基于greenplum的数据平台。其稳定性是可以从侧面验证的。

缺点:

1、本身来说,它的定位在olap领域,不擅长oltp交易系统。当然我们搭建公司的数据中心也不会是用来做交易系统的。

2、成本,两个方面的考虑,一是硬件成本,greenplum有其推荐的硬件规格,对内存、网卡都有要求。当然,在硬件选型上,需要达到一个平衡,要在性能、容量、成本等多方面考虑,毕竟不能一味的追求性能,把采购部门吓到吧。另一个是实施成本,这里主要是人了,基本的是greenplum的安装配置,再到greenplum中数据仓库的构建,都需要人和时间。

3、技术门槛,这里是相对于上一个敏捷型数据集市的,greenplum的门槛肯定是要高一点了。

    四、Hadoop分布式系统架构

关于Hadoop,已经火的要爆炸了,Greenplum的开源跟它也是脱不了关系的。有着高可靠性、高扩展性、高效性、高容错性的口碑。在互联网领域有非常广泛的运用,雅虎、facebook、百度、淘宝、京东等。Hadoop生态体系非常庞大,各公司基于Hadoop所实现的也不仅限于数据平台,也包括数据分析、机器学习、数据挖掘、实时系统等。

当企业数据规模达到一定的量级,我想Hadoop是各大企业的首选方案,到达这样一个层次的时候,我想企业所要解决的也不仅是性能问题,还会包括时效问题、更复杂的分析挖掘功能的实现等。非常典型的实时计算体系也与Hadoop这一生态体系有着紧密的联系。

近些年来Hadoop的易用性也有了很大的提升,Sql-on-Hadoop技术大量涌现,包括Hive、impala、spark-Sql等。尽管其处理方式不同,但普遍相比于原始基于文件的Mapreduce,不管是性能还是易用性,都是有所提高的。也因此对MPP产品的市场产生了压力。

对于企业构建数据平台来说,Hadoop的优势与劣势非常明显:它的大数据的处理能力、高可靠性、高容错性、开源性以及低成本(为什么说低成本,要处理同样规模的数据,换一个其他方案试试)。缺点也就是他的体系的复杂,技术门槛较高(能搞定Hadoop的公司规模一般都不小了)。

关于Hadoop的优缺点对于公司的数据平台选型来说,影响已经不大了。需要上Hadoop的时候,也没什么其它的方案好选择(要么太贵,要么不行),没到达这个数据量的时候,也没人愿意碰这东西。总之,不要为了大数据而大数据。

企业要怎样选择数据平台方案?

环境太复杂,至少要从下面这几个方面去考虑。

1、目的:什么样的目的?就是文中提到的三种视角(业务、系统、性能),或者是其中几个的组合。当然,要明确数据平台的建设目的,哪里是那么容易的,初衷与讨论后确认的目标或许是不一致的。

企业要搭建一个数据平台的初衷可能很简单,只是为了减轻业务系统的压力,将数据拉出来后再分析,如果目的真的就这么单纯,还真的没有必要大动干戈了。

如果是独立系统的话,直接将业务系统的数据库复制出来一份就好了;

如果是多系统,选型敏捷型的商业数据产品也够了,快速建模,直接用工具进去就能实现数据的可视化与OLAP分析。

但是,既然已经决定要将数据平台独立出来了,就不再多考虑一点吗?多个系统的数据,不趁机梳理整合一下?当前只有分析业务数据的需求,以后会不会考虑到历史数据呢?这种敏捷的方案能够支撑明年、后年的需求吗?

任何企业要搭建数据平台,都不是一件小事,多花一两个月实施你可能觉得累,多花一周两周的时间,认真的思考一下总可以的吧。

不能以战术上的勤奋,掩盖战略上的懒惰。

2、数据量:根据公司的数据规模选择合适的方案。

3、成本:包括时间成本和金钱成本,不必多说。但是这里有一个问题想提一下,发现很多企业,要么不上数据平台,一旦有了这样的计划,就恨不得马上把平台搭出来用起来,时间成本不肯花,这样的情况很容易考虑欠缺,也容易被数据实施方忽悠。

方案选择的建议,举几个场景,推荐一款轻量级计算引擎-集算器

集算器是一款专注于(半)结构化数据分析与处理的程序设计语言,面向应用程序员和数据分析员,比SQL、java、Perl/Python、R语言有更高的开发效率,特别适合业务规则复杂的多步骤运算,可通过简单代码实现多线程并行计算。

 场景A:要实现对业务数据的快速提取和分析,多个业务系统,没有达到海量数据,考虑历史数据,不需要依照业务逻辑对数据进行系统的梳理,这种情况下,可以考虑集算器,通过多源异构接入多个业务系统的数据,通过混合计算,二进制存储,实现多个业务系统的数据分析。

简单来讲,这种场景仅仅是在技术层面上,完成对数据的整合与提速,并没有从业务层面上对数据进行建模。他可以满足一定的分析需求,但是不能成为公司的数据中心。

       场景B:要搭建公司级的数据中心,打通各系统之间的数据。非常明显的,需要搭建一个数据仓库。这时就需要进一步考虑公司数据的量级了,如果是小数据量,TB级以下,那么在传统数据库中建这样一个数据仓库就可以了,如果数据量达到几十上百TB,或者可见的在未来几年内数据会达到这样一个规模,可以将传统数据仓库和集算器结合使用。

集算器支持多样数据源,集算器接口丰富,支持文件和关系型数据库等。集算器支持直接跨库跨源的混合计算,不论单源计算还是混合计算,集算器都提供了一致的计算语法。集算器也支持分布式计算,但集算器的独到之处,在于多线程计算和算法优化。基于自主可控的多线程计算,集算器比其他计算工具性能高10-100倍。基于新型离散数学理论,集算器对传统算法进行了大量优化,其计算性能超越传统数据库。对于半结构化计算和多源混算,集算器可直接支持,其中难度消弭无形,开发工作量因此大幅降低。对于真正的复杂业务逻辑,由于集算器基于新型离散数学理论而构建,其计算能力强于新SQL标准,并提供内存计算、外存计算、游标计算,能适应不同大小的数据计算。

这种场景应该是适用于大部分公司,对于大部分企业来说,数据量都不会PB级别,更多的是在TB级以下。

       场景C:公司数据爆发式增长,原有的数据平台无法承担海量数据的处理,那么就建议考虑Hadoop这种大数据平台了。它一定是公司的数据中心,这样一个角色,仓库是少不了的,可以将原来的仓库直接搬到Hive中去。

这种数据量比较大的情况要怎样呈现,因为Hive的性能较差,它的即席查询可以接集算器,集算器支持大数据常用的组件,如Hbase,Hive,Impala,spark,也可以接Greenplum,而Greenplum正好有它的外部表(也就是Greenplum创建一张表,表的特性叫做外部表,读取的内容是Hadoop的Hive里的),正好和Hadoop融合(当然也可以不用外部表)。

集算器有多源异构的数据接入能力,混合计算,内存计算,外存计算,提供了丰富的计算类库,能提供不同的数学计算能力。在这些地方,是Hadoop缺少的能力,集算器在Hadoop里定位为计算引擎,能接不同的组件,提供高性能的计算。

方案选型时可能会出现的误区

忽略业务的复杂性,要用工具来解决或者是绕开业务的逻辑。这个是最近遇到过的,客户要做报表平台,有三个业务系统的数据需要整合。但是急于变现,不想搭建传统的数据仓库,所以从敏捷型的BI工具中选型。

工具厂商对自己数据产品的描述,一般着重于他的快速实施、性能的优化、以及自带的基本ETL功能。这样容易给客户造成误区,就是通过这一产品可快速搭建出一个公司级别的数据中心,满足于顶层对数据的需求。

然而在后期突然意识到,工具所解决的,仅仅是在技术层面上简化了工具的使用的复杂性,把ETL和数据集市封装在一起,并且提高了数据的性能,但是并没有从业务层面上实现数据的建模,很多细节问题无法处理。

虽然敏捷开发非常诱人,如果业务系统简单,或者只需要分析当前状态的业务数据,不需要公司级的数据中心,那么确实是一个非常好的方案。然而这些问题还没有考虑清楚,对敏捷产品有了过高的期望,后面是会遇到些麻烦的。

最后总结一下,企业选择数据平台的方案,有着不同的原因,要合理的选型,既要充分的考虑搭建数据平台的目的,也要对各种方案有着充分的认识。

对于数据层面来说,还是倾向于一些灵活性很强的方案的,因为数据中心对于企业来说太重要了,更希望它是透明的,是可以被自己完全掌控的,这样才有能力实现对数据中心更加充分的利用。因为,不知道未来需要它去承担一个什么样的角色

备注:文中部分材料根据网络资料整理,有疑问请联系作者。

“历史文章阅读”

领读|解决方案介绍---数据平台的那些事(上)

领读|解决方案介绍---数据平台的那些事(中)

小说:《丹峰白露》相约每周五,持续更新ing...

丹峰白露(引子)

丹峰白露-第一章(上)

丹峰白露-第一章(下)

丹峰白露-第二章(1)

丹峰白露-第二章(2)

丹峰白露-第二章(3)

聚贤.堂近期招募信息

江湖招募之高级数据分析师

江湖招募之合作伙伴经理

江湖招募令-数据产品提供商

江湖招募令-性能及安全分析服务商

江湖招募令-润乾软件火热招聘进行中...

(0)

相关推荐