Databend 开源周报第 86 期

Databend正在开发FlightSQL协议支持,以优化数据库交互。新引入的AI_TO_SQL函数能将自然语言转换为SQL查询。此外,Databend还添加了cosine_distance函数用于向量相似度查询。同时,文档更新了如何使用Prometheus和Grafana监控Databend,以及Metabase集成。

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

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 Function 和 PR | #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 。或者,你可以点击 performance: enable xor filter index for IN · Issue #8625 · datafuselabs/databend · GitHub 来挑选一个随机问题,祝好运!

Changelog

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

地址:Releases · datafuselabs/databend · GitHub

Contributors

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

Connect With Us

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值