Databend 开源周报第 91 期

news2024/9/20 8:05:07

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。

What's On In Databend

探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。

新数据类型:BITMAP

Databend 新增对 BITMAP 数据类型的支持。

BITMAP 是一种压缩数据结构,可用于高效地存储和操作布尔值集合,常用于加速去重计数。

> CREATE TABLE IF NOT EXISTS t1(id Int, v Bitmap) Engine = Fuse;
> INSERT INTO t1 (id, v) VALUES(1, to_bitmap('0, 1')),(2, to_bitmap('1, 2')),(3, to_bitmap('3, 4'));
> SELECT id, to_string(v) FROM t1;

┌──────────────────────┐
│   id  │ to_string(v) │
│ Int32 │    String    │
├───────┼──────────────┤
│     1 │ 0,1          │
│     2 │ 1,2          │
│     3 │ 3,4          │
└──────────────────────┘

Databend 中的 BITMAP 数据类型实现使用 RoaringTreemap 。与其他位图实现相比,使用这种数据结构可以提高性能并减少内存使用。

如果你想要了解更多信息,请查看下面列出的资源。

  • PR #11097 | feat: add bitmap data type
  • Website | Roaring Bitmaps
  • Paper | Consistently faster and smaller compressed bitmaps with Roaring

设计并实现新的哈希表以改善 Hash Join 性能

此前 Databend 为聚合函数优化了哈希表实现,但这一实现并不适用于 Hash Join 。为了进一步提高 Hash Join 的性能,团队设计并实现了一个专门为此优化的哈希表。

哈希表的大小会根据构建阶段的行数进行分配,值类型也会替换为支持 CAS 操作的指针,从而确保内存控制而无需进行 Vec 增长。

新的实现显著提高了性能。查看下面的资源以获取更多信息:

  • PR #11140 | feat(query): new hash table and parallel finalize for hash join

Code Corner

一起来探索 Databend 和周边生态中的代码片段或项目。

Rust 编译挑战和解决方案 - 编译时间篇

在复杂的项目依赖和样板代码堆积之下,对于 Databend 这样的中大型 Rust 程序而言,编译实在算不上是一件轻松的事情。

为了解决编译时间上面临的一些挑战,Databend 团队从可观测性、编译工具链与配置和代码重构等方面入手,进行了一系列针对性的优化。

如果你想要了解更多信息,请查看下面列出的资源。

  • Databend 中的 Rust 编译时间优化小技巧

亮点

以下是一些值得注意的事件,也许您可以找到感兴趣的内容。

  • Databend 正在参与 OSPP 2023 项目,欢迎感兴趣的同学踊跃报名:OSPP2023 - Databend.
  • 查看文档 Docs | Developing with Databend using Rust 了解如何使用 databend-driver 开发 Rust 应用程序。
  • 想要了解如何使用 BendSQL 来管理 Databend 数据库和查询?现在就来阅读文档 Docs | BendSQL !
  • Databend 支持多种数据导入方式,阅读文档 Docs | Loading from a Stage 和 Docs | Loading from a Bucket,掌握从 Stage 和对象存储的 Bucket 导入数据的实用技能。
  • Databend 现在提供 table-meta-inspector 实用工具,用于解码 Databend 中表的元数据。

What's Up Next

我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。

寻找函数开发贡献者

Databend 现在正在积极推进函数的实现和改进工作,我们期待你的帮助!

目前计划补全的函数共有 4 类,非常适合对数据库设计和实现感兴趣的同学:

  • Bitmap Functions
  • Window Functions
  • Geo Functions
  • JSON Functions and Operators

如果你对编写函数感兴趣,但不知如何下手,可以参阅下面的两篇文档了解如何编写标量函数和聚合函数:

  • How to Write Scalar Functions
  • How to Write Aggregate Functions

期待能够与你共同协作,推动函数的进一步完善。

Issue #11220 | Tracking: functions

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 servcices/vercel_artifacts: Tracking issues of not passed test cases · Issue #2198 · apache/incubator-opendal · GitHub 来挑选一个随机问题,祝好运!

Changelog

前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。

地址:Releases · datafuselabs/databend · GitHub

Contributors

非常感谢贡献者们在本周的卓越工作。

 

Connect With Us

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

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

 

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

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

相关文章

【Robot Framework】RF关键字大全

收录工作当中最常用的Robot Framework关键字 内容较多,可以CtrlF快速搜索自己想要的 1. RF循环使用(FOR循环) {list1} create list LOG TXT INI INF C CPP JAVA JS CSS LRC H ASM S ASP FOR ${file_type} IN {list1} log 构造请求参数 ${t…

第二十二章 解释器模式

文章目录 前言一、解释器模式基本介绍解释器模式的原理类图 二、通过解释器模式来实现四则运算完整代码抽象表达式类 Expression变量表达式类 VarExpression抽象运算符号解析器 SymbolExpression加法解释器 AddExpression减法解释器 SubExpression计算器类 CalculatorClint 测试…

【C++】仅需一文速通继承

文章目录 1.继承的概念及定义继承的概念继承的定义定义格式:继承关系和访问限定符继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数题目:设计出一个类A,让这个类不能被继承(继承了也没用) 5.继承与友元6.继承与静态成员7.复杂的菱…

VK Cup 2017 - Round 1 A - Bear and Friendship Condition(并查集维护大小 + dfs 遍历图统计边数)

题目大意: 给你一些n个点m条边,如果三个点(a,b,c)是合法的,当且仅当 a-b,b-c,c-a都有一条边,问你这个图是否合法,如果有一个或两个点视为合法 思路 考虑什么图才是个合法图:除了点…

Spring 更简单的读取和存储对象

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 前面介绍了通过配置文件的方式来存储 Bean 对象,那么有没有更简单的方式去存储 Bean 对象? 有以下 2 种方…

【论文】LearningDepth from Single Monocular Images

2005 NIPS 文章目录 特征提取卷积核的使用Multiscale 多尺度提取特征特征的相对深度 模型结论特征提取数据集导致的error 文章使用了Markov 随机场(Markov Random Fields, MRF) 从单图像上直接估计出图像的深度信息。 与RGBD输入数据不同的是,文章中采用了YCbCr数据…

知识点总结-DAY1

1. 请解释OSI模型中每一层的作用 应用层:为用户提供服务,处理应用程序之间交换的数据。 表示层:处理数据在网络上的表示形式,如加密和解密、压缩和解压缩等。 会话层:建立、维护和终止两个节点之间的会话&#xff0c…

安全防御 --- IPSec理论

IPSec 1、概述: 是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议,在IP层通过数据来源认证、数据加密、数据完整性和抗重放功能来保证通信双方Internet上传输数据的安全性。 IPSec安全服务 机密性完整性…

雨季时,骑行经过泥泞路段该怎么办?

泥泞路段骑行是一项需要技巧和勇气的挑战。在泥泞路段骑行,骑友又叫玩泥巴,不仅需要良好的车技和身体素质,还需要有足够的经验和判断力,以应对各种突发情况。下面,将从多个角度介绍泥泞路段骑行的挑战和技巧&#xff0…

宏观经济笔记--社会消费品零售总额

我们讨论了GDP的三个分项:投资、消费、净出口。投资我们前面已经介绍了,消费这一个分项我们还一直没有讨论。消费最重要的数据是每个月月中统计局公布的社会消费品零售总额。 一般的论调中,认为消费是三个GDP驱动项中最健康的一项&#xff0…

2023-5-4-Lua语言学习

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

openQA----基于openQA新增指定版本的openSUSE的iso镜像进行测试

【原文链接】openQA----基于openQA新增指定版本的openSUSE的iso镜像进行测试 (1)执行如下命令下载openSUSE的测试脚本,它会从openSUSE的测试脚本github地址 /usr/share/openqa/script/fetchneedles(2)然后执行如下命…

在 SourceTree 中使用 rebase (win10)

原始状态 创建两个分支 dev1 dev2, 并且推送到远端 切换到dev1 做一些修改并提交dev1-1,注意不要推送到到远端 切换到master分支,拉取最新的代码 切换到dev1 分支,进行变基操作,右击master分支 推送dev1分支到远端 切换到master分…

如何快速获取已发表学术论文的期刊封面及目录(caj格式下载和caj转pdf)

目录 1 下载caj格式的封面和目录 2 CAJ格式的封面和目录转PDF格式 在进行职称评审或成果申报时,一般要求提交你发表的成果所在的期刊的当期封面和目录。本文就手把手带带你制作一个期刊目录。 重要提示:下载期刊封面和目录需要你有知网账号&#xff0…

iOS 17预计开放侧载,游戏安全对抗将迎来新高度

近日,据彭博社报道,iOS 17预计开放“侧载”机制。所谓的“侧载”是指:iPhone用户下载APP时,可选择不在APP store中下载,可在相关APP官网或者第三方应用市场进行下载。 众所周知,APP闭源生态是苹果公司最核…

C++ 基础二

C 核心编程 1 内存分区模型 内存分区模型 代码区:存放函数的二级制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区&…

5.1 矩阵的特征值和特征向量

学习步骤: 学习特征值和特征向量的定义和性质,我会采取以下方法: 1. 学习线性代数基础知识:特征值和特征向量是线性代数中的重要概念,需要先掌握线性代数的基础知识,例如向量、矩阵、行列式、逆矩阵、转置…

Bark:基于转换器的文本到音频模型

Bark是由Suno创建的一个基于转换器的文本到音频模型。Bark可以生成高度逼真的多语言语音以及其他音频,包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流,如大笑、叹息和哭泣。为了支持研究社区,我们正在提供对预先训练的模型检查…

生物信息学中---数据集不平衡的处理方法

1.NearMiss: NearMiss 是 Mani 等人根据数据分布特征,基于 KNN 算法提出的欠采样方案, 对多数类样本利用随机欠采样来达到数据平衡。 根据不同数据采样的距离,可以分为三类: NearMiss-1、 NearMiss-2 和 NearMiss-3。…

什么是数据库分片?

什么是数据库分片? 数据库分片是指将一个大型数据库拆分成多个小型数据库,每个小型数据库称为一个分片。通过这种方式,可以将数据库的负载分散到多个服务器上,从而提高数据库的性能和可伸缩性。 为什么需要数据库分片&#xff1f…