写点什么

Databend 开源周报第 122 期

作者:Databend
  • 2023-12-05
    北京
  • 本文字数:2073 字

    阅读完需:约 7 分钟

Databend 开源周报第 122 期

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

What's On In Databend

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

支持链式函数调用

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


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


set sql_dialect = 'experimental';
复制代码


对应的语法如下:


🐳 :) 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 的负载均衡:


#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-onlyinsert-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 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!

Changelog

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


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

Contributors

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


Connect With Us

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


发布于: 刚刚阅读数: 5
用户头像

Databend

关注

还未添加个人签名 2022-08-25 加入

还未添加个人简介

评论

发布
暂无评论
Databend 开源周报第 122 期_Databend_InfoQ写作社区