博客

Databend 开源周报第 86 期

avatarDatabend Labs3月 27, 2023

英文版移步:https://www.databend.com/blog/2023-03-24-databend-weekly

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

What's On In Databend

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

FlightSQL 协议支持正在进行中

FlightSQL 是一种创新的开放式数据库协议,适用于现代架构。面向列设计,并提供对数据分区并行处理的无缝支持。

支持 FlightSQL 的好处包括减少不必要的序列化和反序列化,以及使用预定义的

*.proto
文件轻松支持不同语言的 SDK 实现。

Databend 正在积极开发对 FlightSQL 的支持。如果你对此感兴趣,请参考以下链接:

将自然语言转换为 SQL

通过与流行的 AI 服务集成,

Databend
现在提供一个高效的内置解决方案 -
AI_TO_SQL
函数。

该函数可以将自然语言编写的指令转换为与表模式对齐的 SQL 查询语句。只需进行少量修改(或可能根本不需要),即可投入生产。

SELECT * FROM ai_to_sql(
'List the total amount spent by users from the USA who are older than 30 years, grouped by their names, along with the number of orders they made in 2022',
'<openai-api-key>');
*************************** 1. row ***************************
database: openai
generated_sql: SELECT name, SUM(price) AS total_spent, COUNT(order_id) AS total_orders
FROM users
JOIN orders ON users.id = orders.user_id
WHERE country = 'USA' AND age > 30 AND order_date BETWEEN '2022-01-01' AND '2022-12-31'
GROUP BY name;

该函数现在可在 Databend 和 Databend Cloud 上使用。要了解其工作原理,请参阅以下链接:

Code Corner

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

向量相似度查询

Databend 最近新增

cosine_distance
函数。输入是两个类型为 f32 的 slice。

select cosine_distance([3.0, 45.0, 7.0, 2.0, 5.0, 20.0, 13.0, 12.0], [2.0, 54.0, 13.0, 15.0, 22.0, 34.0, 50.0, 1.0]) as sim
----
0.8735807

底层的 Rust 实现利用

ndarray
crate 中的
ArrayView
类型高效地执行计算。

pub fn cosine_distance(from: &[f32], to: &[f32]) -> Result<f32> {
if from.len() != to.len() {
return Err(ErrorCode::InvalidArgument(format!(
"Vector length not equal: {:} != {:}",
from.len(),
to.len(),
)));
}

let a = ArrayView::from(from);
let b = ArrayView::from(to);
let aa_sum = (&a * &a).sum();
let bb_sum = (&b * &b).sum();

Ok((&a * &b).sum() / ((aa_sum).sqrt() * (bb_sum).sqrt()))
}

你还记得怎么将 scalar functions 集成到 Databend 中吗?可以查看 Doc | How to Write a Scalar FunctionPR | #10737 验证你的答案。

亮点

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

What's Up Next

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

启用
-Zgitoxide
以加速 Git 依赖下载

启用

-Zgitoxide
可以显著加快我们 Git 依赖的下载速度,比仅使用 Git 要快得多。

此特性可以将

cargo
gitoxide
集成,后者是一个纯 Rust 实现的 Git 版本控制系统,具有易用、精简、高效和安全等特点。

Issue #10466 | CI: Enable -Zgitoxide to speed our git deps download speed

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

Changelog

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

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

分享本篇文章

订阅我们的新闻简报

及时了解功能发布、产品规划、支持服务和云服务的最新信息!