这是一篇关于数据库的现代数据栈的译文,来自前亚马逊、微软、Meta工程师Luhui Hu的文章《NewSQL, Lakehouse, HTAP, and the Future of Data[1]》,帮助我们了解当前主流的数据库产品及未来趋势。
数据库是像编程语言和操作系统一样的基本技术。而业务需求进一步推动了技术发展。在过去的30年里,从SQL到NoSQL、NewSQL,已经出现了数百种不同的数据库。它们有两个主要的工作负载:OLTP(在线事务处理)
和OLAP(在线分析处理)
,其在各种硬件架构中,包括shared-everything (比如Oracle RAC), shared-memory, shared-disk, shared-nothing, and hybrid(比如Snowflake)。
数据库怀旧情结
Charles Bachman在20世纪60年代初开发了第一个数据库,而在过去的30年里,数据库飞速发展。一开始,人们对数据库的不同查询和模型进行了探索,包括SQL、XML和面向对象。经过十多年的竞争,Oracle、SQL Server和MySQL通过标准化查询语言SQL和遵守ACID(原子性、一致性、隔离性、持久性),几乎主导了商业市场和开源社区。
随着数据量、数据类型和数据处理复杂度的增长,NoSQL因性能效率、模式灵活性和新功能等首次亮相,例如MongoDB、Redis、Elasticsearch、Cassandra、Neo4J等。NoSQL有键值存储、文档数据库、面向列的数据库、图形数据库等。但是CAP定理[2]和扩展性能扼杀了它们的发展。许多NoSQL数据库已经为最终的一致性或去规范化进行了妥协或优化。NoSQL数据库的属性通常可以用一个松散的BASE概念来描述,在遵守CAP定理的情况下,它更倾向于可用性而不是一致性。BASE代表了基本可用性、软状态和最终一致性。
现代数据库需要分布式和可扩展,出现了许多机制来扩展数据库:复制(主-从或主-主)、联合、分片、分解、物化视图、SQL调优、NoSQL等。而Raft[3]和Paxos[4]是分布式数据库的两个重要的共识算法。
NewSQL[5]是一类现代关系型数据库,为OLTP工作负载提供与NoSQL相同的可扩展性能,同时仍使用SQL并保持与传统数据库一样的ACID。
"Data warehouse"这个名字是为OLAP数据库创造的,但现在已经很少有人把它叫做数据库了。数据仓库是商业智能的核心组成部分,用于数据分析和商业洞察。当十年前大数据平台出现的时候,它就黯淡了。人们从传统的数据仓库转移到使用数据平台,直到云计算重新赋予数据仓库以新的性能和可扩展性。
随着高性能和高可扩展性的数据云,一个新的时代出现了,即一个新的数据平台生态系统——现代数据栈。
云技术改变游戏规则
云技术从根本上改变了数据库的游戏规则,主要体现在两个方面:高效运营和系统架构。
云以两种方式实现了数据库的自动化或半自动化操作:云托管
(半管理甚至完全管理)和云原生
。云重塑了数据库的架构,主要是通过解耦其存储和计算。存储或计算可以独立扩展,以提高效率、性能、灵活性和成本。这种解耦架构也可以为数据库系统整合不同类型的存储和计算,以实现整体的高性能和新功能。
解耦存储和计算可能是云计算的一个基本概念,但EMRFS(EMR文件系统)应该是解耦Hadoop文件系统(HDFS)在S3中存储HDFS的第一次努力。伴随着这个方向,云NoSQL(如DynamoDB和BigTable)和云原生SQL数据库(又称云NewSQL)在多个云供应商(AWS、Azure、GCP等)激增。
对象存储是云中的早期存储之一,如Amazon S3。S3是第一个对象存储服务,正如其名称(简单存储服务)所示,其目的很简单--按键放/取对象
。但由于S3的简单性、低成本、高可用性、可扩展性等,它已经成为云计算的基础。更进一步,它演变成了数据湖,作为S3查询的地方,比如S3 Select,Amazon Athena on S3,以及Amazon Redshift Spectrum on S3(EB级)。
NewSQL, Lakehouse,HTAP
几年前,我们对NewSQL和Lakehouse(数据湖)感到兴奋。现在,在Databricks的大力宣传下,数据湖已经成为一个热门词汇。没过多久,像Presto开发人员就意识到它只是在对象存储上运行快速SQL,具有数据仓库性能和数据湖灵活性。随后,Dremio、Starburst和其他公司也很快加入了数据湖这支大军。
数据湖不仅仅是一个流行语,而是一个显著的、有意义的架构统一战略。它整合了数据湖和数据仓库,以提高性能、灵活性和成本效益,消除数据孤岛和ETL流程。它统一了所有数据,以简化数据工程流程,并一起支持BI和AI工作负载。
另一方面,HTAP随着Google的AlloyDB和Snowflake的Unistore发布,助长了热门的现代数据栈。同样,Oracle、SQL Server和其他公司几乎在十年前就配备了这个功能。然而,目前的HTAP和Lakehouse有一个共同的目标,即消除从OLTP到OLAP或从数据湖到数据仓库的ETL。(TP与AP共存,减少转换路径)
目前的HTAP是一个单一的系统架构,同时支持OLTP和OLAP工作负载,不像早期的一些数据库,可以配置为OLAP或OLTP,但不能一起配置。有两种常见的HTAP架构:
- • 在内部将OLAP和OLTP联合起来,作为一个单一的HTAP系统(例如TiDB);
- • 将OLTP TP行在存储中,OLAP AP列在内存中或反之集成(例如AlloyDB和Oracle MySQL HeatWave)。
亚马逊Aurora是一个关系型数据库服务,完全兼容MySQL和PostgreSQL。它是第一个云原生NewSQL数据库,并被重新开发以解耦数据库存储和计算。简单地说,它将传统数据库集群的存储统一为云存储,并允许独立扩展数据库计算层。这是一个云中的共享架构,与集群上的Oracle RAC不同。(集群存储改成云存储,计算层可扩展)
谷歌Spanner是另一个云原生NewSQL数据库。Snowflake采用了类似的云原生架构,将存储和计算解耦用于云数据仓库。不幸的是,亚马逊Redshift推出较早,但采用了像EMR一样的集群托管架构,在第一场战斗中输给了Snowflake。
数据的未来
如今,每个公司都是一家数据驱动的公司。数据已经变得比以往任何时候都更重要。随着业务和技术的变化,数据库和数据堆栈不断快速发展。有五个激动人心的领域在展望数据的未来:统一BI和AI,数据网格,多云战略,智能数据及数据资产。
统一的BI与AI
我们统一所有的数据,以消除数据孤岛、ETL等。但这并不是目标,目标应该是释放所有数据的商业价值,并支持整个数据域的商业智能和人工智能,包括从描述性到诊断性、预测性分析的所有数据分析。从数据到商业价值的过程往往涉及多类数据人员:数据工程师、数据分析师、数据科学家、机器学习工程师等。统一BI和AI不仅可以消除数据孤岛和ETL,还可以简化数据管道,提高利益相关者的生产力。(比如国内的观远BI?)
特制的数据网格
数据库技术融合是一种趋势,如NewSQL、Lakehouse和HTAP。但正如我们所知,NewSQL或数据湖仍然是OLTP或OLAP的一种类型,CAP定理仍然成立。目前的HTAP解决方案可能主要是OLTP或者适合小的工作负载。
采用目前市场上的HTAP作为大型企业的数据仓库或非结构化数据的数据湖几乎是不现实的。特定用途的数据库可以在性能、可扩展性或特定用例(例如,时间序列数据、图形、搜索等)方面更好地满足不同的业务目标。(HTAP还是在某些地方有短板,特殊用途的数据库性能未纳入进去)
专用的数据库网状结构可以用一个融合层来抽象数据库,以实现互连、统一的数据服务和一致的治理。然而,当我们拥有像量子计算或超高速网络、存储的超级强大的计算时,情况可能会发生变化。
多云策略
多云战略在不移动数据的情况下,联合了孤立的公共云和私有云。它可以通过多个云供应商提高服务的可用性,通过近距离计算减少延迟,实现特定云生态系统或市场的独特功能,通过更多的云产品扩展全局可用性,并加强数据合规性和法规。Starburst
和Dremio
是两个领先的多云数据平台的初创公司。多云战略也推动了数据观察性、数据编排、数据共享和数据协调的浪潮。
智能数据
对于人工智能和数据,有三个领域的相互作用:AI for Data(AIData),AI for Database(AIOps的一部分)以及Data for AI(与特征工程和MLOps有关)。
智能数据是AI for Data,在数据质量、数据治理、数据血缘、元数据、语义以及来自分析和AI的新数据等方面实现数据智能化。
生成式人工智能
将在智能数据中发挥举足轻重的作用。到2025年,所有数据的10%将由生成式人工智能模型产生,这些数据可以是声音、视频、图像、文本、结构化数据等。它们是高质量的数据,内置丰富的元数据。这意味着目前的数据库(包括数据湖),由于其丰富的元数据和指数式增长,可能不是最佳选择。(模型数据)
数据资产
这是一个组织或个人在数据库或存储中作为数字资产管理数据的原则。这样的数据库不仅是一个数据管理系统,而且还提供或整合了数据可观察性、安全和隐私保护、数据生命周期管理等。它与OLAP和OLTP有关,尽管它在OLAP社区似乎更活跃。与组织的传统数据资产不同,它们可以属于个人。然后,这种数据资产可以被无缝地整合到web3中,并可能被铸成一个NFT。所以,随着web3的发展,它的意义是很大的。
数据的重要性无处不在。展望数据平台和服务的发展,在使商业和生活更便捷、更快乐,这些更令人激动。
引用链接
[1]
NewSQL, Lakehouse, HTAP, and the Future of Data: _https://towardsdatascience.co... [2]
CAP定理: _https://zh.wikipedia.org/wiki... [3]
Raft: _https://en.wikipedia.org/wiki...\_(algorithm)_ [4]
Paxos: _https://en.wikipedia.org/wiki...\_(computer\_science)_ [5]
NewSQL: _https://en.wikipedia.org/wiki...
欢迎关注我的公众号DS数说,原创技术文章第一时间推送。