Databend 开源周报第 122 期

news2024/11/23 3:39:40

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 团队,或查看下面列出的资源。

  • PR #13799 | feat(query): add chain function support

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-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 。或者,你可以点击 make use of sled metrics feature for collect sled metrics · Issue #7233 · datafuselabs/databend · GitHub 来挑选一个随机问题,祝好运!

Changelog

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

地址:Releases · datafuselabs/databend · GitHub

Contributors

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

Connect With Us

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

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

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

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

相关文章

windows11 windows 11 (win11 win 11) 怎么安装 Python3 ? numpy? sounddevice? 声音信号处理库?

首先确认要安装的 sounddevice 库,链接:https://python-sounddevice.readthedocs.io/en/0.4.6/ 根据文档,可知最新的 sounddevice 版本是 0.4.6 进入安装页面查看,发现 Newest sounddevice 可以使用 pip 安装,如下图…

mysql中NULL值

mysql中NULL值表示“没有值”,它跟空字符串""是不同的 例如,执行下面两个插入记录的语句: insert into test_table (description) values (null); insert into test_table (description) values ();执行以后,查看表的…

Linux系统编程:高级IO总结

非阻塞IO基本概念 高级IO核心就一个概念:非阻塞IO。 与该概念相对的,就是我们之前学习过的阻塞IO。 非阻塞IO(Non-blocking I/O)是一种IO模型,用于实现异步IO操作,使应用程序能够在等待IO操作完成的同时…

【Python】 生成二维码

创建了一个使用 python 创建二维码的程序。 下面是生成的程序的图像。 功能描述 输入网址(URL)。 输入二维码的名称。 当单击 QR 码生成按钮时,将使用 QRname 中输入的字符将 QR 码生成为图像。 程序代码 import qrcode import tkinterd…

【C++】简单工厂模式

2023年12月6日,周三下午 今天又学习了一次简单工厂模式 每多学习一次,都会加深对设计模式的理解 目录 什么是简单工厂模式简单工厂模式的优缺点举例说明 什么是简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型…

【深度学习】一维数组的 K-Means 聚类算法理解

刚看了这个算法,理解如下,放在这里,备忘,如有错误的地方,请指出,谢谢 需要做聚类的数组我们称之为【源数组】 需要一个分组个数K变量来标记需要分多少个组,这个数组我们称之为【聚类中心数组】…

网络基础---网络层详解(图文清晰易懂!!!)

目录 一、网络层的功能 二、IP数据包的格式 三、ICMP协议 1.ICMP协议的概念和作用 2.ping命令 2.1 ping 的格式 2.2 ping选项 2.3 当我们ping不通时,及服务器出现问题,如何排错 2.4 信息传递时出现的问题类型和具体情况 四、冲突域和广播域 1.…

STM32--GPIO点亮LED灯(手把手,超详细)

写在前面:在前面的学习中,我们学习了STM32的编译环境(MDK)、时钟树以及GPIO的8种工作模式;这节我们学习正式入门STM32---点亮第一个LED灯;即利用GPIO进行电灯,尽管是一个十分简单的实现&#xf…

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 A题 自由泳 原题再现: 在所有常见的游泳泳姿中,哪一种最快?哪个冲程推力最大?在自由泳项目中,游泳者可以选择他们的泳姿,他们通常选择前面的爬行。然而,游泳…

知识付费商城7.0.3开心学习版,新增供货商功能

彩虹知识付费商城7.0.3小森升级版新增供货商开心学习版。仅供开发参考,切勿正式商用。 1.新增邮件提醒功能,支持给用户发订单、结算等邮件通知 2.支持给管理员发送提现、域名审核等邮件通知 3.支持设置手续费最低扣除金额 4.修复了其他一些已知问题 …

激光雷达标定板提高扫地机器人感知环境能力和清洁效率

智能扫地机器人的激光雷达标定板是一种用于校准激光雷达的设备,它通常由不同反射率的涂料涂覆在板面上,用于接收激光雷达发出的激光束并将其反射回来,从而帮助校准激光雷达的测量参数。在自动驾驶和机器人领域,激光雷达和相机的联…

HDFS Java API 基本操作实验

文章目录 一、实验环境二、实验内容(一)数据准备(二)编程环境准备(三)使用Hadoop API操作HDFS文件系统(四)使用Hadoop API Java IO流操作HDFS文件系统 三、实验步骤(一&…

OpenCL学习笔记(二)手动编译开发库(win10+vs2019)

前言 有时需求比较特别,可能需要重新编译opencl的sdk库。本文档简单记录下win10下,使用vs2019编译的过程,有需要的小伙伴可以参考下 一、获取源码 项目地址:GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK 可以直接使用git命令…

【剑指offer|图解|数组】寻找文件副本 + 螺旋遍历二维数组

🌈个人主页:聆风吟 🔥系列专栏:数据结构、剑指offer每日一练 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️寻找文件副本(题目难度:简单)1.1 题目1.2 示例1.3 限制1.4 解题思路一c代…

2023年第一次系统架构师备考经历

12月7日成绩已经出来,果然最担心的案例分析没有过,才考了40分,还差5分,我就可以一次拿下证书,好可惜啊,今年的题出的有点偏,大数据居然成为必答题,平常是搞Java,大数据方…

做抖店代发,新手如何定类目?五大类目优缺点分析!

我是电商珠珠 类目是店铺的方向,只有将店铺的定位确定好,才能超越大部分的同行。 我经常跟我的学生讲,选择类目的时候不能瞎选,要学会去分析市场,由于大部分的学员前期都是新手小白,所以我们这边会负责给…

[Linux] 用LNMP网站框架搭建论坛

一、nginx在其中工作原理 原理: php-fpm.conf是控制php-fpm守护进程 它是php.ini是一个php解析器 工作过程: 1.当客户端通过域名请求访问时,Nginx会找到对应的虚拟主机 2. Nginx将确定请求。 对于静态请求,Nginx会自行处理…

听GPT 讲Rust源代码--src/tools(9)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/apply_demorgan.rs 在Rust源代码中,apply_demorgan.rs文件位于rust-analyzer工具的ide-assists库中,其作用是实现一个辅助函数,用于在代码中应用De Morgan定律的变换。 …

第二十一章网络通信总结

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信,必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称,是一种网络协议。Internet 网络采用的协议是TCP/IP协议,其全称是Transmissi…

SPRD Android 13 下拉状态栏菜单添加静音快捷键简单记录

SPRD Android 13 下拉状态栏菜单添加静音快捷键简单记录 需要修改文件具体修改补丁吐槽需要修改文件 frameworks/base/packages/SystemUI/res/values/config.xml frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java frameworks/base…