Databend 开源周报第 88 期

news2024/10/6 4:02:23

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

What's On In Databend

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

Support Eager Aggregation

Eager Aggregation 是一种查询优化技术,它可以部分地将 Group By 推到 Join 之前,减少了 Join 的输入行数,因此可能会生成更好的整体计划。

Databend 最近添加了对 Eager Aggregation 的支持。以下是它的一个示例:

Input:
                expression
                    |
         aggregate: SUM(x), SUM(y)
                    |
                   join
                    | \
                    | (y)
                    |
                   (x)
(1) Eager Groupby-Count:
                expression
                    |
     final aggregate: SUM(eager SUM(x)), SUM(y * cnt)
                    |
                    join
                    | \
                    | (y)
                    |
                    eager group-by: eager SUM(x), eager count: cnt
(2) Eager Split:
                expression
                    |
     final aggregate: SUM(eager SUM(x) * cnt2), SUM(eager SUM(y) * cnt1)
                    |
                    join
                    | \
                    | eager group-by: eager SUM(y), eager count: cnt2
                    |
                    eager group-by: eager SUM(x), eager count: cnt1

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

  • PR #10716 | feat(planner): support eager aggregation
  • Paper | Eager Aggregation and Lazy Aggregation

Support All TPC-DS Queries

Databend 现已支持所有TPC-DS查询!

TPC-DS 是一个面向决策支持系统的包含多维度常规应用模型的决策支持基准,它对决策支持系统的几个普遍适用方面进行建模,包括查询和数据维护。TPC基准测试的目的是为行业用户提供相关、客观的性能数据。

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

  • PR | feat: support cte in dphyp
  • PR | chore(test): add tpcds to test

Code Corner

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

databend-driver - A driver for Databend in Rust

Databend 社区目前为 Databend 开发了 Rust Driver 。现在,你可以使用 Rust 来轻松连接 Databend 并执行 SQL 查询。

下面是一个使用该驱动程序的例子:

use databend_driver::new_connection;

let dsn = "databend://root:@localhost:8000/default?sslmode=disable";
let conn = new_connection(dsn).unwrap();

let sql_create = "CREATE TABLE books (
    title VARCHAR,
    author VARCHAR,
    date Date
);";
conn.exec(sql_create).await.unwrap();
let sql_insert = "INSERT INTO books VALUES ('The Little Prince', 'Antoine de Saint-Exupéry', '1943-04-06');";
conn.exec(sql_insert).await.unwrap();

欢迎尝试并给我们一些反馈。如果你想要了解更多信息,请查看下面列出的资源。

  • Crates.io - databend-driver
  • Github - datafuselabs/databend-client

AskBend - SQL-based Knowledge Base Search and Completion

AskBend 是使用 Rust 编写的知识库问答系统,由 Databend 和 OpenAI 强力驱动,可以根据 Markdown 文件创建基于 SQL 的知识库。

AskBend 能够自动根据内容生成 embeddings ,可以帮助你轻松检索与问题最相关的信息。

下面是它的工作原理:

  1. 从目录中读取并解析 Markdown 文件。
  2. 将内容存储到 askbend.doc 表中。
  3. 使用 Databend Cloud 内置的 AI 能力为内容计算 embeddings 。
  4. 当用户提问时,使用 ai_embedding_vector SQL 函数为之生成查询 embedding 。
  5. 使用 cosine_distance SQL 函数找出最相关的文档内容。
  6. 利用 ai_text_completion SQL 函数,调用 OpenAI 的补全能力,生成合适的结果。
  7. 以 Markdown 格式输出最终结果。

如果您想了解有关 AskBend 的更多信息或尝试现有的实时演示,请参阅下面列出的资源:

  • Live Demo - asking for Databend documentation
  • Github - datafuselabs/askbend

亮点

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

  • 新增聚合函数:QUANTILE_DISCKURTOSISSKEWNESS 。
  • 阅读文档 Docs - AI Functions 了解关于 Databend 中 AI 函数的一切。

What's Up Next

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

为 Databend 增加针对可为空表结构的测试

目前,Databend 表结构默认情况下不可为空。因此,几乎所有测试表结构都不可为空。

我们需要在 Databend 中添加一些新的测试用例,以覆盖表结构可为空的情况。

Issue #10969 | test: add some tests which table schemas are nullable

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!

New Contributors

一起认识社区中的新伙伴,Databend 因你们而变得更加美好。

  • @Dousir9 修复聚合函数在处理多列参数时的错误基数估计,#10884 。
  • @YimingQiao 为 KURTOSIS 和 SKEWNESS 补充了文档,并重新调整了条目的顺序 #10906 。
  • @jsoref 修复了若干拼写错误,改善了文档和代码质量,#10914 。
  • @leiwenfang 美化博客图片,#10917 。
  • @ArberSephirotheca 新增 to_unix_timestamp() 函数,#10949 。

Changelog

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

地址:https://github.com/datafuselabs/databend/releases

Contributors

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

Connect With Us

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

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

 

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

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

相关文章

瑞吉外卖——后台系统登录与退出功能

目录 一、登录功能 1.1 思路 1.2 代码 1.3 完善登录功能——过滤器 一、登录功能 1.1 思路 将页面提交的密码password进行md5加密处理 根据页面提交的用户名username查询数据库 如果没有查询到则返回登录失败结果 密码比对,如果不一致则返回登…

你真的会用background属性?

引言 在日常前端开发中,经常需要进行背景或背景图的处理。但是大多数前端er并未真正清楚背景的正确使用方式。经过本章的学习,相信你一定可以解决99%的背景处理问题。 一:简单使用 背景颜色和背景图片是可以共同出现的 div {width: 300px…

STM32F407移植LVGL基于RT-Thread和无操作系统版本

文章目录一、无操作系统1.源码获取:2.输出设备配置(屏幕配置)几个关键函数屏幕初始化函数:显示刷新(画点)函数3.输入配置(触摸)4.提供时基二、RT-Thread1.新建工程2.添加软件包,屏幕相关文件以及…

3.5 二维随机变量函数的分布

学习目标: 要学习二维随机变量的分布,我可能会遵循以下步骤: 了解基本概念:我会开始学习二维随机变量、联合概率密度函数、边缘概率密度函数、条件概率密度函数、期望值和方差等基本概念,以确保我对这些概念有一个牢固…

elasticsearch 跨索引联合多条件查询

文章目录Elasticsearch需求使用版本联合索引多条件查询示例相关API相关资料Elasticsearch Elasticsearch 是一个免费且开放的分布式搜索和分析引擎。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开…

十分钟玩转3D绘图:WxGL完全手册

文章目录1 简介2 安装3 快速体验3.1 熟悉的风格3.2 Colorbar3.3 光照效果3.4 让模型动起来3.5 定制着色器3.6 三维曲面重建3.7 生成动画或视频文件4 在其他GUI库中使用WxGL4.1 与wxPython集成4.2 与PyQt集成5 API Reference5.1 常量5.2 函数wxgl.font_listwxgl.color_listwxgl.…

Java--反射

目录 反射 什么是反射? Class类 动态加载 小结 访问字段 获取字段值 设置字段值 练习 小结 调用方法 调用方法 调用静态方法 调用非public方法 多态 练习 小结 调用构造方法 小结 获取继承关系 获取父类的Class 获取interface 继承关系 小…

遗传算法优化深度信念网络DBN的分类预测,GA-DBN分类预测

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) 遗传算法的原理 遗传算法优化深度信念网络DBN的分类识别 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,本文用DBN提取特征,遗传…

如何在DevOps中进行API生命周期管理?

引言 随着DevOps理念在中国企业当中的普及和发展,中国企业DevOps落地成熟度不断提升,根据中国信通院的数据已有近6成企业向全生命周期管理迈进。而在研发全生命周期管理之中,API管理的地位愈发显得重要。随着API数量的大幅增长,也…

Java多线程编程—wait/notify机制

文章目录1. 不使用wait/notify机制通信的缺点2. 什么是wait/notify机制3. wait/notify机制原理4. wait/notify方法的基本用法5. 线程状态的切换6. interrupt()遇到方法wait()7. notify/notifyAll方法8. wait(long)介绍9. 生产者/消费者模式10. 管道机制11. 利用wait/notify实现…

【操作系统】半小时写一个微型操作系统-写一个启动扇区并且导入到软盘镜像中

一.什么是启动扇区 我们使用软盘来启动操作系统时,系统首先就是从软盘的第一个扇区中开始读取数据,也就是第0面,0磁道的第0个扇区,软盘的每个扇区为512个字节的大小,如果最后两个字节为0xaa55(当BIOS看到这…

Java多线程基础面试总结(一)

进程、线程和协程 进程、线程和协程 进程 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建、运行到消亡的过程。 在Java中,当我们启动main函数其实就是启动了一个JVM进程&…

【Linux】全新服务器Centos7环境搭建和安装

1、简介 最近服务器重装后,环境啥的则需要从头全部搞一遍,于是开始搞起环境的配置和安装 2、环境配置安装 前期准备 给目录文件加文件传输权限(发现无法上传文件,于是增加权限 $ chmod 766 /home/lj/ 配置DNS服务 #配置DNS服务,如果没有8.8.8.8需要添加 cat /etc/re…

WRF模式与Python融合技术在多领域中的应用及精美绘图教程

当今从事气象及其周边相关领域的人员,常会涉及气象数值模式及其数据处理,无论是作为业务预报的手段、还是作为科研工具,掌握气象数值模式与高效前后处理语言是一件非常重要的技能。WRF作为中尺度气象数值模式的佼佼者,模式功能齐全…

QML控件--Dialog

文章目录一、控件基本信息二、控件使用三、属性成员四、成员函数五、信号一、控件基本信息 Import Statement:import QtQuick.Controls 2.14 Since:Qt 5.8 Inherits:Popup 二、控件使用 Dialog: 是一个弹出窗口,继承…

项目打包发布流程

---》》》项目打包发布 1.编译并构建项目 2.部署 npm i npm run build scp2:需要写代码 ---》》》 后续有空更新:赋几个链接: Jenkins官网 nullhttps://www.jenkins.io/zh/一文详解Jenkins的安装与配置Jenkins是一个基于Java开发的开源…

【SpringMVC】10—其他概念

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍…

2023年Web3的五大趋势

Web3 这个词有时被称为 "去中心化的互联网",涵盖了一些重要的互联网发展趋势。Web3 的愿景是创造一个不受大公司控制的互联网,如Alibaba、baidu、Google和Facebook,这些公司制定了互联网的大部分规则,掌控着我们今天可以…

HyperWorks2021软件安装教程

下载软件 https://www.xsoftnet.com/share/a0004MWyQAg9r.html产品介绍: HyperWorks一款功能强大的开放式架构仿真软件。拥有先进的技术以及高性能、高效和创新的产品,为用户提供了设计、仿真和制造等服务。支持电磁分析设计、材料建模制造、多物理场分…

学校的地下网站(学校的地下网站1080P高清)

这个问题本身就提得有问题,为什么这么说,这是因为YouTube本身就不是一个视频网站或者说YouTube不是一个传统的视频网站!!! YouTube能够一家独大,可不仅仅是因为有了Google 这个亲爹,还有一点&am…