简墨的进化之路:打造大模型数据计算系统的云存储底座

10月24日程序员节,「大模型数据计算系统」2023拓数派年度技术论坛在上海圆满落幕,拓数派大模型数据计算系统(PieDataComputingSystem,缩写:πDataCS)如约而至!πDataCS 以云原生技术重构数据存储和计算,一份存储,多引擎数据计算,让 AI 模型更大更快,全面升级大数据系统至大模型时代。作为 πDataCS 的云存储底座,简墨存储系统的目标是打造满足各种云场景下的高性能计算系统的数据管理和存储底座。

1 πDataCS:一份数据存储,多引擎数据计算

πDataCS 旨在助力企业优化计算瓶颈,充分利用和发挥数据规模优势,构建核心技术壁垒,更好地赋能业务发展,使得自主可控的大模型数据计算系统保持全球领先,让大模型技术全面赋能各行各业。

计算平台从大型机、PC 机到如今的云平台经历了三代大的变更。云平台代表了目前最大的计算能力、存储能力和水平扩展能力。在 PC 机年代,元数据和用户数据映射在本地硬盘,计算映射在本地 CPU,存储和计算紧密耦合在同一个服务器上。

πDataCS 以云原生技术重构数据存储和计算,先将数据计算系统中的计算和数据分离,增强系统的弹性。接着,考虑到未来数据治理和交易,拓数派把元数据和用户数据再次分离,实现了全新的 eMPP 架构。元数据被映射到块存储,由元数据管理系统「木牍」进行管理;用户数据被映射到对象存储,由「简墨」存储系统来管理;计算被映射到容器或者虚拟机,由计算系统来管理。

πDataCS 通过 Data Mesh,升级数据治理,实现数据价值。πDataCS 深入考虑了全球数据交易和数据治理的要求。数据作为一种新的生产要素,是模型发展的重要燃料。在隐私和安全的前提条件下,数据所有者可以把含数据目录的元数据对其他用户共享,数据经营者通过元数据来访问所有者的用户数据,并根据需要,通过授权来有偿访问所有者的用户数据。数据经营者在访问所有者的数据的时候,需要调用数据加工者提供的数据计算引擎。

πDataCS 的整体架构被分为四层,如下图所示:

image.png

数据计算系统 πDataCS 架构

最上层是 πDataCS 所支持的计算引擎。目前 πDataCS 支持以下几种计算引擎:

  • PieCloudDB:作为拓数派首款云原生数仓计算引擎,支持 SQL 语言模型,兼容 HTAP
  • PieCloudVector:为支持和大模型配合的向量计算而建立的云原生向量计算引擎
  • PieCloudML:为支持 Python 和 R 等机器学习语言而建立的云原生机器学习引擎

1.1 PieCloudDB:首款云原生数仓计算引擎

作为 πDataCS 的首款计算引擎,PieCloudDB 云原生虚拟数仓全面支持 πDataCS 公有云版、社区版、企业版及一体机多个产品版本,提供公有云、私有云以及裸硬件三种部署方式,通过数仓虚拟化技术,帮助企业打破数据孤岛,整合所有结构化数据资源,轻松应对强逻辑计算。

云原生存算分离架构运用元数据-计算-数据分离的三层架构,实现云上存储资源与计算资源的独立管理。在云上,PieCloudDB database 利用 eMPP(elastic Massive Parallel Processing)专利技术,实现多集群并发执行任务。企业可灵活进行扩缩容,随着负载的变化实现高效的伸缩,轻松应对 PB 级海量数据。

1.2 PieCloudVector:云原生向量计算引擎

向量数据库是一种专门用于存储、查询和分析向量数据(比如特征向量)的数据库系统。

在对比了 pgvector,pgembedding 的实现和性能之后,我们并没有使用开源的实现,而是完全独立自研了 PieCloudVector 以使其满足我们用户的使用场景。PieCloudVector 具备高效存储和检索向量数据、相似性搜索、向量索引、向量聚类和分类、高性能并行计算、强大可扩展性和容错性等功能。

image.png

云原生向量计算引擎:PieCloudVector

1.3 PieCloudML:云原生机器学习引擎

然而随着人工智能的日益发展,未来越来越多的经济活动将由 AI 来推动。πDataCS 中建立了云原生机器学习引擎 PieCloudML,通过 PieCloudML 内置的各种 ML、图和大模型的算法,数据科学家可通过 python/R 等熟悉的方式,利用数据计算系统来完成各项任务,生成所需的模型。

image.png

云原生机器学习引擎:PieCloudML

为了加速大数据处理和计算的性能,πDataCS 中充分依赖新的硬件来进行异步计算,例如 GPU、FPGA 等。并通过统一的元数据管理层 ——「木牍」,让这三大计算引擎共享一个数据存储底座 ——「简墨」,实现一份数据,多引擎计算。

接下来我们将详细介绍简墨,这款大数据计算系统的云存储底座。

2 简墨:大数据计算系统的云存储底座

作为 πDataCS 的云存储底座,简墨存储系统的目标是打造满足各种云场景下的高性能计算系统的数据管理和存储底座。简墨将基于现代化的硬件和设施,充分使用云的潜力,绝对的数据安全保证,致力于简化大数据处理过程中的数据加载、读取和计算的整个流程,并提供对数据的自适应治理、ACID 的事务支持等功能,保证绝对的数据安全,做到极致的性能优化,以完成各种场景下的数据计算和分析任务。

为了实现这一目标,简墨的进化主要经历三大阶段:

  • 阶段一:新一代云原生存储
  • 阶段二:大数据计算系统的云存储底座
  • 阶段三:统一的大数据计算系统存储引擎

2.1 进化阶段一:新一代云原生存储

第一阶段的简墨主要作为云原生虚拟数仓 PieCloudDB 的云原生存储,目前研发工作已完成。

简墨基于不同的云环境兼容公有云、私有云和混合云,使用对象存储作为持久化存储层,并充分考虑到了 eMPP(elastic MPP)架构下的数据分布和弹性,使用一致性哈希(hash)来保证分布式环境中的每个节点访问大致相同的数据,即使扩缩容也可以尽可能的减少实现的缓存数量。简墨充分考虑到了数据的安全性,结合云原生虚拟数仓 PieCloudDB 中的透明加密在存储落盘时即完成对数据进行加密。透明加密使用了三级密钥,保证了数据的绝对安全。此外,简墨也针对读写性能进行了大量优化,大大提升了数据加载和查询的效率。

2.1.1 全新的文件格式:janm

「简墨」新一代云原生存储围绕 janm 文件格式打造。janm 文件格式使用了行列混合存储设计。行列混合存储让系统在重组数据时,既具备了行存所具有的高效性能,又具备了列存的高压缩比、cache line 友好等优势。同时,jamn 文件格式也能支持向量化(SIMD)计算和并行计算。在设计时,简墨也充分考虑到了内外存的存储表达方式,重新定义了数据在磁盘和内存中的表数据格式,使表中的数据在磁盘上和内存中的数据转换没有额外的开销。

在文件格式内,简墨也会收集文件内数据统计信息来加速查询,支持预计算等性能优化特性。为了加速 I/O,janm 文件格式内置多种压缩算法,例如 zstd、lz 等。针对不同的类型,简墨可以自适应选择不同的编码方式,包括 delta encoding、dictionary encoding 等。

通过块(block)文件级别的 MVCC,使简墨具备完整的事务支持。每个文件块中的数据是否可见,简墨将通过其所在文件的 MVCC 信息,根据当前的事务隔离级别来判断。在 PieCloudDB 中,简墨对访问层进行了深度定制,以确保 PieCloudDB 充分使用简墨中提供的各项优化。

目前,简墨针对数据的读取与查询进行了大量优化,实现了包括数据裁剪(Data Skipping)、预计算加速聚集查询、Smart Analyze、TOAST 的支持等众多功能:

  • 数据裁减:在查询时,依据查询条件尽可能减少要读取的数据量,以达到节省 I/O,提升查询性能的效果。

  • 预计算:对于聚集查询,当简墨收集到每个数据块的聚集数据时,可之间通过使用该数据库的数据来加速数据聚集计算

  • Smart Analyze:通常来说,查询优化器通过对整个表进行 analyze 收集来的表的数据分布信息来生成查询执行计划。对于分析场景来说,当数据量过大时,通过普通 analyze 收集来的表数据分布信息有较大误差,导致产生较差的执行计划。Smart Analyze 通过加载数据时计算每个数据块的分布信息,再通过 merge 算法合并全部数据块的统计信息来生成较为准确的表数据分布信息,其根本思想是在不影响性能的情况下尽可能多的对用户数据进行采样。

  • 超大字段存储的支持:简墨对超大字段存储的支持早已实现基本的读写操作。在全新版本中,PieCloudDB JAMN 已进一步优化,全面支持超大字段存储的 UPDATE/DELETE 和 VACUUM 功能。

随着这一阶段的完成,结合 πDataCS 的需求,研发团队对简墨进行了第二阶段的设计和实现,目标是将简墨成为大数据计算系统的云存储底座。

2.2 进化阶段二:大数据计算系统的云存储底座

在这一阶段,简墨将作为 πDataCS 的云存储底座,目标是能够真正做到「一份数据,多引擎计算」,相应的研发工作正在进行中。

为实现这一目标,简墨计划实现以下特性:

  • 更多文件格式的支持
  • 数据互通
  • 更高效的外部数据提取和加载
  • 流式数据处理
  • 高性能的 ACID 事务处理
  • 自适应数据管理
  • CDC 场景的支持
  • 更多云原生的 Index 支持

下图详细绘制了简墨表格式(JANM Table Format)的所有层级,其中每个层级都依赖于其下面一层,并从中汲取所需的能力,用户将数据以对应的文件格式存储在极具扩展性的云存储中来为上层计算提供数据。

image.png

简墨:大数据计算系统的云存储底座
2.2.1 存储访问抽象(Storage Access Abstract)层

最底层的是简墨的存储访问抽象层,简墨利用抽象 API 与任何类型的存储进行交互,包括云对象存储(例如 S3)、HDFS 等。通过这种方式,简墨确保了所有存储引擎的兼容性。此外,简墨对文件系统进行了包装,以进一步优化存储功能,例如提供监控和各种读写策略等。

2.2.2 数据文件格式抽象(File Format Abstract)层

简墨会在这一层支持多种文件格式,并具备统一的访问接口来简化对数据的访问操作,从而让用户的数据可自由的选择不同的文件格式来存储,用户数据。同时,在更高的层面上,简墨独特的文件布局方案涉及将对每个文件的所有更改进行记录,这使简墨能够创建一个独立的 redo 日志,可用于实现更多丰富的功能。

2.2.3 表格式(Table Format)的核心层

表格式的核心层提供各项特性的功能封装和实现。核心层包括以下5个子系统:

image.png

表格式的核心层
  • 表的事务引擎(Table Transaction Engine)

核心层包含有表的事务引擎,实现了文件级别 MVCC,支持根据隔离级别进行数据库的可见性判断,保证一定的并发控制。对于事物保证,简墨的基本思路是日志即数据,该数据指的是事务可见性信息。

  • 索引(Index)

索引可帮助数据库规划更好的查询,减少 I/O 总量并提供更快的响应时间。有关文件列表和列的索引信息在 OLAP(分析型)场景下,足以让 OLAP 引擎快速生成高效的查询计划。目前 janm 中支持数据裁剪(Data Skipping)所需的索引,未来我们将持续探索更多的索引实现,甚至是行级索引。

  • 表数据的自适应管理(Table Management)

简墨所支持的表数据的自适应管理功能,主要包含:

➢ VACCUM:数据清理,回收操作留下的垃圾空间
➢ Smart Analyze:数据分布信息采样
➢ Compaction:将小文件进行合并,提升 I/O 效率
➢ Cluster:将相近的数据尽可能聚集在相同文件,以提升数据裁减的效率,提升查询速度
➢ Sort:根据指定的字段或条件对数据排序

  • 表格式的相关操作和控制的封装

在这一层,简墨会支持对表的组成和布局控制,支持表文件的遍历,和表数据大小的统计等功能的封装。在对象存储中,对文件进行 list 是开销很大的操作,简墨通过表格式层提供的功能来进行快速的文件遍历和数据大小统计。

2.2.4 可扩展的编程接口

针对上层接口,简墨提供了统一的 API 与外部服务交互,方便第三方应用的接入。简墨支持扩展服务的不同实现,而无需额外的应用开发,节省用户成本工作量。提供数据访问的入口,提供了表的访问服务,基于快照的操作,以及包括 Time Travel 在内的丰富功能。

image.png

统一的 API 层

针对表的应用服务,简墨提供了无状态数据管理的应用,可注册到任意服务中,从而实现自适应数据管理。

在第二阶段完成后,拓数派「简墨」计划拥抱开源,实现数据在不同服务之间的真正互通,全面支持包括 Spark,Clickhouse 在内的众多服务,实现一份数据,多引擎计算。

2.3 进化阶段三:统一的大数据计算系统存储引擎(展望)

未来,在演进的第三阶段,简墨期待打造成为一款统一的大数据计算系统存储引擎。打造统一的访问协议,将表格式、数据湖、表引擎等统一到协议下,简化用户的访问操作。希望大家能持续关注简墨的进展!

image.png

构建统一的数据访问协议

最新双二维码社群与pdb公众号.png

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

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

相关文章

论文浅尝 | 用于文档级事件关系抽取的稀疏事件表示的判别推理

笔记整理:邹铭辉,天津大学硕士,研究方向为自然语言处理 链接:https://aclanthology.org/2023.acl-long.897 动机 文档级事件关系抽取(Document-level Event-Event Relation Extraction,简称DERE&#xff09…

【TypeScrpt算法】算法的复杂度分析

算法的复杂度分析 什么是算法复杂度? 不同的算法,其实效率是不一样的 让我举一个案例来比较两种不同的算法在查找数组中给定元素的时间复杂度 [1,2,3,4,5,6,7,...9999,n] 顺序查找 这种方法从头到尾遍历整个数组,依次比较每个元素和给定元…

SAP-查看业务变更记录

一、通过事务码查询修改记录 1、输入TCODE:AUT10,输入时间和事务处理代码,全部搜索输入*。 2、点击刷新,对已输入的条件进行重置。 3、在左侧下菜单,选择要查询的事务记录,双击,会带入“事务处…

【nlp】3.2 Transformer论文复现:1. 输入部分(文本嵌入层和位置编码器)

Transformer论文复现:输入部分(文本嵌入层和位置编码器) 1 输入复现1.1 文本嵌入层1.1.1 文本嵌入层的作用1.1.2 文本嵌入层的代码实现1.1.3 文本嵌入层中的注意事项1.2 位置编码器1.2.1 位置编码器的作用1.2.2 位置编码器的代码实现1.2.3 位置编码器中的注意事项1 输入复现…

探索结构体的奥秘

目录 🍂结构体 1,结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.6.1 如何计算 1.6.2 为什么存在内存对齐 1.7 修改默认对齐数 1.8 结构体传参 2&am…

3.7寸墨水屏蓝牙卡证

超薄机身,厚度不足一厘米,轻松佩戴无负重感。 无需基站,服务器,手机APP直接更新~ 独创快速扫描技术,智能感应标签 超长待机,超低功耗,Type C接口充电,一次充电可续航一年&#xf…

极智开发 | 随机初始化onnx模型权重的方法

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 随机初始化onnx模型权重的方法。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq onnx 模型一直是在算法部署中…

增量有余、后劲不足,星途汽车10月份销量环比下降3.9%

撰稿|行星 来源|贝多财经 近日,奇瑞集团发布了10月销量月报。报告显示,奇瑞集团于2023年10月销售汽车20.03万辆,同比增长50.8%,单月销量首次突破20万辆;2023年前10个月的累计销量为145.36辆,同比增长41.6…

C语言运算符详解

详细介绍了C语言表达式、算术运算符、赋值运算符、关系运算符、条件结构、逻辑运算符、位运算符的语法和使用方法,并讨论了运算符的优先级。 1、表达式与算术运算符 在C语言中,表达式是一个类似数学中的算式,表达式由变量、字面值、常量、运…

【坑】JDK21虚拟线程不支持run方法

【坑】JDK21虚拟线程不支持run方法 run // do nothing java.lang.VirtualThread Overridepublic void start() {start(ThreadContainers.root());}Overridepublic void run() {// do nothing}

2023年,人工智能在医疗行业领域的应用场景

本期行业洞察将带领大家了解人工智能在医疗行业领域的应用,主要了解在患者治疗和运营中的应用、人工智能作为预防工具以及大型医院目前如何使用人工智能。未来的智慧医疗时代已经悄然到来。 人工智能在患者治疗和机构运营中的应用 人工智能有望彻底改变医疗护理的…

csapp archlab part 1

part A [rootedb3963640a6 misc]#./yas sum.ys [rootedb3963640a6 misc]# ./yis sum.yo./yas 和 ./yis 是汇编语言编译器和模拟器的命令行工具。 ./yas 是一个汇编语言编译器,它将汇编语言代码转换为可执行的二进制文件。./yas sum.ys 将sum.ys文件编译成了sum.yo可…

计算机毕业设计项目选题推荐(免费领源码)Java+ssm+MYSQL酒店大数据资源管理系统的设计与实现02029

摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对酒店大数据资源管理系统等问题,对…

发挥云计算潜力:Amazon Lightsail 与 Amazon EC2 的综述

文章作者:Libai 欢迎来到云计算世界,这里有无数的机会和无限的应用程序增长。 在当今的数字时代,企业可能会发现管理基础架构和扩展应用程序具有挑战性。 传统的本地解决方案需要大量的硬件、软件和维护前期投资。 要满足不断增长的需求&…

3D Slicer使用与体绘制

3D Slicer默认不进行体绘制,右上角的三维重建窗口只显示一个空的立方体框。要进行体绘制,先切换到体绘制设置窗口: 在体绘制设置窗口中,选择进行体绘制的DICOM序列,然后将体绘制开关打开(眼睛标志&#xff…

Omniverse合成数据生成【城市交通场景】

智慧城市是城市生活的未来。 然而,它们可能给城市规划者带来各种挑战,尤其是在交通领域。 为了取得成功,城市的各个方面—从环境和基础设施到商业和教育—必须在功能上整合。 这可能很困难,因为单独管理交通流量是一个复杂的问题…

Navicat 技术指引 | 适用于 GaussDB 的查询编辑器

Navicat Premium(16.2.8 Windows版或以上) 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

智能导视电子指路牌是什么?

SVIP-3800系列智能电子指路牌也称智慧指路灯杆,智能指路牌,导航立柱,多功能指示牌,多功能路标,智能指路机器人,智能导视指路牌,问路导航机器人,智能路牌,叁仟智慧路牌、智…

数据结构-leetcode(设计循环队列)

1.学习内容: 今天 我们讲解一道能够很好的总结所学队列知识的题目---设计循环队列 622. 设计循环队列 - 力扣(LeetCode) 2.题目描述: 让我们设计一个队列 要求是循环的 这和我们的双向链表有些类似 让我们按要求设计出这些相对…

Navicat 技术指引 | GaussDB 数据查看器

Navicat Premium(16.2.8 Windows版或以上) 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…