Databend 开源周报第112期

news/2024/7/10 19:21:09 标签: 开源, 数据库

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

What's On In Databend

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

理解用户自定义函数(UDF)

用户自定义函数(User-Defined Function,UDF)允许你的自定义操作与 Databend 进行集成,从而更好地处理数据、执行任务,构造更合理的数据工作流。

Databend 目前支持两种形式的用户自定义函数:使用 SQL lambda 表达式编写或者用 Python 等编程语言实现 UDF 服务器注册。用户自定义函数可以作为 Databend 查询处理流程的一部分执行。

使用 UDFs 的优点包括:

  • 自定义数据转换。
  • 优化性能。
  • 改善代码可重用性。

如果您想了解更多信息,请查看下面列出的资源。

  • Docs | User-Defined Function

Code Corner

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

使用 Prometheus 改善可观测性

metrics-rs 为不同的可观测性方案构建了一个通用的抽象层,支持包括 statsd、prometheus、new-relic 等在内的多种工具,但是 metrics-rs 无法很好地支持直方图统计之类的度量。

如今,Prometheus 已成为可观测性领域的事实标准,使用原始的 Prometheus 客户端,而不是将指标推送给其他工具,会带来一些显而易见的好处:

  • 更好的性能:经过良好实现的观测指标的内存分配应该是 O(1) ,无需本地缓冲队列。
  • 减少抽象层:我们可以减少关于指标的抽象层,使代码路径更易于理解。
  • 更好的编码规范:目前我们在不同模块中有不同的度量标准实践,可以学习 Prometheus 社区的度量标准实践来统一我们的度量标准实践。

现在,Databend 的可观测性指标已经完全迁移到 Prometheus 实现,在保持原有指标几乎不变的情况下,带来了更全面、更可靠的可观测性体验。

如果您想了解更多信息,请查看下面列出的资源。

  • PR #12787 | feat(observability): replace metrics-rs with prometheus-client
  • Issue #12635 | Tracking: replace metrics-rs with prometheus-client-rs
  • Issue #9422 | Feature: Refactoring Databend Metrics Component with Prometheus

Highlights

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

  • COMPACT 支持分布式执行。
  • 新增 json_path_exists 函数。
  • 新增 recluster_block_size 设置用于控制重聚类时的块大小。
  • 支持 DECIMAL 类型向 INT 类型的转换。
  • 支持 inverted filter 以减少 filter 执行,部分场景下 4 倍性能提升。
  • SQLSmith 测试支持生成表函数、窗口函数、子查询和 WITH 子句。

What's Up Next

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

实现 GREATEST 函数

GREATEST 函数的输入是一个表达式列表,输出是该表达式列表中的最大值。

语法:

GREATEST( <expr1> [ , <expr2> ... ] )

示例:

SELECT id, name, category, price, rating,
       CASE
         WHEN rating = 1 THEN 0.02
         WHEN rating = 2 THEN 0.04
         WHEN rating = 3 THEN 0.06
         WHEN rating = 4 THEN 0.08
         ELSE 0.1
       END AS increase_percentage_based_on_rating,
       rank() OVER (PARTITION BY category ORDER BY rating) AS rating_rank,
       CASE
         WHEN rating_rank = 1 THEN 0.2
         WHEN rating_rank = 2 THEN 0.1
         ELSE 0
       END AS increase_percentage_based_on_rank,
       GREATEST(increase_percentage_based_on_rating, 
                increase_percentage_based_on_rank) AS final_increase_percentage,
       CAST(price * (1 + final_increase_percentage) AS DECIMAL(10, 2))
         AS adjusted_price
FROM products

Issue #12944 | feat: GREATEST function

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 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。

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

http://www.niftyadmin.cn/n/5052682.html

相关文章

Ubuntu Nacos开机自启动服务

1、创建service文件 在/lib/systemd/system目录下创建nacos.service文件 [Unit] Descriptionalibaba nacos Afternetwork.target Documentationhttps://nacos.io/zh-cn/[Service] Userroot Grouproot Typeforking Environment"JAVA_HOME/usr/local/programs/jdk-8u333-li…

工具篇 | Gradle入门与使用指南 - 附Github仓库地址

介绍 1.1 什么是Gradle&#xff1f; Gradle是一个开源构建自动化工具&#xff0c;专为大型项目设计。它基于DSL&#xff08;领域特定语言&#xff09;编写&#xff0c;该语言是用Groovy编写的&#xff0c;使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序&#x…

EasyExcel 优雅实现 Excel 导入导出

一、简介 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下&#xff0c;快速完成Excel的读、写等功能。 二、特点 快速 快速的读取excel中的数据。 简洁 映射excel和实体类&#xff0c;让代码变…

Qt扩展-QCustomPlot 简介及配置

QCustomPlot 简介及配置 一、概述二、安装教程三、帮助文档的集成 一、概述 QCustomPlot是一个用于绘图和数据可视化的Qt 控件。它没有进一步的依赖关系&#xff0c;并且有良好的文档记录。这个绘图库专注于制作好看的、发布质量的2D绘图、图形和图表&#xff0c;以及为实时可…

预制菜行业数据分析(京东数据挖掘)

最近一段时间&#xff0c;关于预制菜进校园事件的讨论热度高涨。而这两天&#xff0c;核酸大王“张核子”转行开预制菜公司卖方便米饭的消息又被传出&#xff0c;直接让预制菜市场饱受关注。 “预制菜是近两年的风口”&#xff0c;这个结论鲸参谋早在以往的内容中专门讨论过&a…

怒刷LeetCode的第16天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;迭代 方法二&#xff1a;模拟 方法三&#xff1a;循环模拟 方法四&#xff1a;传递 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;回溯 方法二&#xff1a;枚举优化 第三题 题目来源 题目…

接口自动化测试:pytest基础讲解

为什么要做接⼝测试&#xff1f; 只靠前端测试很难确保很⾼的覆盖率。接⼝测试&#xff0c;可以模拟出各种类型的⼊参&#xff0c;包括⼀些在前端模拟不出来的⼊参&#xff0c;还能根据接⼝⽂档的定义&#xff0c;设计出相对完善的⼊参值&#xff0c;在接⼝层保证质量&#xff…

react create-react-app 配置less

环境信息&#xff1a; create-react-app:v5 react:18.2.0 node:18.16.0 如果你不必须使用 less 建议直接使用scss。 因为less配置会遇到很多问题。 配置less过程&#xff1a; 如果你只需要 sass的话&#xff0c;就可以直接使用sass。因为默认配置了scss。 npm、yarn、cnpm、…