当前数据架构的挑战
大数据技术现在已经不算热门词汇了,在这个数据驱动的时代,数据驱动一直在不断改变我们的生活和工作方式,比如Google、Amazon等这些大公司拥有大量的用户数据,利用大数据技术对这些数据存储、计算、管理、应用,在这个变革中占据优势。国内不少公司也不甘落后,纷纷搭建了自己的大数据平台、数据仓库,那在搭建大数据平台的挑战是啥咧?和传统数仓的区别在哪?
数据仓库本质上是将各个TP系统或者应用系统产生的数据汇集到一起,进行统一的组织和存储。它解决了多主题域、跨越长时间周期数据的存储,为这些历史数据的分析从而进行商务决策提供了可能。但是数据仓库大多是对结构化的数据进行存储和处理。而对于其它类型的数据比如非结构化数据,比如图像、文档、音频等,数据仓库因为其设计定位就显得力不从心,为此需要将这些数据转储到大数据平台中。正是因此数据仓库和大数据平台的定位不同,前者是面向规整的结构化数据的基于SQL快速查询和分析,开放性不足,而后者则是为不同类型的数据提供多种计算能力,提高延时相对较高的查询和分析能力。为了兼顾不同业务场景的需求,经常出现数据仓库和大数据平台之间通过ETL进行数据转移,比如通过大数据平台将非结构化转为结构化后,将数据同步到大数据仓库进行进一步的业务价值发现。而引入ETL过程一方面增加了bug的风险,其次也导致大数据平台和数据仓库数据的不一致性。
什么是数据湖
不少公司都宣称自己基于hadoop建了数据湖,诚然,hadoop凭借其丰富的计算引擎,可以解决数据存储、计算,然而因为缺乏有效的数据组织,导致数据利用率很低,基本上只能在技术部门或者某个团队内才能使用起来。那么真正意义上的数据湖是咋样子的咧?数据湖可以简单理解就是,利用大数据技术提供数据自助服务的解决方案,要建好数据湖需满足3个条件:
- 高性价比的存储和计算能力,可以存储各类数据类型,并且提供丰富的计算引擎来分析这些数据。
- 数据易获取能力,这个指标决定数据是否可以被轻易地理解以及使用,它要求我们的数据被以业务用户视角进行组织。
- 数据访问能力,根据合理的数据访问策略,向不同需求的用户提供数据需求。
数据湖的发展阶段
为了更好理解数据湖,先了解下数据湖的发展阶段
- 数据水洼
数据水洼指的是有特定种类、少量的数据被特定的场景使用,之所以出现数据隔离,主要是这个阶段是业务快速发展时候,业务项目根据自己的需要,通过一些文本ETL或标准的ETL从其它地方同步加载过来的数据,看起来很像是数仓中的数据集市,只不过数据水洼是通过大数据技术构建的数据集市,可以说这个阶段可能是目前大部分公司所处的位置。 - 数据池
数据池是由多个数据水洼构成,相比数据水洼,其数据在广度和开放度上都有了明确的提升,通过大数据技术搭建数据仓库,有效解决传统数仓带来的昂贵的存储成本,当然随之而来的代价就是,失去了传统数仓提供的轻量级快速查询、精细调优等优势。尽管大数据平台在某些大查询可能表现更好,但其复杂的大数据技术栈且缺乏灵活性,使其不受数据分析师待见。再加上目前在数据湖上的数据没有较好的的数据组织,导致原始数据没法得到利用。简单而言,数据池为现有的数据仓库和数据集市提供了一种成本更低、可扩展性更强的技术替代方案。 - 数据湖
数据湖相比数据池,体现在除了治理有业务价值的数据,还会治理可能存在业务价值的未知数据,从而达到如下目标:
- 自助服务:用户可以不借助IT部门使用数据。
- 数据规划: 数据湖的数据不仅是项目现已用到的数据,还需要组织暂未使用到的数据。
如何构建数据湖
如何构建数据湖是个很大的话题,实践的细节也很多,目前我们也在探索中,只能说先简单说下我们目前的大致思路:
- 选择技术路线
需要结合目前公司的技术路线,选定基于什么技术栈来构建我们的数据湖,这个技术方案应该是有以下的特点:
(1) 大容量
这个就不用再赘述了,大容量是数据湖的必备条件,这也意味着平台需要支持横向扩展。
(2)低成本
因为有大容量存储的需求,低价存储是实实在在的推动因素,让我们有更大的几率说服高层领导同意我们的计划。
(3)丰富的计算引擎
大数据时代下,面对纷繁多样的数据类型以及复杂多变的业务场景,只有提供多种计算引擎,才能满足用户需求。
目前比较常见的技术解决方案就是Hadoop。 -
规划数据湖的区域
数据湖和数据池最大的区别就是对数据有更强的治理,数据治理应该反应数据用途以及用户群体的需求。根据需要大致可以拆分为如下几个主要区域,当然这个可以根据自己的需要进行区域的拆解,其实可以按照数据仓库的数据分层概念一一对应,越是偏向应用层,数据的整合程度越高,数据的专有性越高。
- 根据典型业务设计自助服务
创建数据资产的目录,设置好相应的数据访问权限,其重还包括提供一些便利的工具比如BI工具给用户使用。当然这个部分可扩展的地方比较多,也是比较难的地方。
考虑到篇幅,本文内容先到此为止,如有理解偏差请大家指正。