Databend v1.0 Release 正式发布

news2024/11/18 3:29:28

尊敬的 Databenders,在 Databend Labs 成立两周年之际,我们非常高兴地宣布 Databend v1.0 正式发布。

Databend 社区一直在致力于解决大数据分析的成本和复杂度问题,并正在被顶级场景和顶级需求所推动。
根据可统计信息,每天约 700TB 数据在使用 Databend 写入到云对象存储并进行分析,用户来自欧洲、北美、东南亚、非洲、中国等地,每月为他们节省数百万美元成本。
Databend v1.0 是一个具有里程碑意义的版本,我们相信它将进一步加速云端海量数据分析的发展。

今天,我将首先介绍 Databend v1.0 相比 v0.9 版本所做的改进,然后探讨我们团队的愿景和未来展望。现在就让我们开始吧!

v1.0 改进

Databend 在版本 v1.0 中实现了惊人的性能提升,在 ClickBench 测试中获得:数据加载第一名,在查询环节, c6a.4xlarge 第一名, c5a.4xlarge 第二名,c6a.metal 第三名

此外,Databend 社区还在版本 v1.0 中推出了多项新功能:

UPDATE

现在,用户可以使用 UPDATE 语句来更新 Databend 中的数据。

更新语句的格式如下:

-- Update a book (Id: 103)
UPDATE bookstore SET book_name='The long answer (2nd)' WHERE book_id=103;

通过支持 UPDATE 功能,Databend 实现了对 CRUD 操作的完整支持。

ALTER TABLE

在 v1.0 中,用户可以使用 ALTER TABLE 来修改 Databend 中的表结构:

-- Add a column
ALTER TABLE t ADD COLUMN c Int DEFAULT 10;

DECIMAL

在完成了 Databend 类型系统的大型重构之后,社区在一个坚实的基础上实现了 DECIMAL 数据类型的支持!

-- Create a table with decimal data type.
create table tb_decimal(c1 decimal(36, 18));

-- Insert two values.
insert into tb_decimal values(0.152587668674722117), (0.017820781941443176);

select * from tb_decimal;
+----------------------+
| c1                   |
+----------------------+
| 0.152587668674722117 |
| 0.017820781941443176 |
+----------------------+

Native Format

在 v0.9 版本中引入的 Native Format strawboat 得到了进一步的完善!社区为 strawboat 增加了半结构化数据的支持,并引入了多项性能优化,帮助 Databend 在 HITS 数据集的性能取得了巨大提升。

CBO

引入了直方图框架,可以利用统计信息更为精确地进行代价估算。进一步完善和强化 join reorder 算法,从而大大的提高多表 join 的性能,帮助 Databend 在 TPCH 数据集上的性能取得显著提升。

SELECT FROM STAGE

STAGE 是 Databend 数据流转的核心。我们之前已经支持从 STAGE 中加载数据和向 STAGE 中导出数据,现在我们更进一步,支持了直接在 STAGE 中进行数据查询!

用户只需要为 Databend 创建一个包含数据文件的 STAGE,就可以轻松进行数据查询,无需编写复杂的建表语句或繁琐的数据导入流程。

select min(number), max(number) from @lake (pattern => '.*parquet');
+-------------+-------------+
| min(number) | max(number) |
+-------------+-------------+
|           0 |           9 |
+-------------+-------------+

如果用户只需要进行一次性的查询,还可以直接使用更简短的 URI 形式:

select count(*), author
from 'https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet'    (file_format => 'parquet')    
group by author;
+----------+---------------------+
| count(*) | author              |
+----------+---------------------+
|        1 | Jim Gray            |
|        1 | Michael Stonebraker |
+----------+---------------------+

Query Result Cache

在 v1.0 版本中,Databend 社区借鉴了 ClickHouse 社区的设计,并增加了 Query Result Cache 功能。当底层数据没有发生变化时,执行相同的查询会命中缓存,避免了重复执行查询的过程。

MySQL [(none)]> SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) 
FROM hits 
GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10;
+--------------------+-------------+-----+----------------+----------------------+
| watchid            | clientip    | c   | sum(isrefresh) | avg(resolutionwidth) |
+--------------------+-------------+-----+----------------+----------------------+
| 6655575552203051303|  1611957945 |   2 |              0 |   1638.0 |
| 8566928176839891583| -1402644643 |   2 |              0 |   1368.0 |
| 7904046282518428963|  1509330109 |   2 |              0 |   1368.0 |
| 7224410078130478461|  -776509581 |   2 |              0 |   1368.0 |
| 5957995970499767542|  1311505962 |   1 |              0 |   1368.0 |
| 5295730445754781367|  1398621605 |   1 |              0 |   1917.0 |
| 8635802783983293129|   900266514 |   1 |              1 |   1638.0 |
| 5650467702003458413|  1358200733 |   1 |              0 |   1368.0 |
| 6470882100682188891| -1911689457 |   1 |              0 |   1996.0 |
| 6475474889432602205|  1501294204 |   1 |              0 |   1368.0 |
+--------------------+-------------+-----+----------------+---------------------+
10 rows in set (3.255 sec)

MySQL [(none)]> SELECT 
WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) 
FROM hits 
GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10;

+---------------------+-------------+------+----------------+--------------+
| watchid             | clientip    | c | sum(isrefresh)| avg(resolutionwidth) |
+---------------------+-------------+------+----------------+-------------+
| 6655575552203051303 |  1611957945 | 2 |              0|   1638.0        |
| 8566928176839891583 | -1402644643 | 2 |              0|   1368.0        |
| 7904046282518428963 |  1509330109 | 2 |              0|   1368.0        |
| 7224410078130478461 |  -776509581 | 2 |              0|   1368.0        |
| 5957995970499767542 |  1311505962 | 1 |              0|   1368.0        |
| 5295730445754781367 |  1398621605 | 1 |              0|   1917.0        |
| 8635802783983293129 |   900266514 | 1 |              1|   1638.0        |
| 5650467702003458413 |  1358200733 | 1 |              0|   1368.0        |
| 6470882100682188891 | -1911689457 | 1 |              0|   1996.0        |
| 6475474889432602205 |  1501294204 | 1 |              0|   1368.0        |
+---------------------+-------------+---+---------------+-----------------+
10 rows in set (0.066 sec)

Table Data Cache

缓存是存算分离架构中的重要组成部分。在 v1.0 版本中,Databend 社区为我们带来了 Table Data Cache!当 Databend 执行查询时,会根据访问数据的热度情况决定是否将该数据块保存到缓存中,以加速下一次访问。

Aggregate Spill

在 v1.0 版本中, Databend 引入了 Aggregate spill, 当在 Databend 中执行聚合查询时, 会根据 Databend 当前的内存使用情况动态决定将内存中的聚合数据临时保存并持久化到对象存储中, 防止查询过程中使用过高的内存。

未来展望

经过这些版本的打磨,Databend 终于有了一个雏形。现在,让我们重新认识一下 Databend:

  • 一个使用 Rust 开发的云原生数据仓库:存算分离,面向对象存储设计,极致弹性

  • 支持完整的 CRUD 特性,提供了 MySQL/Clickhouse/HTTP RESTful 等协议支持

  • 提供原生的 ARRAY、MAP、JSON 等复杂类型和 DECIMAL 高精度类型支持

  • 构建了类似于 Git 的 MVCC 列式存储引擎,支持 Data Time Travel 和 Data Share 能力

  • 不受存储供应商的限制,可以在任何存储服务上运行,并直接查询任何存储服务上的数据

  • 目前已全面支持 HDFS/Cloud-Based Object Storage 协议,包括:阿里云 OSS,腾讯云 COS,华为云 OBS,以及 S3,Azure Blob, Google Cloud Storage

Databend 的征程远远不止于此,在未来我们希望 Databend 能拥有:

更强大的功能

在紧随其后的 v1.1 版本中,我们希望实现如下功能:

  • JSON 索引:提高半结构化数据检索能力

  • 分布式 Ingest 能力:提高数据写入速度

  • MERGE INTO 功能:实现数据源增、删、改的实时 CDC 能力

  • Windows Function

我们希望这些功能能进一步满足用户的需求,并且实现 Databend 在 CDC 场景下的突破。

更开放的社区

Databend Labs 由一群开源爱好者组成,Databend 项目从创建之初就是采用 Apache 2.0 协议授权的开源项目。在借鉴和吸收 ClickHouse,CockroachDB 等开源项目优秀思想的同时,我们也在以自己的方式回馈社区:

  • 开源了Databend 元数据服务集群的共识引擎 Openraft

  • 向 Apache 软件基金会捐赠了底层的数据访问引擎 OpenDAL 并成功进入孵化器开始孵化

  • 成为向量计算基础库 arrow2 等多个依赖项目的贡献者

  • 跟进并采用 Rust Nightly,帮助 Rust 社区复现并验证问题

没有开源社区就没有今天的 Databend,感谢 144 个参与 Databend 的贡献者!接下来,我们将更开放地与其他开源社区合作,支持读写 Iceberg、Delta Lake 等格式,打破数据间的壁垒,使数据能够更自由灵活地流转。


感谢大家!

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

Databend Cloud:https://databend.cn

Databend 文档:https://databend.rs/

Wechat:Databend

GitHub:https://github.com/datafuselabs/databend

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

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

相关文章

2023年“中银杯”安徽省职业院校技能大赛网络安全A模块全过程解析

A模块基础设施设置/安全加固(200分) 一、项目和任务描述: 假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全…

K8S 实用工具之三 - 图形化 UI Lens

开篇 📜 引言: 磨刀不误砍柴工工欲善其事必先利其器 第一篇:《K8S 实用工具之一 - 如何合并多个 kubeconfig?》第二篇:《K8S 实用工具之二 - 终端 UI K9S》 像我这种,kubectl 用的不是非常溜,经…

指针面试笔试题练习

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨星光…

webGL编程指南实战教程

学习路线: 如果你是在校大学生,有足够的时间去学习:前端>数学(几何线性代数)>图形学>webgl>shader >threejs>three.js源码如果你是工作中使用,需要快速出产成品:前端>thr…

【博学谷学习记录】超强总结,用心分享 | 架构师 JDK源码学习总结

文章目录HashMap类1.定义2.哈希表3.JDK1.8前HashMap的数据结构4.JDK1.8后HashMap的数据结构5.类构造器6.字段属性①Node<K,V>[] table②size③loadFactor④threshold7.构造函数①默认无参构造函数②指定初始容量的构造函数8.确定哈希桶数组索引位置9.添加元素10.扩容机制…

操作系统重难点笔记

1.信号量机制&#xff0c;读者/写者问题 读者/写者问题分为两种情况&#xff1a; 1.读者和写者互斥&#xff0c;并且不同的读者和写者之间都互斥,一共三个互斥 下面给出伪代码 int m1; int mr1; int mw1; int count0; writer() {while(1){P(mw);........V(mw);} } reader() {…

防止暴力破解ssh的四种方法

一. 方法介绍 防止暴力破解的四种方法&#xff1a; 1 密码要写的足够的复杂&#xff0c;通常建议将密码写16位&#xff0c;并且无连贯的数字或者字母&#xff1b;当然也可以固定一个时间修改一次密码&#xff0c;推荐是一个月修改一次会稳妥一些2 修改ssh的端口号&#xff0c;…

【剧前爆米花--爪哇岛寻宝】MySQL中索引和事务

作者&#xff1a;困了电视剧 专栏&#xff1a;《MySQL数据库》 文章分布&#xff1a;这是一篇关于Java中异常类的文章&#xff0c;在本篇文章中详细讲解了异常的使用逻辑和底层的执行过程&#xff0c;如有疏漏&#xff0c;欢迎大佬指正&#xff01; 目录 索引 用法 底层逻辑…

中医药NER命名实体识别基于SPANNER方式

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2023.3.5 Last edited: 2023.3.5 导读 本文使用SPANNER方式实现对中医药进行实体识别&#xff0c;采用focal loss 进行优化。 本文章作用防止安静…

【微信小程序】计算器案例

&#x1f3c6;今日学习目标&#xff1a;第二十一期——计算器案例 ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰预计时间&#xff1a;30分钟 &#x1f389;专栏系列&#xff1a;我的第一个微信小程序 计算器前言实现效果实现步骤wxmlwxssjs数字按钮事件处理函数计算按钮处理事…

为啥一个 main 方法就能启动项目

在 Spring Boot 出现之前&#xff0c;我们要运行一个 Java Web 应用&#xff0c;首先需要有一个 Web 容器&#xff08;例如 Tomcat 或 Jetty&#xff09;&#xff0c;然后将我们的 Web 应用打包后放到容器的相应目录下&#xff0c;最后再启动容器。 在 IDE 中也需要对 Web 容器…

【WEB前端进阶之路】 HTML 全路线学习知识点梳理(中)

前言 本文是HTML零基础学习系列的第二篇文章&#xff0c;点此阅读 上一篇文章。 文章目录前言六.HTML标题1.HTML标题2.HTML水平线3.HTML 注释七.HTML段落1.HTML段落2.HTML换行八.HTML文本格式化九.HTML链接十.HTML头部十一.HTML图像十二.HTML表格十三.HTML列表十四.HTML区块1.H…

C#:Krypton控件使用方法详解(第十二讲) ——kryptonCheckButton

今天介绍的Krypton控件中的kryptonCheckButton。下面先介绍外观属性&#xff1a;Checked属性&#xff1a;表示控件是否处于已启用状态&#xff0c;属性值为Bool类型&#xff0c;属性值为true时&#xff0c;表示控件处于已选中状态。属性值为false时&#xff0c;表示控件处于不选…

黄河流域公安院校网络空间安全技能挑战赛 QAQ 题解

目录 一.获取pyc文件 二.反编译出.py源码 三.程序逻辑 1.第一个限制条件 2.第二段 3.第三段 这题是对python打包成的可执行程序逆向 如果对如何反编译.pyc和.py文件有疑问可以参考: Python逆向基本操作步骤——以杭电新生赛hgame week2 reverse stream(python3.10逆向)…

IOC(概念和原理)

文章目录1. IOC容器概念2. IOC底层原理3. IOC&#xff08;接口&#xff09;4. IOC操作Bean管理&#xff08;概念&#xff09;5. IOC操作Bean管理&#xff08;基于xml方式&#xff09;5.1 基于xml创建对象5.2 基于xml方式注入属性5.2.1 DI&#xff1a;依赖注入&#xff0c;就是注…

Unable to find a valid cuDNN algorithm to run convolution

Unable to find a valid cuDNN algorithm to run convolution 今天在复习HumanNerf的时候发现了这个报错&#xff0c; import torch print(torch.cuda.is_available()) 使用上面的代码发现GPU是可以用的&#xff0c;可自己的torch版本对应。 后面继续看帖子&#xff0c;总结有…

【C++】30h速成C++从入门到精通(STL介绍、string类)

STL简介什么是STLSTL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本&…

2D图像处理:九点标定_上(机械手轴线与法兰轴线重合)(附源码)

文章目录 1. 九点标定2. 九点标定流程2.1 机械手轴线与法兰轴线重合代码实现1. 九点标定 在2D视觉抓取项目中,如果想要让机械手准确的抓取到工件,前提是需要知道机械手应该移动到哪里(位姿)。而移动到哪里(位姿)的获取就需要对相机和机械手进行标定。因此,九点标定(2D视…

ESP32设备驱动-MAX6675冷端补偿K热电偶数字转换器

MAX6675冷端补偿K热电偶数字转换器 1、MAX6675介绍 MAX6675执行冷端补偿并将来自K型热电偶的信号数字化。 数据以 12 位分辨率、SPI™ 兼容的只读格式输出。 该转换器可将温度解析为 0.25C,读数高达 +1024C,并且在 0C 至 +700C 的温度范围内具有 8 LSB 的热电偶精度。 MAX…

力扣旋转字符串

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍字符串旋转,左旋,右旋即旋转结果. 金句分享: ✨好好干&…