面向未来,新一代数据平台系统需要形成一个从离线到实时的全频谱计算能力,并在 Data Freshness、Resource Costs 和 Query Performance 的不可能三角里边给用户提供多种不同平衡的选择。面向未来的系统应该能够做到一套系统一套数据一套资源,针对上述三个方向的不同平衡点,为用户提供多种选项,实现从离线到实时的全频谱。
IoT 类数据处理成为新热点目前大数据系统处理的数据主要来源是人的行为的数据日志。比如说人的浏览记录、用户在手机上对 App 的点击等操作,都会以日志的形式传到系统里,反馈给推荐系统、广告系统。
面向未来,随着通信(5G)技术和硬件设备的智能化,大量硬件设备的数据会接入进来,硬件设备的数量慢慢会超过人的数量,这些数据会超过人产生的数据,形成一个更大数据规模、更低数据密度的新数据来源。
同时,设备产生的数据特性不同,比如大多数时候设备数据并没有太多意义和价值,只有出问题的时候数据才会产生波动,在这种情况下如何有效收集设备产生的数据,如何处理这种海量的无法全量上云、需要在边端做一定处理的数据,就成了新的需求。为了解决这些问题,云边端协同的计算模式会成为热点,统称 IoT。
数据安全、共享与隐私保护的矛盾需要新解法数据本身已经成为一种资产,有非常好的资产变现或产生额外价值的能力和需求。同时数据很可能涉及隐私泄露(前段时间国家发布了数据安全相关的保护法规),这就形成了有关数据安全、隐私保护和数据共享的矛盾。如何在保证数据安全和隐私的情况下,做到更好的数据共享和数据变现成为新热点。
数据安全不仅仅是一个权限问题,还涉及很复杂的系统架构,包括权限管理、用户隔离、存储加密、异地备份、敏感数据 / 风险行为的识别等等。数据安全共享这个方向包括两个核心场景:一方数据对外共享,多方数据共同计算。
一方数据共享,典型场景是企业自己拥有完整的数据产权,同时又希望通过共享获得价值。目前在主流的云数仓产品里,很多平台都开始提供数据共享方案,比如说 Snowflake 推出的 DataSharing 功能。
多方数据共同计算,典型场景是每一方可能都不具备完整数据,但希望跟不同的数据源通过数据求交或共享的形式获得价值,这就是多方的数据交叉计算或者叫联邦计算。这里面包含两项核心技术,一个是基于隐私计算的数据交互,一个是基于联邦学习(Federated Learning)的数据交互。不论是一方域内多租的安全模式,还是跨域多方的安全共享模式,目前都是领域热点。
AI for System (DW Automation)随着大数据领域逐步发展和普惠化,主流客户其实都可以做到 PB 级的数据规模,甚至很多客户可以达到百 PB 规模。国内最大的互联网公司,内部数据量均在 EB 级别,作业量在每天百万级别以上。
面对这么大的数据规模,传统 DBA 以人为轴的数据管理和优化方式不再胜任。这种复杂的数据组织和优化需要更多基于机器学习、深度学习的自动化技术来完成。比如,通过机器学习自动进行数据分层,依据访问的统计判断什么样的数据更重要、什么样的数据其实不重要,哪些作业可以放在冷存储上,哪些是关键作业需要放在更高优先级的存储上。
当作业量达到百万量级时,这些决策应该由机器来自动完成,而不应该由人来完成。
这个方向在学术届非常火热,已经有大量研究工作和论文发表(例如,Learned Index、CloudView 自动中间结果统计,Ottertune 参数自动化调优等等)。工业界也有很多这方面的工作在推进,不过主要集中在大厂里面,因为这部分工作需要海量数据支持。
目前这个方向整体处在相对早期的阶段,如果我们用自动驾驶类比 AutoDW,现在大多数系统可能都处在 L1 或者 L2 的水平,有些系统能达到初步的 L3,未来还有非常大的发展空间和潜力。
三个未解的挑战如上所述,初代大数据体系已经基本建成。同时,在笔者看来,还有很多未解问题摆在从业者面前。
疑问 1:引擎多样化,最终是否能诞生一套 OneSizeForAll 引擎满足多样的计算需求,并兼顾通用性和效率?现在大家几乎还是通过拼接不同引擎来搭建自己的计算平台。如果采用开源系统,可能就是 Spark 做批处理、Flink 做流处理、Clickhouse 做交互分析,这是最简单的一套。再复杂一点,可能还要部署 HBase 做 KV 查询,用 ElasticSearch 做文本检索。虽然每个单独产品都已经比较成熟,但整个系统的复杂度非常高。因此很多客户期待能简化架构,用一套 OneSizeForAll 的系统解决多个场景问题,这也是面向从业者的一个关键挑战。
疑问 2:基于开源自建与直接选购企业级产品,谁更能获得用户的认可?很多客户都问过笔者这样一个问题:我是应该用开源系统自建一个大数据平台,还是应该去买一个企业级服务?
于我而言,这个答案可能需要结合客户分层来看。如前文讲到的,不同层次的客户可能会选择不同产品,开源自建软件几乎都是免费的,但是你可能需要一个独立的团队去支撑这样一个大数据平台的部署和运维,带来了相对较高的维护成本(一个简单的经验公式是,对于百台规模的平台,基于开源软件自建的总 TCO= 物理硬件成本 + 开发和维护人力成本 = 物理硬件成本 *2)。
对于头部的互联网技术公司,大多在数据基础设施方面有大量投入且具备较高的技术能力,能够组装和改造好开源产品,形成为自己量身定制的平台。而且他们规模比较大,人力边际成本低。
对于很多非头部互联网企业,直接购买 SaaS 化的企业级平台,综合成本反而更低。同时还能享受到更好的性能、安全性、稳定性和兜底能力。但也会面临技术黑盒以及改造的高成本(需要平台厂商来做)问题。
Snowflake 作为开箱即用的全托管平台大受欢迎,Databricks 以开源生态为主线也形成了广泛客户群体。“散件组装攒机”VS “直接买笔记本电脑”,最终答案还是在客户手里。
疑问 3:关系模型之外,是否会发展出其他主流计算范式?数据库和数仓已经发展了 40 多年,主流的计算范式就是二维关系表达。近 10 年,深度学习带来了一个新的计算方式。那除此以外,还有没有一个更新一代的计算方式会产生?
图计算是目前最被看好的方向,它是点边模型,与二维关系表达并不相同。但是数据库技术发展过程中也诞生了图计算模式,并且已经发展多年,但目前仍然不是主流。笔者并不确定,随着图学习 GraphEmbedding 技术的兴起,图计算是否能焕发新生变成一个主流的计算范式。但是我们仍然期待随着大数据体系的发展,能够看到更多计算范式诞生,并进一步推动数据价值发掘。
写在最后笔者引用了 19 世纪物理学的一个说法作为开篇的题目。19 世纪末期,物理学界普遍认为物理学的体系几乎已经建成,但头上仍有两朵乌云。事实上那两朵乌云是现代物理学诞生最重要的两个标志,也就是量子力学和相对论,它们标志着经典物理学向现代物理学的演进。
笔者用这个题目做完 2021 的总结,也是希望能表达类似的观点:以 Hadoop 为基础的第一代大数据体系架构已基本建成,但是面向未来的更现代的数据平台架构仍有非常多的疑问还没有得到解答。值此年终年初,期待能和所有的读者 / 从业者一起,把大数据平台体系向新一代推进。
作者介绍:
关涛,
分布式系统和数据研发平台专家。2006 年至今,经历了大数据平台技术发展后 15 年,是大数据核心技术最早期的研究和实践者之一。曾任阿里巴巴技术委员会计算平台组负责人,阿里云架构组大数据组负责人,阿里云通用计算平台(MaxCompute/Dataworks)负责人。微软 Azure 云大数据平台研发经理。深度主导 / 参与微软和阿里云大多数核心大数据平台项目的初创和迭代发展。ArchSummit 全球架构师峰会(深圳站)2021 明星讲师和优秀出品人。