- 《架构师》2023年4月
- InfoQ中文站
- 6097字
- 2024-04-15 14:47:26
消除数据孤岛、筑起Snowflake“护城河”,数据云是中台的下一站吗?
作者 陈义贤 策划 李冬梅
自2015年阿里率先提出的“大中台、小前台”战略以来,很多企业把数据中台当做是加速数字化转型的关键因素之一。如今数据中台已经度过了“七年之痒”,迈入第八个年头,我们看到了数字化进程在持续加速,技术更新迭代也愈加迅速。
近些年来,随着5G、AI、物联网等技术的普及应用,数据应用场景被释放,数据源不断丰富,数据量持续快速攀升。云原生技术使企业组织能在公共、私有和混合云等现代动态环境中构建和运行可扩展的应用程序,成为数字化技术发展的主流,该趋势也开始在数据处理与应用领域蔓延。
为了解决多云多引擎管理的复杂性和高昂的运维成本,以及提高数字化转型的效率和质量,企业迫切需要构建统一、跨云跨平台、云原生的数据基础设施,这将有助于跨越数据价值的鸿沟,并为企业的未来数字化转型提供坚实的基础。
什么是数据云?
那么,到底什么是数据云?Snowflake称数据云消除了数据孤岛,支持企业无缝地统一、分析、共享数据,甚至将数据货币化。数据云最终是一个由数千家企业和组织组成的生态系统,企业不仅连接自己的数据,还通过共享和消费,将数据、数据服务连接起来。
Cloudera称数据云为企业数据安全和治理,是多功能数据分析平台,提供弹性的云计算体验,无孤岛,无锁定。刚刚退出中国的Teradata称数据云是一个统一的数据管理生态系统,便于企业数据的再利用、便携性和易用性。它由单个云分析平台提供支持,该平台连接企业的所有数据源、数据仓库、数据湖、工作负载以及正在使用的云支持基础设施。
各家对数据云的表述各不相同,我们不如先由如今达成共识的数据中台概念进行衍生。
数据中台是企业数字化运营的统一数据能力平台,能够按照规范汇聚和治理全局数据,为各个业务部门提供标准的数据能力和数据工具,同时在公司层面管理数据能力的抽象、共享和复用。基于数据中台定义的扩展,我们可以把数据云理解为在云原生技术加持下,更好地融合企业内外部的数据,提供企业全局数据视图,更加敏捷灵活地迭代数据能力与数据工具,从而保证企业数据服务、数据共享和数据复用的最佳实践。对于企业而言,基于数据中台构建的数据云,能为企业带来哪些新的收益呢?
数据云的优势是什么?
随着数字转型化进入深水区,“数据”已经成为企业的核心生产要素,打通各部门、各应用系统,建立企业级的统一数据资产已经成为业内的共识,这也是之前数据中台为企业解决的核心问题。基于云上的集中存储和弹性算力支持,企业可以更加便利地对数据多源聚合,对内外部数据进行全生命周期的管理,从而沉淀为数据资产,敏捷数据分析与数据应用开发,场景化赋能业务,释放数据价值。
同时,基于云原生的数据云与云原生应用可以实现数据的无界流动,形成数用一体,为企业打造了高效的价值闭环。除此以外,相比数据中台,数据云还带来了以下诸多优势:
•低成本
基于云环境构建的低成本大数据解决方案。使用对象存储,实现了无限扩容和更低的价格,同时云上统一存储也简化了之后数据调用的复杂度;云原生数据底座(数仓和数据湖)均采用计算存储分离的架构,让计算节点和存储节点可以分别弹性伸缩,避免了存算需求不同造成的浪费;通过Serverless的模式,根据请求量自动进行毫秒级的弹性扩容,解决波峰资源短缺、波谷资源浪费的问题,实现最小单元的成本最优。
•高可用
云环境拥有更多的资源冗余,一旦节点发生故障能够无缝切换到其他节点,具备更高的可用性,能够确保业务的连续性;同时,基于云的对象存储能提供更好的可用性与持久性。
•敏捷
云计算让企业得以从重复、复杂的底层IT工作中释放出来,同时其模块化、松耦合的敏捷架构有利于数据产品的快速迭代、部署、运维和创新。IT部门无需再关注基础资源和数据层的繁杂问题,如存储扩容、计算优化等,可以将更多的精力放在业务支持、应用创新上,实现真正的数据驱动企业发展。
•多范式
基于云环境统一了企业数据资产和多范式计算引擎,从而可以支持企业对任何数据类型执行任何分析。同时其可扩展的架构也为企业使用AI进行探索做好了准备。
数据云技术要点
我们知道DevOps是云原生的重要方法论,相对应的DataOps也是数据云的关键方法论,根据维基百科的定义:DataOps是一种面向流程的自动化方法,一种数据工程方法,旨在提高数据分析和数据科学的质量,快速、可靠和可重复地交付数据服务。DataOps的这一定义会随着时间的推移而变化,但其关键目标非常明确:提高数据分析的质量并缩短数据分析的周期。DataOps将极大提高人们使用数据的效率并降低使用数据的门槛,企业可以更快、更早、更好地使用数据,且成本和风险更低。
DataOps支持业务运营的敏捷性,能够快速满足新的和不断变化的数据需求。它还支持可移植性和技术运营敏捷性,能够跨本地、云、多云和混合数据生态系统中的多个平台快速重新部署数据通道。为了支持DataOps运行,以下技术前提需要满足:
•云基础架构:必须使用基于云的基础架构来支持资源管理、可扩展性、弹性计算、自动故障恢复和高效运营。
•CI/CD(持续集成/持续交付):CI/CD的本质是提高开发和部署效率。在业务量巨大的情况下,大数据和云的运维人力成本极高。因此需要使用大量的自动化工具和大数据预测算法进行自动化运维。通过版本管理系统和DevOps基础设施,实现自动化测试和持续集成。在此基础上构建特定的数据环境,对重要接口和链路进行自动化检测。
•容器化:可以根据实际应用的大小来弹性分配资源,确保资源隔离,提供一致开发、测试、运维环境,加快研发速度。使用容器编排基础设施,对服务和作业进行治理,根除版本地狱,大幅度提高运维和集成效率。
•存算分离:存储本身就有非常好的本地和灾备可靠性能力,反倒是服务器的可靠性偏弱。云原生一直在努力实现无状态化,而实现的手段就是把数据层剥离出去,这样可以非常好地提供弹性高可用的能力。
•多分析引擎:为了适应不同的分析场景和分析需求,一方面云上数据引擎在尽可能多地支持不同场景,例如用SQL语言进行机器学习和全文检索;另一方面可以使用不同的数据引擎适应不同的场景,例如用Flink构建流式数据分析,TensorFlow构建AI分析框架。
•多租户和安全性:数据安全性可以说是数据项目中最重要的问题,如果数据无法得到保护,数据使用也就无从谈起。该平台应为每个人提供一个安全的环境,使每个人都可以使用这些数据并对每个操作进行授权、验证和审核。
•多云数据管理:涵盖本地数据中心、私有云、公有云或混合环境中管理和维护数据的各种技术和策略,确保数据资产可以打通,也尽可能地避免数据资产被一个平台所绑定,需要实现在不修改代码的基础上直接迁移。
为了构建数据云,我们还需要打造支持云上数据存储和处理的基础设施,即数据云底座,这个底座包括多种云原生技术,例如容器化、微服务架构、自动化部署和扩展、自动故障转移、自我修复等,旨在为云上数据处理提供更高效、更稳定、更灵活的基础设施支持。
云原生数据仓库
云数仓是云原生架构数据库产品,也是理想的数据云基础底座。云数仓具备高弹性、高性能、高可用、低成本等特性,让企业用户能够更轻松地管理、分析PB级海量数据。相比传统MPP架构的数据仓库,云数仓具有超高的查询性能、云计算弹性伸缩特性以及大数据平台的综合处理能力,既可为企业提供公有云数仓服务,也可以轻松实现企业内部数据中心部署。
通过云数仓可以让企业用户在几分钟内启动一个包含几十个甚至上百个节点的数据仓库集群,数据加载后立即可以开始数据分析任务。同时,由于是完全托管的云服务,云数仓可以承担所有的集群资源配置、数据备份、监控审计、错误恢复、高可用和升级等纷繁复杂、极易出错的运维工作,让用户专注于业务分析。
云原生数仓的关键特征是要支持存算分离,通常会采用以下架构:
上层是独立的元数据服务层,中间是无状态计算层,最下层是共享数据存储层。通过元数据、计算和存储三者分离,每层之间完全解耦,高效响应高并发复杂查询,可以随业务需求动态伸缩,在提供高性能数据仓库服务的同时实现资源的最优配置。管理模块负责所有元数据集群、计算集群的管理,包括集群创建、启停、资源管理、监控告警等。
元数据服务层
元数据服务层负责整体集群的的元数据管理和事务管理,该层中存储了数据库的元数据信息,包括数据字典、表到数据文件的映射、统计信息、数据库事务日志等。另外,元数据层也承担着基础设施管理、自动化运维和监控、访问控制、查询优化、分布式事务和数据安全等功能。元数据服务层的大体结构如下:
•存储节点。存储节点用于元数据的持久化。需要提供完整的ACID特性,保证元数据的安全性。
•无状态服务层。服务层是由一组无状态的服务节点组成,用于接收和处理来自计算集群的元数据请求。
•调度层。调度层主要负责服务的发现和监控,负载均衡等。
无状态计算层
计算层主要是负责接收用户查询请求、查询协调、查询调优和计算等工作。计算层会包含多个独立的计算集群,这些集群共享存储服务和元数据服务,计算集群本身不存储用户数据和元数据,使计算层彻底实现无状态。
•弹性与隔离
计算集群间性能相互隔离,资源和操作都是独立的,不会产生相互竞争CPU、内存和IO的情况,从而可以实现高度的敏捷性。用户可以按需启动、暂停或者扩容集群,而不影响当前的工作负载;可以在同一个共享存储的不同计算集群上独立运行不同的任务,从而实现基于同一份数据的并行大吞吐量工作负载;可以在批量加载数据的的同时,为用户仪表盘提供亚秒级的响应时间;还可以在不停机或者对性能无影响的情况下,对单个集群进行扩缩容操作,实现真正的弹性。
•自愈高可用
用户可以通过云数仓管理控制台预先配置不同的故障恢复策略,来处理集群中发生节点故障的情况。当计算集群中某个节点发生故障后,一种方法是选择一个空闲的新节点加入到计算集群,替换发生故障的节点;另外一种方法,特别是当没有空闲的新节点的情况下,计算集群通过执行一个类似缩容的操作将发生故障的节点踢出可用计算节点列表中即可。由于计算节点是没有状态的,且不涉及用户数据的重新分布,所以整个替换过程是非常迅速的,整个集群可以实现分钟级自愈恢复。
•数据缓存
对象存储服务理论上提供了一个无限空间的存储系统,但是其性能会低于云盘或者物理硬盘,为了提高计算集群的运行效率,云数仓会使用本地硬盘作为对象存储服务的缓存保存用户热点数据,从而减少直接访问对象存储带来的延迟和API调用开销,从而提升系统整体的IO性能,并通过合理配置本地缓存容量、采用LRU算法、优化SQL执行策略等多种技术手段,使集群查询性能与完全使用本地盘接近。
•执行引擎
云数仓计算集群内的计算节点之间是没有任何共享依赖的(shared nothing),并通过基于UDP的高速数据传输协议进行数据交换。查询在每个计算节点上面流水式并行执行,大大提升了查询的效率。
数据存储层
数据存储层采用对象存储实现,提供统一的用户数据持久化服务,计算集群所有节点都可以访问数据存储层。云数仓围绕对象存储构建,采用标准的对象存储访问协议,可以对接各类对象存储产品。
•公有云场景
在公有云场景下,对象存储是按照实际的使用量来收费的,也就是按需付费,这跟云盘(虚拟块存储服务)有着很大的差别。。同时,对象存储单位容量的存储成本也大幅低于类似EBS的云盘(考虑三备份的情况下,接近一个数量级的差距)。按需付费和低单位容量存储成本,使得基于对象存储的云端数据仓库的使用成本大幅降低。
•私有云场景
在私有云环境中,对象存储集群的单位建设成本也远低于块存储集群,对服务器和磁盘的配置要求要低很多,另外,对象存储集群自身支持纠删码机制,比Hadoop集群的多副本更节省存储空间。云数仓技术还应该支持压缩算法,可进一步提升存储空间利用率。
云数仓实现了资源和应用解耦,根据计算集群的工作负载变化,灵活、动态调配计算集群,使用户能够从容应对企业内纷繁复杂的数据应用场景。同时,从整体架构设计、故障自愈恢复能力,以及在线升级能力等几方面保证整个数仓服务实现高可用、高容错,以满足业务用户对持续可用性的预期。
数据云的行业应用
在“金融科技TOP+”战略指引下,某国有大行全面打造云原生能力、赋能新金融的行动,超前布局云原生技术,建设企业数据云,聚焦核心底层技术,以云服务为主要交付方式构建起业内领先的“技术+数据”双轮驱动的金融科技基础能力。
2018年底,该行引入金融数据云。截止2022年5月,历时3年时间,建成同业最大的存储计算分离数据库处理集群,计算节点数量2.5万个,全部采用虚拟机云化资源,数据存储15PB,整个集群每日支持几十万个作业、超过1千万条查询任务。实现全量业务数据入湖,实时数据采集、分析和可视化展示能力大幅增强,有效支持客户旅程等100多个实时业务场景应用,实现全部30余家分行大数据分析挖掘云上处理和集约化管理。
该行原有的数据平台大量采用传统MPP数据库,使用物理服务器超过3000台,但是受限于MPP架构的并发能力、扩展能力,只能采用多集群策略,集群数量超过40个,无法实现所有集群的统一纳管。随着集群数量的增加,逐渐暴露出一系列问题,如数据库孤岛情况严重、并发能力和可扩展性不足,数据大量冗余、升级和扩容等操作复杂、非云原生架构难以融入企业数据云建设等等,导致业务支撑不足、数据管理薄弱、平台运维复杂,也严重影响了数据价值的体现。
该行通过采用HashData云数仓,实现了传统数仓到云化数仓的技术升级,同步完成了行内关键数据平台的信创改造,解决了原有数据平台架构层面的诸多困扰。基于HashData云数仓,该行建立起全行统一的、面向分析的企业级数据视图,全面拓展了数据分析应用领域,不仅在总行层面支撑了风险、财务、营销、绩效、监管等领域分析需求,还在分行层面为30余家一级分行、以及海外分行提供了数据服务,支撑分行特色需求。
在运维管理方面,通过云原生数据库降低基础设施运维复杂度和工作量,实现数据平台自愈、秒级扩展,满足业务连续性需要,极大的简化了运维管理工作。
目前,该行正在推进湖仓融合架构的大数据平台建设与同步,HashData也在加快产品相关功能的优化迭代。未来,HashData将继续携手包括银行在内的数据驱动型企业,依托自身的技术能力为数据驱动型企业创造更多价值。
下一站为何是数据云?
最后,我们通过这个问题来展望一下未来数据智能驱动的发展方向。
•数据量爆炸式增长:一方面,作为存量资产,现有的数据规模每天都在持续增长。另一方面,新技术和新应用的发展又极大地加快了数据的二阶导增速。数据云作为一种可扩展的云服务,可以轻松地扩展存储和处理容量,满足不断增长的数据需求。
•数据分析的重要性:数据分析对企业来说越来越重要,能够为企业提供有切实价值的见解和决策支持。数据云提供了高效、弹性的数据处理和分析能力,使企业能够更快速地提取数据洞见并做出决策。
•云原生技术的崛起:云原生技术可以使应用程序更加灵活、高效和可扩展,这些特点也适用于数据云。利用云原生技术,数据云能够更好地满足企业不断变化的需求。
•业务需求的不断变化:企业的业务需求和数据管理需求在不断变化,数据云作为一种灵活、可扩展的云服务,可以根据不同的业务需求进行定制化设置,以满足企业的不同需求。
不难看出,数据云的灵活性、可扩展性、高效性和弹性等特点,已成为未来数据处理、管理和分析的核心趋势。
作者简介
陈义贤,北京酷克数据科技有限公司解决方案架构师