从数仓到数据中台,谈技术选型最优解 | 第四期图文直播文字回放

by June 2020-12-30

12月11日晚,智领云第四次社群图文技术直播如约而至。本次直播继续由智领云高级产品经理王龙飞就数字化运营不同阶段的介绍、数据中台魅力所在、数据中台技术选型参考、数据研发的实践以及数据研发趋势及关注点等开发者关心的话题,与社群内的技术小伙伴们进行了深入细致的探讨与交流。 

一、数字化运营的不同阶段

传统数据仓库,第一次明确了数据分析的应用场景应该用单独的解决方案去实现,不再依赖于业务的数据库,从而帮助企业更加了解用户的反应。随着大数据时代的来临,数据量剧增,业务发展迅速,数据仓库并不擅长于对实时数据、非结构化数据的处理,必须事先定义好分析内容和方向则成为其最大的局限。       

数据湖在提出之际便考虑解决数据仓库的思维,将原始数据按照类别进行存储,在各数据池中将数据转化为统一的可直接提取的格式,这种方式对大数据分析做出了极大贡献,也为企业带来多种能力,例如,实现数据的集中式管理,以及结合先进的数据科学与机器学习等技术,帮助企业构建更多优化后的运营模型。不过数据湖主要解决的是“看见数据”的问题,却没有解决“如何用数据”的问题。

 大数据平台则是以处理海量数据存储、计算及流数据实时计算等场景为主的一套基础设施,使用大数据平台,企业可以比竞争对手更快地作出数据驱动的决策,更快地推出适应客户需求的产品。但在建设中,硬件投资与软件开发投入量巨大,极大增加了研发的难度、调试部署的周期、运维的复杂度。除此之外,还经常由于架构的缺陷,数据应用开发运维的难度,多租户资源隔离的复杂度等原因造成数据孤岛,应用孤岛的问题。 不难发现,以上数据概念按顺序整体呈现从局部到全局,从后端到前台演变的趋势,这也反映出数据行业价值的转变。


二、传统大数据平台有哪些不足?

在数字化运营的当前阶段,大数据平台已经发展到了足够成熟的阶段。但是,数据如何能够更加安全、快速的被应用?又如何真正解决重复开发、数据标准不统一、数据孤岛等问题呢? 数据中台正是解决这些问题的关键。数据中台弥补了数据开发和应用开发之间,由于开发速度不匹配,出现的响应力跟不上的问题,也解决了重复开发、标准不统一、数据孤岛的问题,从而能够帮助企业快速的实现数字化转型。


三、数据中台为何有如此魅力


我们不妨来看看阿里是如何定义数据中台的——数据中台就是基于计算与存储底座,提供标准统一、可连接萃取的数据平台,包括数据采集与研发、数据连接与萃取、数据资产管理及统一数据服务,服务于上层业务。其三项核心能力分别为:OneModel负责统一数据构建及管理,OneID负责将核心商业要素资产化,OneService负责向上提供统一的数据服务。 

而智领云认为,数据中台的核心能力是数据能力的抽象、共享与复用,两者对数据中台的定义看似差异巨大,但仔细分析,阿里所定义的数据中台的核心能力正是智领云所定义的数据中台的结果。换言之,“抽象”是为了达成“OneModel”、“共享”则是为了“OneID”、“复用”才能让“OneService”更有意义。 

当然,无论是否建设数据中台,企业都迫切需要解决各部门数据重复开发,浪费存储与计算资源、数据标准不统一,数据使用成本高、业务数据孤岛、数据利用率低等问题。 

此时,建设数据中台不仅能够促使企业快速响应市场,比对手更加稳准狠的了解市场需求,快速生产出更适应用户需求的产品,达到在任何浪潮下都能比竞争对手先行一步的目的。同时,数据中台所强调的精细化管理与低成本的生产,更能为企业节省不少的开支。

 因此,数据中台为企业提供避免重复造轮子的创新方法,让资源得以复用,并站在全企业视角提供全局的数据能力,这些都会为数字化浪潮下的企业提供十足的火力。


四、数据仓库和数据湖有什么区别?


越来越多的企业正在扩大其数据仓库,借助数据湖使大数据真正成为自助服务。数据湖和数据仓库之间有八个基本区别,其中以下3点是非常关键的 

  • 流入其中的数据类型
  • 数据采集期间对数据进行了多少处理
  • 可以对此进行多少种不同类型的处理

但是,需要指明的是,数据仓库仍然很受欢迎,因为它是自90年代以来一直存在的成熟技术。它和企业之间是共生和盟友的关系。 业务分析师和终端用户可以在既定的成熟工具链配合下,从仪表盘或者其他数据阅读机制中获取不错的商业洞见。而且实际上,对于某些用例,数据仓库执行的很好,因为数据是结构化、已处理的,因此能够快速回答某些查询模式。        

五、数据中台技术选型参考 在搭建数据中台方面,不能为了建中台而建中台。企业更加正确的“数字化运营之路”应该是打造云原生数据运营管理平台。 从理论上,采用 Total Platform + Total Insight 的建设思路;从执行上,采取业务驱动的敏捷+ 按需迭代的策略;从实践上,一个能够破除数据孤岛,并实现中台能效的技术选型应该包含以下解决方案架构 

  • 应用云平台(PaaS)
    • 资源管理(Mesos)
    • 容器调度(Marathon,Kubernetes)
    • 容器服务生命周期管理
    • 容器定时任务调度
  • 容器化大数据平台
    • 存储引擎(MySQL,Hive,MongoDB,GlusterFS,HFDS…)
    • 计算引擎(MR,Spark,TensorFlow,Kafka)
    • 按需(动态)集成容器化组件(在符合企业运维标准下)
  • 数据集成开发平台
    • 数据采集
    • 数据治理
    • 数据开发
    • 数据探索
    • 数据共享
    • 数据服务
  • 数据资产运营平台
    • 数据应用元数据管理
    • 数据应用链路血缘管理
    • 数据应用搜索引擎
    • 数据应用资产管理

六、“现代数据流”介绍


这里从执行层面继续展开说明,如何做到业务驱动的敏捷+ 按需迭代的策略,产品的标准化(Total Platform + Total Insight)是必需项,不然DataOps 也是空中楼阁。而DataOps 的方法论则是帮助企业在使用一个标准的产品在执行时需要理解并实践的。DataOps 简单来说是一门快速发展的学科,旨在规范化管理大多数公司不规则的数据流水线。

七、什么是流水线,过去和现在有什么区别? 以往,只有两种数据流水线: 

  • 一个是数据仓库,支持一般用途的报告和分析行为
  • 另一个是财务报告流水线,为投资者和董事会提供审计数据

 当今,随着自助分析和机器学习的发展,公司拥有的流水线数量和拥有数据分析师、数据科学家和处理大量数据的应用程序一样多。每个数据流水线都需要专门的数据集和数据访问权限来生成数据内容。从好的方面说这就是流水线的野蛮生长,但是带来的管理问题也不容小觑。 

如果没有 DataOps,每个数据流水线都将成为一个数据孤岛,与其他数据流水线、数据集和数据生产者几乎没有任何关系。没有协作或重用,有的只是大量的人工操作和重复工作,大量的错误和数据缺陷及缓慢的交付。商业用户除了信任自己的数据外不信任任何数据,而且许多决策是在没有任何数据或没有足够数据的情况下做出的。


八、DevOps 和 DataOps扮演过救援者的角色 DataOps 和 DevOps 看起来只有一字之差,但含义却大不相同。所以这里也说一下DevOps 的历史,其实软件工程领域一直受到类似问题的困扰,直到它引入了敏捷开发和 DevOps 技术。如今,如果没有DevOps,如亚马逊、谷歌和LinkedIn等硅谷独角兽,也难以按天进行软件部署发布。 而这个速度在几年前则是难以想象的。令人惊讶的是,尽管软件开发周期时间加快,软件错误和缺陷却减少了。容器化和微服务的出现将进一步加速和强化软件交付周期的缩短。简而言之,DevOps 以更低成本获得更高质量、更快执行速度的代码。

九、看看DataOps 的登场 

首先是数据带来的挑战,数据领域看到打破自身僵局的机会,专家们正在抓紧利用DevOps原则。DevOps管理代码、工具和基础架构之间的相互作用,以加快应用程序功能的交付,而DataOps添加了第四个元素:数据,数据正如其他三个元素一样难以控制。 

在每个流水线中,必须对数据进行标识、捕获、格式化、标记、验证、分析、清理、转换、组合、聚合、保护、分类、管理、移动、查询、可视化、分析和操作。随着组织从数百个来源收集越来越多的数据,这些任务变得越来越复杂。 

然后是工具和人员。借鉴了理论之后,现在需要专门的工具来管理每个任务。每个工具都是针对不同类型的用户: 

  • 从传统的ETL / ELT,数据质量和主数据管理工具到数据目录、数据准备、数据治理产品
  • 再到报表、数据可视化和数据科学工具
  • 从IT部门的系统工程师和数据库管理员
  • 到BI团队中的数据工程师,数据管理员和报表开发人员
  • 再到数据分析师、数据科学家和业务部门的数据消费者

 协调所有这些工具、技术和人员是一项巨大的工作,特别是在拥有规模庞大的开发团队,来自数百个来源的大量数据以及该领域的大量数据分析师和数据科学家的大型组织中。这就是DataOps的来历。


十、DataOps 的框架 定义DataOps 是一件非常困难的事情,在没有一个标准化产品和工具下,企业自己从零来搭建需要考虑非常多的部件和流程,如下图所示      

下面来简述一下其中的一些步骤


10.1 数据流水线

图中间的箭头表示典型的数据流水线,该流水线将源数据通过三个阶段来处理:数据提取、数据工程和数据分析。这些流水线代表一个数据供应链,可以处理、优化和丰富数据,供各种业务用户和应用程序使用。一个流水线可能会填充财务使用的OLAP多维数据集;可能将集成的客户数据实时传递到Web应用程序;可能会为数据科学家创建一个细分的原始数据池,建立广告活动反应分析模型。


10.2 数据技术


数据流水线底层主要是用于提取、精炼和分析数据的技术,主要分为:数据捕获、数据集成、数据准备和数据分析。这些技术获得了巨大的关注,也产生了不少成功的公司,每年通过销售数据产品产生几十亿的收入。不幸的是,大家对单项数据技术比较重视,但是协调和驱动这些技术的数据处理流程反而得不到重视,虽然在很多时候其实数据处理流程更重要。(详情参见下面的“数据处理”) 

如今,随着组织从批处理架构转向流式架构以支持大数据和物联网,数据捕获已成为热门技术类别。数据集成已从传统的数据仓库项目演变为主流。数据准备是一项新技术,旨在帮助数据分析师建模自己的数据集,理想情况下可利用IT管理的存储库(例如数据湖)中的数据。

 数据分析通过为业务用户提供查询、分析、可视化和共享的工具来完成整个数据处理周期。


交付团队通过采集和集成数据,创建通用的、面向主题的数据文件来启动数据供应链。然后,数据工程团队将对数据进行建模,以满足特定的业务需求和用例。

 最后,业务用户查询和分析目标数据集并创建报告、仪表板和预测模型。尽管这些过程本质上是线性的,但该循环是以迭代模式进行,其中包含许多必须存储、跟踪和管理的中间步骤和artifacts。 

数据存储也是支持数据技术和团队的一个核心底层技术,包括运行在高性能列式存储上的数据仓库、数据湖和数据沙箱。在数据存储层之下是一个基于云、虚拟化、弹性和大规模并行计算的基础架构。


10.3 数据处理


一个组织,如果试图仅使用技术来构建和管理数据流水线,注定是要失败的。它需要定义明确的过程和方法来构建、更改、测试、部署、运行以及跟踪新功能和修改后的功能。还需要管理这些过程中生成的所有artifacts,包括代码、数据、元数据、脚本、指标、维度、层次结构等。而且,它需要协调数据技术并监控开发、测试和生产过程。这需要作业调度、事件触发器、错误处理和性能管理,以满足服务级别协议(SLA)。 

开发和部署前两个阶段,通过敏捷和DevOps方法得到了很好的定义。在这里,需要实现的目标是,与组织团队、业务驱动团队一起开发新功能时,这些团队可以在短时间内(通常是两周或更短时间)构建经过全面测试并实现功能的代码。

 为了同步开发,团队需要将代码存储在应用版本控制的中央存储库中,以避免覆盖和重复工作。团队还需要使用技术和工具对代码进行无缝合并,并以最小延迟将代码移入生产环境(持续集成和持续部署CI / CD)。工具和系统配置集中存储并维护在安装库中。

 不管是构建新的应用程序或用例,还是修改现有的用例,有很多工具都可以支持开发和部署过程。例如:Git是用于存储代码和控制版本的开源存储库,而Jenkins是支持CI / CD流程(即合并和部署代码)的开源工具。在数据世界中,有许多针对特定类型流水线的开发和部署工具,包括数据仓库开发(即数据仓库自动化工具)和机器学习模型。


10.4编排 

DataOps的核心和灵魂在于编排,数据在流水线流通时,数据的移动、处理和完善需要具有众多依赖关系的复杂任务工作流。一个优秀的数据编排工具可以调度数据开发项目中的所有四个组成部分:代码、数据、技术和基础架构。在DataOps环境中,编排工具使用容器管理软件来启动和调度支持这些流程的容器,从而实现自动配置和释放供应开发、测试、预生产和生产环境。


在数据领域中,编排工具提供了新的开发/测试/生产环境。但是它们需要对在流水线中不同阶段之间移动的数据负责,并实例化操作数据的数据工具。开始工作后,他们监控进度并将错误及告警归类到相应的界面。例如,在云环境中,DataOps编排工具可能会执行以下操作: 

  • 提供平台:如数据库、存储容量、访问控制列表、性能管理工具、数据目录、日志服务器和监控工具。
  • 触发提取作业,监控作业(批量或流式),检测故障并恢复功能,监控容量并在需要时触发系统资源自动缩放。
  • 触发数据质量管理作业,分析和验证数据,检查数据血缘。
  • 快速启动数据转换,当数据集获得明确的健康清单,编排工具可能会启动转换代码以合并数据、格式化数据、聚合数据元素。
  • 触发BI工具以将数据下载到其自己的列式存储中或发送通知,告知已准备好进行查询和分析的新数据集。
  • 监控工作流,工作流成功完成后,程序会向相应的人员发出提醒,并释放分配的资源。

10.5 持续测试和监控


DataOps环境的最后组成部分是测试环境。理想状况下,团队在开发任何代码或功能之前先进行测试。然后,编排工具在流水线中每个阶段的开始和结尾运行测试。在启动和集成时,在上游捕获错误和问题可以节省大量时间、金钱,从而减少麻烦。

10.6 标准化产品


BDOS 提供的基于 Total Platform + Total Insight 的标准化产品, 将上述复杂的搭建和流程合为一体,用户无忧管理以上品类繁多的操作。       

如果说,“数据中台”的概念仍然比较抽象的话,用“大数据的操作系统”来定义智领云的产品,似乎更加准确和直观。

智领云的“大数据的操作系统”建设分为三步,第一步是“打地基”,也就是Total Platform。具体而言,就是将创始人团队过去十几年来在硅谷做大数据平台的方法论进行产品化。

实现数据中台高扩展性的关键点在于降低系统耦合度,而容器技术则是解耦的核心手段。因此,智领云通过开源的Docker、K8S、Mesos等技术,对主流的Hadoop、Hive、Spark、Kafka等多种大数据技术组件进行了容器化集成,实现大数据应用与底层运行环境之间的解耦,推出了应用云平台(PaaS)与容器大数据平台。

不过,应用云平台和容器大数据平台并不能单独交付来完成数据中台的建设任务,就好比刚刚打好地基的房子。要想把房子建好,还需要各种建房子的工具。

智领云做的第二步,就是把“盖房子的工具”做好。智领云推出的数据集成开发平台,包括数据采集、数据共享、数据探索、数据服务、数据治理、数据开发等多项工具。数据集成开发平台与应用云平台(PaaS)与容器大数据平台打包交付。

第三步,“在盖好房子的基础上进行精装修”。对于有大量数据沉淀、已经建立了大数据平台的企业,如银行这类大客户,智领云也针对性地在2019年底推出了一套完整的解决方案——数据资产运营平台,也就是Total Insight。该平台可以单独发布和使用,也可以单独售卖。

至此,智领云完成了这套“大数据的操作系统”的构建,并且已经服务了能源、教育、医疗健康、物联网、金融等领域的数十家客户,据智领云透露,他们的客户复购率为100%。

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.