数据仓库与大数据工程(从数据仓库到数据湖)
导读:企业数据指的是企业内部员工及其合作伙伴跨越不同部门、不同地点而共享,跨越不同大洲而传播的数据。这些数据对企业具有很高的价值,包括财务数据、业务数据、员工个人数据等,企业花费了大量时间和金钱来保证数据在各方面的安全和质量。
然而,所谓的企业数据从当前状态变得日渐陈旧,虽然以某种形式进行存储,但是难以进行分析和检索。这些数据有着重大的意义,企业需要有一个专门的地方来分析它,以挖掘各种潜在的商机,这就是数据湖产生的原因,也是本文主要探讨的问题。
作者:汤姆斯·约翰 潘卡·米斯拉
如需转载请联系华章科技
企业数据主要分为3大类,具体如下:
- 主数据(master data),指的是详细描述企业内部主要实体的数据。通过观察主数据,可以了解企业涉及的业务。这些数据通常由不同部门管理和掌握。其他类别的数据,如后文所述,需要利用主数据来产生价值。
- 事务数据(transaction data),指的是各种应用程序(内部或外部)在处理企业内的各种业务流程时产生的数据。事务数据也包括人员相关的数据,虽然某些时候并不属于业务数据,但这部分数据也非常重要。分析这部分数据,可以帮助企业优化业务。这些数据也依赖于主数据,并经常引用主数据。
- 分析数据(analytic data),实际上指的是来源于前两类数据的数据。这部分数据是对企业中的各种实体(主数据)的深入分析,同时结合事务数据,为企业提供积极的建议,经过必要的调研之后,这些建议可以被企业采纳。
前面已经解释过这些类型的数据对企业的重要性,大多数企业都有管理这几类数据的机制,通常叫作企业数据管理(Enterprise Data Management,EDM)。
图1-2显示了各种类型的企业数据以及它们是如何相互影响的。
▲图1-2 不同类型的企业数据
如图1-2所示,事务数据和分析数据都利用了主数据。分析数据也依赖于事务数据,并根据不同客户的需求进行有意义的分析。
01 企业数据管理组织具有能够精确定义数据、轻松集成数据和同时为内部应用和外部通信检索数据的能力。
——维基百科
EDM强调数据的精确性、粒度和含义,关注数据内容如何整合到业务应用程序中,以及数据如何从一个业务流程转移到另一个业务流程。
——维基百科
正如维基百科的定义中明确指出的那样,EDM是定义了企业数据如何存储、存储的位置以及使用哪些技术来存储和检索这类数据的一整套策略。
此类数据价值巨大,必须处于正确的控制下以保证安全,并且需要以明确的方式进行掌握和管理。EDM还定义了数据如何与内部和外部的应用程序进行通信。此外,数据交换的相关政策和流程也必须明确。
对企业来说实现EDM非常容易,但实际上却是困难重重。一个企业有多个部门,每个部门都产生数据;基于这些部门的重要性,它们所产生的数据与整个组织密切相关。
由于彼此处境不同,不同数据的所有者在EDM中有着不同的利益点,这会产生冲突,从而给企业带来危害。这就需要在EDM中制定各种政策和程序来明确数据的所有权。
02 企业中数据如何存放企业数据以原始数据格式、二进制文件(图片和视频)等形式存储,存放的位置可以是各种内部应用程序的持久化存储,也可以存放到外部的私有或公有的云平台中。首先,需要对数据类型进行划分。按照数据存放位置划分如下:
- 内联网(企业内部)
- 互联网(企业外部)
另一种方式是按照数据存储的格式划分,具体如下:
- 持久化存储引擎(RDBMS或者NoSQL)
- 传统的数据仓库(基于RDBMS、NoSQL等)
- 文件存储
下面进一步详细介绍这些数据类型。
1. 内联网(企业内部)
企业数据存放在自己的私有网络,即内联网中。
企业内部的各种应用程序也运行在私有网络中,并且只有指定的人员才能访问。因此,从这些应用程序获取的数据能以安全和私密的方式存储于企业内部。
这些应用产生的数据可能是员工数据,也可能是日常使用中产生的事务数据。
企业用来构建内联网的技术包括局域网(LAN)和广域网(WAN)。此外,企业内部还有多个应用平台可以使用,数据可以以结构化方式存储在不同的存储引擎中,例如,传统的RDBMS和NoSQL数据库。除了这些存储引擎,还有以各种文件形式存放的非结构化数据。
另外,大数据企业都有传统的数据仓库,用来存放清洗后的数据以备分析之用。
2. 互联网(企业外部)
大约从近10年开始,大多数企业都拥有自己的数据中心,几乎所有的企业数据都存放于此。伴随云计算的发展,企业开始把一些数据存放到私有数据中心以外的云平台上,加上健全的安全控制,未经授权的人根本接触不到这些数据。
采用云服务的方式能极大地降低企业的运营成本,这是云服务最大的优势。本文将进一步介绍这个领域,包括更细粒度的类别划分。
2.1 云托管业务应用程序
云计算供应商提供了各种服务,如SaaS、PaaS、IaaS等,企业可以把业务应用程序托管到云中,同样也能满足企业管理的需求。因此,许多企业选择把内部开发的应用程序托管到这些云计算提供商。
员工使用这些部署在云中的应用程序,进行日常的一些操作,这和操作部署在企业自有的数据中心中的应用没有区别。
2.2 第三方云计算方案
如今这么多公司把自身的应用/服务托管到云端,这些应用/服务用起来就跟部署在本地一样,但是企业不必考虑维护和管理应用/服务所需的基础架构。这些仅仅依赖云端环境的产品,最吸引企业的一点是它们的收费方式。
基于这个优点,企业倾向于选择这些云产品,同时也由于云产品的先天特点,企业现在也将数据(业务相关)存储在其他的云设施中,即使云提供商完全掌控了这些数据。
Google的BigQuery就是这样一款云服务软件,用户可以把数据导出到云服务中,然后运行这个软件来进行各种分析工作。
这类产品有一个优点,就是我们可以根据分析的结果来决定是否保留这些数据。云服务具有天然的可伸缩性(硬件层面随意扩展和收缩的能力),如果数据分析很复杂,可以临时申请性能强劲的服务器,分析结束之后又可以把服务器的配置恢复到此前的水平。
当前阶段,类似的解决方案仍在不断地涌现,本文不再一一罗列。
与SaaS的方式类似,云端还有很多业务应用程序也可以作为服务对外提供。Salesforce就是这样的一个例子。
本质上,Salesforce是一个客户关系管理(CRM)的解决方案,但是它还集成了很多其他特性。笔者在这里并不是想帮助推销Salesforce,但是希望介绍一些云端业务应用的重要特性。Salesforce将所有的客户信息汇总到一起,帮助企业从销售、业务分析和客户服务等几个维度来构建以用户为中心的商业模式。
因为部署在云端,Salesforce也带来了很多云端SaaS的特性。
随着云服务对企业的影响越来越大,现在大量企业把数据存储在互联网(云)上,同时,这些云服务要明确保护客户隐私和其他共同权益,以捍卫企业的商业目标。
2.3 社交数据(结构化与非结构化)
如今,企业的社交关系变得至关重要,即使企业的数据并没有存储在社交网站上,它仍然包含了丰富的信息,这些信息来自企业业务和其服务的真实客户。
用户在社交网站上留下各种评价和建议,企业可以利用这些数据重塑自己的业务和与用户互动的方式。
如果企业忽视此类信息,很可能会损害企业的声誉和品牌。现在企业非常重视社交网站,因为这些网站上即使没有企业的数据,也有客户的评价信息,在某种程度上,这些信息代表了客户对品牌的认知。
于是,我们倾向于将这部分数据归类为非企业用户提供的企业数据。在分析这类数据时,需要特别关注大数据的第4个V(见图1-3),即精准性。因为有些人会利用这个渠道,在与企业进行业务往来时,获得一些不正当的优势。
另一个对企业数据进行分类的方式是按数据最终的存储方式。
▲图1-3 大数据的4V
3. 数据持久化存储(RDBMS或者NoSQL)
无论是在企业内部(企业基础架构)还是在云服务中,数据通常都以结构化数据的方式存储在所谓的传统RDBMS或者新一代NoSQL持久化存储中。数据通过业务应用程序写入这些存储系统,绝大部分数据在本质上是不相关的,企业可以很容易理解这些数据。
数据存储在传统的RDBMS类存储系统中时,会遇到的一个常见的问题,即数据量超出了可接受的范围。在这种情况下,对数据进行分析将耗费大量的时间和精力。
因此,企业被迫将数据分拆为生产数据(数据可以被业务应用查询和使用)和非生产数据(从生产系统转移到另外的存储系统中的离线数据)。
由于这种拆分,数据分析通常跨越若干年,这种分析并不能覆盖到企业的全部业务因素。
举例来说,如果生产系统中有5年的销售数据,而非生产系统存储了15年的销售数据,那么用户在进行销售数据分析时,只能查看过去5年的数据。可能存在周期刚好为5年的变化趋势,只有对20年的销售数据进行分析才能发现。
大多数时候,由于RDBMS的局限,存储和分析海量数据是不可能的。即使勉力为之,这种分析也十分耗时,也不能给分析师提供足够的灵活性。这样一来,分析师只能进行有限的分析,如果企业正在通过这些数据来调整业务流程,那么可能会给企业带来大麻烦。
新一代NoSQL(该领域中不同的数据库具有不同的功能)让数据分析更灵活,同时存储数据的量也大大增加。这些存储满足了分析师们在性能以及其他某些方面的需求,但是在一些方面仍然存在不足。
即使数据存储在一个业务应用中,各种业务应用的数据并没有汇聚成一个单一的视图,而建设一个合适的数据湖能帮企业解决这种问题。
4. 传统的数据仓库
由于生产系统的业务应用获取的数据量巨大,几乎所有的时间里,生产系统的数据都与非生产系统分离。非生产系统的数据通常存储在不同的区域中,并保存在不同的数据存储系统(通常是RDBMS或者NoSQL)中,这种存储系统就是所谓的数据仓库。
通常来说,根据数据分析师的需求,数据会被相应地清洗和删除。删除部分数据会限制分析师能执行的分析的类别。大多数情况下,都会有隐藏的有价值的数据尚未进入数据仓库,这就会导致更多的分析,而企业可以基于这些分析来调整业务;然而,此类数据清理和删除可能会扼杀潜在的创新。因此这方面需要改进。
而数据湖使得分析师可以引入生产系统中的任意业务应用数据,并根据具体情况进行各种分析。
目前,构建这类数据仓库的方案是通过ETL(Extract,Transform,Load,即抽取、转换、加载),从生产系统的数据库提取数据并保存到数据仓库中。ETL流程会根据分析师的需求来清洗数据,而分析师会在数据仓库中进行各种分析。
5. 文件存储
业务应用程序在不断地变化,新的应用允许终端用户以各种格式获取数据,而不仅仅限于从键盘输入的格式化数据。
终端用户另一种输入数据的渠道是提交不同格式的文档。其中一些众所周知的格式如下:
- 文档(PDF、DOC、XLS等)
- 二进制
- 图片(JPG、PNG等)
- 音频(MP3、RAM、AC3)
- 视频(MP4、MPEG、MKV)
正如前文中介绍的那样,处理结构化数据本身就是一个大问题,现在又引入了非结构化数据的分析。但是,分析非结构化数据与分析结构化数据同等重要。通过构建数据湖,我们可以围绕数据湖引入新的技术,利用大数据领域最新和最好的技术,可以从非结构数据中挖掘到巨大价值。
除了各种文件格式的数据,有很多应用允许终端用户以语句的形式获取大量数据,这部分数据也需要分析。手动处理这些来自终端用户的评论数据是一项艰难的任务,在现代化的今天,需要的是自动化地解析这些评论,并了解用户的观点。同样,有很多这样的技术可以理解这些数据(如自由文本流),让企业能够正确地处理它。
举例来说,假如我们有一个获取企业建议的系统,每天能获取近1000条建议,由于该业务的天然属性,很难对这些建议进行过滤分析。
这种场景中,我们可以利用一些技术来对这些评论进行情感分析,然后根据这些分析工具给出的评分进行初步的过滤,再将筛选后的建议交给能够理解和利用这部分数据的人来处理。
03 企业现状
企业数据当前的状态可以总结为以下几点:
1. 传统DW(Data Warehouse)/BI(Business Intelligence)
- 使用ETL清洗来自生产业务应用的数据。
- 早于一定时间的数据会转移到另外的存储系统(如磁带)中,但是很难对这部分数据进行检索。
- 一些显著的缺陷:
- 数据仓库中保存的是清洗后的生产数据的子集;在数据仓库中添加任何数据元素都需要付出代价。
- 数据仓库中保存的是全量数据的一个子集,其余数据会转存到另外的持久存储系统中去。
- 通常分析速度较慢,即使对查询做了一定程度的优化。
2. 大数据孤岛
- 一些部门在建设大数据时采取了正确的措施。但是部门间通常不会互相协作,这些大数据平台就成了孤岛,并没有真正给企业带来价值。
- 一些显著的缺陷:
- 大数据平台的孤立性再次限制了分析师,使得分析师们无法跨部门整合和查询数据。
- 需要大量资金来构建、维护、管理这些数据孤岛,时间一长就难以为继。
3. 大量非连接应用
- 在企业内部和云服务中部署大量应用程序。
- 除了产生结构化数据,应用程序也产生非结构化数据。
- 一些显著的缺陷:
- 互相没有通信。
- 即使有通信,数据科学家们既不能有效地利用这些数据,也不能对企业进行有益的改进。
- 各个业务应用在多个方面重复使用各种技术。
这里并不是说投资构建数据湖是解决上述所有缺陷的“银弹”。但是这个方向一定是正确的,企业至少应该花时间去思考是否确实需要数据湖,如果答案是肯定的,就不要过多考虑,直接着手去构建。
构建数据湖是企业的一项战略级决策,在构建时需要所有相关人员的认可与支持,而且需要高管层投入精力关注这个项目。基于数据湖,企业一定能找到改进业务流程的方法。它能让高管人员更深入地了解业务,同时也能提升决策的成功率。
04 企业数字化转型
数字化转型指的是应用数字化技术,从根本上影响商业和社会的方方面面。
——infoworld.com
数字化转型(DX)是一个流行的行业术语,每个企业都毫不犹豫地跟随了这个趋势。这个术语指的是企业向以信息技术为核心转型。技术领域的投入是这项转型的一部分,但数据才是转型的关键。
近年来,企业越来越多地认识到数据和数据分析的重要性,这无疑让企业有了新思维。这种转型就是一种以数据为中心的实践。
作为商业转型的一部分,企业绝对应该把数据湖列入重点投入项目列表,所有部门都应该欣然将数据归集到数据湖来完成数据共享,而不能对它存有偏见。
- 企业转型之路
埃森哲互动曾经委托Forrester咨询公司进行过一项研究,该研究表明数字化转型的关键驱动力是提升盈利能力、客户满意度和产品迭代速度。
实际上,很多企业已经走上了数字化的转型之路。数字化转型不再是一句空话,很多企业正竭力转向把技术作为驱动力之一,而另一个驱动力,就是数据。
转型中的企业有明确的目标。当然,这些目标与它们所处的具体行业有关。但是有些目标是公共的,具体如下:
- 从根本上改善客户体验。
- 削减成本。
- 增加收入。
- 差异化竞争。
- 调整业务流程,反过来改善商业模式。
以下是转型目标举例,关于企业在该领域希望达到的目标,有一系列清晰的例子,部分如下:
- 能够对客户进行细分并提供个性化的产品。在恰当的时间向合适的客户推送广告。
- 引进更多的技术,减少体力劳动,企业实现全方位数字化。
- 结合社交信息和企业自身数据,为决策提供支持。
- 以更为量化的方式预测未来,并采取必要措施,提前做好预案。
- 以技术为重要载体实现业务全球化。
下文将详细介绍企业在数字化转型中希望实现的一个用例,其中数据是主要的贡献因素。
05 数据湖用例启示
数据在企业中的重要性已经显露无遗。当今企业所面临的问题是如何从这些数据中挖掘有用信息来优化自身的业务。
即便数据能够以某种方式汇聚到一起,也很难在合适的时间内处理数量如此巨大的数据。这时数据湖进入了人们的视野。华章科技此前的文章中曾全面而详尽地介绍数据湖到底是什么。下文将介绍一个以数据湖为中心的用例。
基于现代技术构建数据湖有很多优势,其中一些如下:
- 通过各种数据分析,企业能找到业务中重要的人员和流程,也能深入了解各类客户。
- 企业能在适度的时间范围内完成这些分析,而不用等待几周甚至几个月。
- 业务用户能快速分析数据,进而快速调整业务流程。
这个用例叫作单一客户视图(Single Customer View,SCV)。单一客户视图是业内众所周知的术语,它有很多种定义,下面是其中之一:
单一客户视图是组织或企业的客户数据的一种聚合的、一致的及全面的表示。
——维基百科
企业将客户数据保存在不同的业务应用中,这会导致不同程度的数据孤岛现象。该用例旨在将这些不同来源的数据整合到一起,提供给分析人员查看,从而创建一个包含所有数据的客户视图。通过这个视图,企业能对客户进行细分,进而向客户进行精准广告投放。
这个用例对企业的意义可以归纳为如下几点:
- 客户细分。
- 信息整合。
- 增进客户关系,避免客户流失。
- 更深入的分析等。
从概念上讲,图1-5中总结了我们计划实现的用例。结构化、半结构化和非结构化数据都被灌入数据湖。单一客户视图从数据湖中以整体性方式被导出。该用例会引入各类数据,也会详细描述各种类型的数据样本。之所以这样做,是因为这样可以充分利用数据湖,同时也更为接近真实情况。
图1-5中显示了数据湖从各种数据源(多样性),以不同的速度获取不同数量级的数据。更多地,这是一个概念性的抽象视图,本文篇幅有限,如需了解更详细的内容可阅读《企业数据湖》一书,你将会确切知道它具体指代的是什么。
▲图1-5 SCV数据湖用例的概念视图
关于作者:汤姆斯·约翰(Tomcy John)是一名企业级Java技术专家,拥有工学学士学位,并且有超过14年多行业的开发经验。
潘卡·米斯拉(Pankaj Misra)是一名技术传播者,拥有工程学士学位,并且有超过16年跨多个业务领域的技术经验。
本文摘编自《企业数据湖》,经出版方授权发布。
延伸阅读《企业数据湖》
推荐语:从软件工程师、架构师角度出发,手把手教企你为业构建自己的数据湖。“数据湖”已经成为大数据行业的一个重要术语,它是数据科学家们获得有意义的洞察力的平台,这些洞察力可以被企业用来重新定义或改变它们的运营方式。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com