0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Databend v1.0 Release 正式发布

jf_wN0SrCdH 来源:Rust语言中文社区 2023-03-07 09:48 次阅读

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

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

v1.0改进

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

94f2baee-bc7d-11ed-bfe3-dac502259ad0.png

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

1

UPDATE

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

更新语句的格式如下:

--Updateabook(Id:103)
UPDATEbookstoreSETbook_name='Thelonganswer(2nd)'WHEREbook_id=103;

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

2

ALTER TABLE

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

--Addacolumn
ALTERTABLEtADDCOLUMNcIntDEFAULT10;

3

DECIMAL

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

--Createatablewithdecimaldatatype.
createtabletb_decimal(c1decimal(36,18));

--Inserttwovalues.
insertintotb_decimalvalues(0.152587668674722117),(0.017820781941443176);

select*fromtb_decimal;
+----------------------+
|c1|
+----------------------+
|0.152587668674722117|
|0.017820781941443176|
+----------------------+

4

Native Format

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

5

CBO

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

6

SELECT FROM STAGE

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

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

selectmin(number),max(number)
from@lake(pattern=>'.*parquet');

+-------------+-------------+
|min(number)|max(number)|
+-------------+-------------+
|0|9|
+-------------+-------------+

	

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

selectcount(*),author
from'https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet'
(file_format=>'parquet')
groupbyauthor;

+----------+---------------------+
|count(*)|author|
+----------+---------------------+
|1|JimGray|
|1|MichaelStonebraker|
+----------+---------------------+

7

Query Result Cache

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

MySQL[(none)]>SELECTWatchID,ClientIP,COUNT(*)ASc,SUM(IsRefresh),AVG(ResolutionWidth)FROMhitsGROUPBYWatchID,ClientIPORDERBYcDESCLIMIT10;
+---------------------+-------------+------+----------------+----------------------+
|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|
+---------------------+-------------+------+----------------+----------------------+
10rowsinset(3.255sec)

MySQL[(none)]>SELECTWatchID,ClientIP,COUNT(*)ASc,SUM(IsRefresh),AVG(ResolutionWidth)FROMhitsGROUPBYWatchID,ClientIPORDERBYcDESCLIMIT10;
+---------------------+-------------+------+----------------+----------------------+
|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|
+---------------------+-------------+------+----------------+----------------------+
10rowsinset(0.066sec)

8

Table Data Cache

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

95093d32-bc7d-11ed-bfe3-dac502259ad0.png

Aggregate Spill

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

未来展望

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

Part.

1

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

Part.

2

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

Part.

3

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

Part.

4

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

Part.

5

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

Part.

6

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

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

1

更强大的功能

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

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

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

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

  • Windows Function

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

2

更开放的社区

Databend Labs 由一群开源爱好者组成,Databend 项目从创建之初就是采用 Apache 2.0 协议授权的开源项目。在借鉴和吸收 ClickHouse,CockroachDB 等开源项目优秀思想的同时,我们也在以自己的方式回馈社区:
  • 开源了Databend 元数据服务集群的共识引擎openraft[3]

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

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

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

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


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据分析
    +关注

    关注

    2

    文章

    1395

    浏览量

    33933
  • 大数据分析
    +关注

    关注

    1

    文章

    129

    浏览量

    16845

原文标题:Databend v1.0 Release 正式发布

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Altera viterbi compiler v1.0

    Altera viterbi compiler v1.0 下载
    发表于 03-23 09:45 0次下载

    LeMedia使用教程V1.0

    LeMedia使用教程V1.0,介绍LeMedia如何使用。
    发表于 02-22 17:29 10次下载

    ZYBO入门指导手册(一)v1.0——Vivado

    ZYBO入门指导手册(一)v1.0——Vivado
    发表于 09-27 17:02 21次下载

    FPGA II实战演练V1.0

    FPGA II实战演练V1.0,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-17 11:43 7次下载

    MMoIP系列设备操作手册发布V1.0

    MMoIP系列设备操作手册发布V1.0
    发表于 12-23 02:27 0次下载

    PCiRCTRL使用说明V1.0

    PCiRCTRL使用说明V1.0,红外编码解码YiRTX02,YiRTX03芯片调试工具。
    发表于 01-11 12:38 9次下载

    串口调试VB源代码V1.0

    串口调试VB源代码V1.0
    发表于 02-07 21:06 19次下载

    CPP技术白皮书V1.0

    CPP技术白皮书V1.0
    发表于 09-05 14:36 12次下载
    CPP技术白皮书<b class='flag-5'>V1.0</b>

    KT803C_数据手册_V1.0

    KT803C_数据手册_V1.0
    发表于 12-04 13:55 8次下载

    CC2530底板V1.0(含原路图)

    CC2530底板V1.0(含原路图)
    发表于 01-17 10:25 0次下载

    V1.0 ATT7021应用说明

    V1.0 ATT7021应用说明
    发表于 06-10 15:36 3次下载
    <b class='flag-5'>V1.0</b> ATT7021应用说明

    TI MCU SW ICDI DRIVERS v1.0

    TI MCU SW-ICDI-DRIVERS v1.0
    发表于 10-08 09:36 8次下载

    v1.0开发板资料

    电子发烧友网站提供《v1.0开发板资料.zip》资料免费下载
    发表于 10-09 15:20 5次下载
    <b class='flag-5'>v1.0</b>开发板资料

    OK3588-C_硬件手册_V1.0

    OK3588-C_硬件手册_V1.0
    发表于 12-03 11:55 36次下载

    PCB设计工艺指导手册(v1.0).zip

    PCB设计工艺指导手册(v1.0)
    发表于 12-30 09:20 8次下载