Databend 开源周报第 122 期

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

What's On In Databend

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

支持链式函数调用

Databend 现在提供实验性的 SQL 方言,以支持链式函数调用。

如果想要尝试这一特性,请执行下面 SQL 语句:

SQL 复制代码
set sql_dialect = 'experimental';

对应的语法如下:

sql 复制代码
🐳 :) with t(f) as (select '11|open|22|ai|33|is nothing without sam'.split('|')
        .array_filter(x -> try_cast(x as int) is not null ).array_apply(x -> x::int ).array_apply(x -> x::int64 ))
        select f.array_reduce('sum'), f.array_reduce('max'), f.array_reduce('min')  from t;
┌──────────────────────────────────────────────────────────────────────────┐
│ array_reduce(f, 'sum') │ array_reduce(f, 'max') │ array_reduce(f, 'min') │
│     Nullable(Int64)    │     Nullable(Int64)    │     Nullable(Int64)    │
├────────────────────────┼────────────────────────┼────────────────────────┤
│                     66 │                     33 │                     11 │
└──────────────────────────────────────────────────────────────────────────┘

如果您想了解更多信息,欢迎联系 Databend 团队,或查看下面列出的资源。

Code Corner

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

使用 Query ID 和 Nginx 进行负载均衡

Databend JDBC 在每次发起请求都会携带一个名为 X-DATABEND-QUERY-ID 的 HTTP Header,如果想要实现同一客户端,多个请求分散打到不同后端实例的效果,可以基于该 HTTP Header 来做 Nginx 的 Hash Key,以达到负载均衡的效果。

下面的 Nginx 配置文件展示了如何为端口分别位于 8000 和 8009 的两个 databend-query 实例实现基于 Query ID 的负载均衡:

config 复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    log_format main '$http_x_databend_query_id "$time_local" $host "$request_method $request_uri $server_protocol" $status $bytes_sent "$http_referer" "$http_user_agent" $remote_port $upstream_addr $scheme $gzip_ratio $request_length $request_time $ssl_protocol "$upstream_response_time"';
    access_log /opt/homebrew/var/log/nginx/access.log main;
    map $http_x_query_id $backend {
        default backend1;
    }
    upstream backend1 {
        hash $http_x_databend_query_id consistent;
        server localhost:8000;
        server localhost:8009;
    }
    server {
        listen 8085;
        location / {
            proxy_pass http://$backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-DATABEND-QUERY-ID $http_x_databend_query_id;
        }
    }
}

Highlights

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

  • 支持 QUALIFY 子句 。
  • CONNECTION 支持载入指定 role_arn 的访问凭据。
  • MERGE INTO 分离 matched-only 和 insert-only Pipeline 。
  • 阅读文档 Docs | Stream 了解 Databend 的最新企业级特性。

What's Up Next

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

支持使用贪心算法计算 JOIN ORDER

目前 Databend 使用动态规划完成 JOIN ORDER 计算。如果 DPhpy 在这一过程中花费太多时间,有必要从动态规划算法切换到贪婪算法以最小化整体查询时间。

Issue #13884 | Feature: Support join order greedy algorithm

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

Changelog

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

地址:github.com/datafuselab...

Contributors

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

Connect With Us

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

相关推荐
白帽攻防录2 小时前
SRC 挖洞:Roundcube 预认证 SQL 注入深度复盘,CVE-2026-48842 preg_replace 转义绕过怎么打穿邮件系统
网络·数据库·sql·网络安全·sql注入
꯭自꯭闭꯭3 小时前
达梦SQL优化相关
linux·运维·数据库·sql
对空六课3 小时前
支持注意力分析的热力图工具有哪些?
前端·数据库·数据分析
南京码讯光电技术有限公司3 小时前
How to Design an Antenna System for an Industrial WiFi Module
数据库·人工智能
lusklusklusk4 小时前
Oracle数据库基础之2_体系结构
数据库·oracle
可乐ea5 小时前
从第一性原理构建 AI Agent:提示词、工具、技能与记忆全解剖
数据库·人工智能·工具调用·ai智能体·提示词工程·agent开发·智能体记忆
东方护航数据恢复(深圳)5 小时前
医疗案例:HIS/PACS 数据库页损坏修复,医院不停诊完成恢复【东方护航数据恢复深圳店】
数据库·数据恢复·医疗·二次开盘
lusklusklusk6 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle
PHP实战开发录7 小时前
MySQL字段加索引为什么没变快
数据库·mysql·php·开发
红红谈说8 小时前
标签化推送与已读统计怎么做?一次通知链路的工程复盘
数据库·消息推送·数字乡村·集合运算·已读回执·标签体系·写入放大