数据库变革:HashData云数仓实现事务级实时性

news2025/4/12 3:55:55

8月16-18日,第十四届中国数据库技术大会(DTCC 2023)在北京召开。酷克数据资深解决方案架构师陈义贤在“数据库内核•技术创新”专场发表题为“分布式数仓的TP能力探索—HashData UnionStore”的演讲,介绍HashData以Log is database的思路在分布式数据仓库提升TP性能改造中的技术方案及未来发展规划。

演讲精彩观点:

1、在数据业务化的背景下,企业对数仓实时性能力提出越来越高的要求,OLAP和OLTP会发生进一步的融合。

2、存算分离架构将成为未来数据架构的基本要求,云原生架构的核心理念是将存算分离,使用对象存储来保存一份全域数据,所有计算集群均为无状态,按需申请使用,也可以兼容各种不同计算引擎,满足各类不同业务的需求。

3、存算解耦后,使用不同引擎分开处理数据成为可能:Log is database的理念可以大幅优化数仓的OLTP能力,通过将数据随机写入的操作剥离,以日志数据为中介载体,减少了复杂的锁定和同步操作,大幅提升了并发能力,同时减少随机访问带来的成本。

以下为本次演讲文字实录(节选):

近些年,随着企业IT建设从信息化演进到数字化,企业对数据应用的需求也经历三个阶段:

  • 在1.0阶段,以数据统计查询为主,在此基础上构建相应的系统,服务于部门级的应用。

  • 在2.0阶段,企业通过数仓整合远端应用数据,再进一步的进行加工,实现商业智能,为企业决策层提供支撑。

  • 随着大数据技术的发展,企业数据应用已经进入3.0阶段。在这一阶段,数据应用越来越丰富,能够更好地服务于企业全体员工。

上述的三个阶段仍是处于信息化阶段,数据只是在业务系统运营产生的副产品。而随着企业数据衍生的价值越来越大,企业在进行系统设计之前,就需要考虑如何更好地管理数据资产。

在这样的的背景下,应用系统成为了物理世界和数字世界的映射的媒介。同时,伴随着AI技术的成熟,未来企业数据应用会越来越智能化和自动化,能够自动优化企业的运营策略和业务流程,达成敏捷业务的能力。

随着数据业务化的发展,对数据平台的时效性、准确性和一致性提出了更高的要求,OLTP和OLAP将会进一步地融合。

传统MPP分布式数仓提升OLTP能力的尝试

目前,MPP数仓提升OLTP 能力主要分为两个技术路线:第一种是在TP应用场景,由2PC转为直接派发,减少prepare阶段的实例等待,从而提升单条数据增删改的性能。这种方式的缺点是随着数据分析负载的增加,会额外加大系统开销,造成比较大的延迟。

另一种方式是针对单条记录增删改的数据使用行存表,提升并发性能。

传统分布式MPP架构数据库,会将任务并行的分布到多个服务器和节点上,并在完成计算后,将结果返回并汇总,从而完成对海量数据的分析处理。随着业务的增长,企业需要增加服务器去提升整个集群的数据处理的能力。

由于传统分布式MPP架构计算存储紧耦合,当单一集群达到一定的规模时(一般为200),即使再追加新的计算节点,集群总体性能都会受制于旧的节点,不但不会上升,反而出现下降。

存算分离架构将成为未来数据架构的基本要求

“存算分离”技术的出现,很好地解决了传统MPP架构数据库的“痛点”。云原生架构的核心理念就是存算分离,使用对象存储来保存一份全域数据,所有计算集群均为无状态,按需申请使用,也可以兼容各种不同计算引擎,满足各类不同业务的需求。

图片

图1:HashData在某国有大行存算分离落地方案示意图

以HashData云数仓为例,多个集群共享统一的元数据、统一的数据存储,由统一的元数据集群提供与数据资产目录的动态连接。当底层数据发生变化的时候,数据资产目录可以同步进行更新,为企业数据资产运营、数据治理以及数据安全管理提供了相应的支撑能力。

同时,得益于存算分离的架构,HashData通过一致性哈希来避免数据重新逻辑分组,通过共享存储避免数据重新物理分布,可以实现集群的秒级自动扩缩容。

HashData UnionStore技术创新

存算解耦后,使用不同引擎分开处理数据成为可能:“Log is database”(日志即数据库)是一种基于日志的数据库架构思想,它可以提升 OLTP系统的性能。

Log is database通过将数据随机写入的操作剥离,计算集群只将WAL日志提交至HashData UnionStore集群,由UnionStore集群处理日志数据,并重放生成新的页数据,这样减少了复杂的锁定和同步操作,可以大幅提升并发能力,同时也减少随机访问。

Log is database提升数仓TP性能体现在以下几个方面:

  • 减少磁盘随机访问:传统的数据库系统需要将数据写入磁盘的数据文件中,这可能导致频繁的磁盘随机访问,对性能造成负面影响。而日志数据库将所有的数据更改操作都追加到日志中,这样可以将磁盘写入操作转变为连续的顺序写入操作,大大减少了磁盘的随机访问,提高了性能。

  • 异步提交:传统的数据库系统在每个事务提交时都需要将数据写入磁盘,这会引入较高的延迟。而日志数据库采用异步提交的方式,即先将数据更改操作写入日志,然后异步地将日志中的操作批量写入磁盘。这种方式可以减少磁盘写入的次数和延迟,进一步提升性能。

  • 并发控制优化:日志数据库可以利用日志记录事务操作的特性来进行并发控制的优化。多个事务可以并发地写入日志,而不需要进行复杂的锁定和同步操作。这种并发控制的优化可以提高系统的并发性能和吞吐量。

  • 批处理优化:日志数据库通常将多个操作合并成批处理操作进行处理。通过批处理操作,可以减少磁盘写入的次数,进一步提高性能。例如,将多个更新操作合并成一个批处理操作,可以减少每个操作的开销和磁盘访问次数。

  • 重放优化:日志数据库可以通过重放日志来恢复和重建数据库状态。在系统启动时,可以通过重放日志中的操作,按照顺序将数据更改应用到数据库中,从而快速恢复数据库的一致状态,而无需执行大量的随机访问和数据恢复操作。

图片

图2:HashData UnionStore架构图

在内核层面,HashData对UnionStore集群进行了以下优化:

Wal Service:在数据库中,WAL是一种持久性存储技术,它可以确保数据库在重启或崩溃时不会丢失数据。在WAL机制下,数据库在写入数据之前,会首先写入一份日志记录,用于记录写入的数据信息。为了保证日志持久化之后的可靠性,日志通常会保存三副本。由leader节点负责接收计算集群请求,本地持久化同时将日志发送到follower节点,当所有节点都完成日志持久化之后,leader节点才会返回给计算集群。

Safekeeper为每一个租户启动了Wal Writer线程,负责进行日志持久化以及状态监控、选举。Safekeeper leader会为每个follower启动一个Wal Syncer线程,专门负责同步日志以及发送心跳。

Page Service:主要负责从Wal Service(safekeeper leader)获取已经持久化日志并进行解析,通过重放日志去修改page数据;此外还会对计算集群提供更新后的Page读取服务。

Page存储形式:引入了快照机制,Page Service将当前日志作为page的delta log,通过base page+delta log方式来构建对应page的多版本。

Time Travel:HashData通过UnionStore对底层数据存储的快照化设计,结合重做日志,赋予数据仓库“时间旅行”的能力。比如使用LSN 700读取Page1,则Page Service 会先获取base page,然后根据LSN 700确定delta log范围,然后将日志按顺序apply到base page v2,生成对应page版本返回。

图片

图3:Time Travel示例图

Time Travel可广泛应用于以下场景,为数据库的操作管理提供极大的便利:

  • 恢复数据库对象:通过追溯Page版本和LSN,可以将数据恢复到任意时间点。误删除的表,Shcema和库,可以直接将数据恢复到误操作之前时间点。

  • 查询历史数据:可以查询任意时间点的数据,简单快速。获取数据在某个时间段的变更历史、增量统计用于决策分析;例如通过CDC数据入库,可以在不制作拉链表的情况下,直接选择统计数据的时间点。

  • 历史数据克隆:创建任意时间点数据的拷贝,辅助数据模型训练。基于某个时间点训练结果创建多份数据拷贝,使用不同参数进行训练,对比训练结果。

图片

图4:HashData云原生统一架构HTAP数据平台

通过以上技术创新和优化,HashData将可以支持数据跑批流式计算混合负载数据增删改高效转化等应用场景,达成准实时数仓的能力,更好地助力企业构建onedata体系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT的mysql(数据库)最佳实践和常见问题解答

涉及到数据库,首先安利一个软件Navicat Premium,用来查询数据库很方便 QMysql驱动是Qt SQL模块使用的插件,用于与MySQL数据库进行通信。要编译QMysql驱动,您需要满足以下条件: 您需要安装MySQL的客户端库和开发头文件…

三生ONE物,无限可能|博睿数据上市三周年!

2020年8月17日,北京博睿宏远数据科技股份有限公司作为国内A股市场上的“APM应用性能监控第一股”公司,在科创板荣登上市!(股票号688229) 2023年8月17日,三载日夜更替,博睿一路砥砺前行&#xf…

Eclipse集成MapStruct

Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装(JDK8用到) ②添加到pom.xml 今天拿到同事其他项目的源码,导入并运行的时候抛出了异…

Channel是什么?FileChannel类的常用方法

Channel 是一个接口对象,它类似于传统的流对象,但与传统的流对象又有些不同,具体表现如下: • Channel可以异步地执行I/O读写操作。 • Channel的读写操作是双向的,既可以从 Channel中读取数据,又可以写数据到Channel,而流的读写操作通常都是单向的。 • Channel…

Can‘t find end of central directory : is this a zip file ? at XMLHttpRequest

导出woed出现这个报错,原因其实很简单,路径写错了, 这个word首先必须是docx格式,然后必须放在public文件包下 如果放在public文件包下还没有用,则放在public包下 参考帖子: https://www.cnblogs.com/hejun26/p/13647927.html

VR漫游:720度实景参观,打造魅力生态小区

随着城市的不断发展,小区的建设越发具有生态化、绿色化的特点,人们也会偏向选择更加适合居住的小区。为了让更多的用户体验小区的舒适性,不少地产开发商准备引入VR漫游技术。 VR漫游不仅能够真实地展示现场环境,还可以改变传统网络…

shell编程 基础

将content.txt文件中的内容输出到控制台上 将content.txt中有tom的行输出到控制台 将$2文件中含有gree的行输出到控制台 case语法 简易计算器 查找有root的行 查找以root开头的行 查询时忽略大小写 grep -E 则适用于复杂的正则表达式,可以使用多项选择、重复和子表达…

开发者不可错过的提效工具——低代码开发

开发者不可错过的提效工具 基础低码功能及搭建 01、代码生成器 02、工作流程 03、门户设计 04、大屏设计 05、报表设计 06、第三方登录 07、多租户实现 08、分布式调度 为什么低码平台能够成为开发者的宠儿? 1.低码平台能够大幅提高开发效率 2.低码平台具备高度的可…

QString常用函数介绍

此篇博客核心介绍QT中的QString类型的常用函数,介绍到的函数均从帮助手册或其他博客中看到 QString 字符串类 Header: #include qmake: QT core 一、QString字符串转换 1、QString类字符串转换为整数 int toInt(bool *ok Q_NULLPTR, int base 10) cons…

NOTA标记多肽氨基酸试剂,NOTA-E(cRGDfK)2的化学特性

今日文章关键词:DOTA 偶联肽,NOTA-E(cRGDfK)2,NOTA标记多肽氨基酸试剂 产品描述:DOTATATE acetate 是一种 DOTA 偶联肽,可以被放射性核素标记以用于正电子发射断层扫描 (PET) 成像和肽受体放射性核素治疗 (PRRT)。 英…

LLM的生成配置中参数含义

LLM的生成配置中参数含义 我们在Huggingface中第一次使用大模型的时候,常常会看到一些需要调整的参数,这个参数也是需要了解的。 文中都是来自对于 LLM 一些学习资料的整理 在上图中有 4 个配置的参数分别是 Max new tokens、top-k、top-p以及 Temperature。 token相信大家都…

idea 转换为 Maven Project 的方法

选项: Add as Maven Project

Android 12 源码分析 —— 应用层 一(SystemUI准备篇)

Android 12 源码分析 —— 应用层一(SystemUI准备篇) 在接下来的时间中,将会使用Pixel 3(blueline)作为研究对象,选用AOSP的android-12.0.0_r34分支作源代码。 先从android的应用层进行探析,然后慢慢深入android的fr…

运维节点CPU飙升问题分析

工作内容,不对外开放 前言 首先问题是这样的,周五正在写文档,突然收到了线上报警,发现cpu占用达到了90多,上平台监控系统查看容器,在jvm监控中发现有一个pod在两个小时内产生了61次youngGc一次fullGc,这个问题特别严重且少见,由于我之前也没有排查过此类问题,所以也是…

8个免费的在线思维导图制作工具推荐,节省时间提高效率!

思维导图,也称为心智图或思维图,最初由英国的心理学家Tony Buzan提出。它是一种图形化的思维工具,旨在帮助我们组织信息、理解知识和激发创新思维。思维导图最大特点是其中心放射式的结构。一张思维导图通常由一个中心主题发散出各个子主题&a…

真知灼见|鲸图知识图谱平台,助力金融业务深度洞察(下)

导语 大数据时代的背景下,数据早就成为数字经济重要的生产资料。对数据的挖掘能力成为企业数字化转型的驱动力。就金融行业来说,如果经营和管理方式跟不上大数据时代的发展脚步就会使得数据价值无法得到充分发挥。知识图谱作为一个结合了知识存储、知识…

HVV(护网)行动详解

前言 最近的全国护网可谓是正在火热的进行中,有很多网安小白以及准大一网安的同学在后台问我,到底什么是护网啊?怎么参加呢?有没有相关的学习资料呢?在下不才,连夜整理出来了这篇护网详解文章,希…

msvcp110.dll是什么意思,msvcp110.dll丢失的解决方法

装好软件或游戏之后,一打开就跳出各种报错信息的情况小伙伴一定见过,其中缺少各种msvcp110.dll文件最常见。小伙伴们一定奇怪,用得好好的电脑,怎么会缺文件呢?为啥其他游戏/应用就没事呢?其实这些“丢失”的…

java生成Excel表格

public HSSFWorkbook CreateJZZJSList() {// 绘制ExcelString fileName "自动分析详情";HSSFWorkbook wb new HSSFWorkbook();//创建工作相簿对象HSSFSheet sheet wb.createSheet(fileName); // --->创建了一个工作簿sheet.setDefaultRowHeight((short) 600);…

【Vue】Hbuilder x代码风格设置

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、Hbuilder x 默认代码风格太乱1.在工具中找到设置,点击插件设置2.代开jsbeautify.js配置 一、Hbuilder x 默认代码风格太乱 1…