Databend 开源周报第 115 期

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

What's On In Databend

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

聚合索引

Databend 最近引入了 聚合索引 以提高查询性能,特别是涉及 MIN、MAX 和 SUM 等聚合查询的场景下。聚合索引使用预计算和独立存储查询结果等技术,从而消除了扫描整个表的需要,加快了数据检索速度。

此外,该特性还附带刷新机制,支持按需更新和保存最新查询结果,从而保持数据的准确性和可靠性。Databend 建议在执行相关查询之前手动刷新聚合索引,以检索最新的数据;如果使用 Databend Cloud 则支持自动刷新聚合索引。

-- Create an aggregating index
CREATE AGGREGATING INDEX my_agg_index AS SELECT MIN(a), MAX(c) FROM agg;-- Refresh the aggregating index
REFRESH AGGREGATING INDEX my_agg_index;

聚合索引 需要升级至 企业版 。如需了解升级信息,请联系 Databend 团队 。

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

  • Docs | AGGREGATING INDEX

Code Corner

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

MERGE INTO 流水线全景图

前段时间,Databend 实现了对 MERGE INTO 语句的支持,以提供更全面的数据维护能力。对其中原理感兴趣的小伙伴,可以查看下面的 MERGE INTO 流水线全景图。

                                                                                                                                              +-------------------++-----------------------------+    output_port_row_id  |                   |+-----------------------+     Matched        |                             +------------------------>-ResizeProcessor(1)+---------------+|                       +---+--------------->|    MatchedSplitProcessor    |                        |                   |               ||                       |   |                |                             +----------+             +-------------------+               |+----------------------+           |                       +---+                +-----------------------------+          |                                                 ||   MergeIntoSource    +---------->|MergeIntoSplitProcessor|                                                       output_port_updated                                     |+----------------------+           |                       +---+                +-----------------------------+          |             +-------------------+               ||                       |   | NotMatched     |                             |          |             |                   |               ||                       +---+--------------->| MergeIntoNotMatchedProcessor+----------+------------->-ResizeProcessor(1)+-----------+   |+-----------------------+                    |                             |                        |                   |           |   |+-----------------------------+                        +-------------------+           |   ||   ||   ||   ||   ||   |+-------------------------------------------------+                                              |   ||                                                 |                                              |   ||                                                 |                                              |   |+--------------------------+        +-------------------------+     |         ++---------------------------+          |     +--------------------------------------+ |   |
+---------+ TransformSerializeSegment<--------+ TransformSerializeBlock <-----+---------+|TransformAddComputedColumns|<---------+-----+TransformResortAddOnWithoutSourceSchema<-+   |
|         +--------------------------+        +-------------------------+     |         ++---------------------------+          |     +--------------------------------------+     |
|                                                                             |                                                 |                                                  |
|                                                                             |                                                 |                                                  |
|                                                                             |                                                 |                                                  |
|                                                                             |                                                 |                                                  |
|          +---------------+                 +------------------------------+ |               ++---------------+                |               +---------------+                  |
+----------+ TransformDummy|<----------------+ AsyncAccumulatingTransformer <-+---------------+|TransformDummy |<---------------+---------------+TransformDummy <------------------+
|          +---------------+                 +------------------------------+ |               ++---------------+                |               +---------------+
|                                                                             |                                                 |
|                                                                             |  If it includes 'computed', this section        |
|                                                                             |  of code will be executed, otherwise it won't   |
|                                                                             |                                                 |
|                                                                            -+-------------------------------------------------+
|
|
|
|        +------------------+            +-----------------------+        +-----------+
+------->|ResizeProcessor(1)+----------->|TableMutationAggregator+------->|CommitSink |+------------------+            +-----------------------+        +-----------+

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

  • PR #13036 | chore: draw merge into pipeline

Highlights

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

  • 为 MERGE INTO 实现自动聚合和自动 compact 支持。
  • SQLsmith 现在可以覆盖 DELETE、UPDATE、ALTER TABLE 和 CAST 。
  • 新增 json_each 和 json_array_elements 等半结构化数据处理函数。
  • 新增 to_week_of_year 和 date_part 等时间日期函数,可以阅读 Docs | Date & Time Functions 了解更多细节。
  • 阅读 Sending IoT Stream Data to Databend with LF Edge eKuiper 了解如何将 Databend 与 eKuiper 集成,以应对日益增长的 IoT 数据分析需求。

What's Up Next

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

增强基于角色的访问控制能力

目前,Databend 的访问控制体系由基于角色的访问控制(RBAC)和自主访问控制(DAC)两部分组成。然而,为了进一步完善这套体系,还需要完成一些后续工作。

我们计划在 2023 Q4 支持对更多未覆盖资源的权限检查,并且制定相应的权限定义指南。

Issue #13207 | Tracking: RBAC improvement plan in 2023 Q4

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何打造智能公厕:实现智慧监测、自动化运营和智慧化管理

在现代城市里&#xff0c;公共厕所是人们不可或缺的基础设施之一。然而&#xff0c;传统的公厕管理方式已经无法满足人们对公厕的期望&#xff0c;因此需要采用智慧公厕管理系统来提升公厕服务的质量。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量精品案例现…

WAF,Yakit,SSH 小技巧

文章目录 WAF,Yakit,SSH 小技巧1. WAF 文件上传绕过2. Yakit 暴力破解3. SSH 免密码登录4. SSRF配合redis未授权漏洞4.1 安装ssh4.2 redis未授权4.3 安装redis4.4 Gopher协议4.5 利用redis写文件 WAF,Yakit,SSH 小技巧 1. WAF 文件上传绕过 脏数据绕过WAF适用于所有的漏洞&am…

【微服务 SpringCloud】实用篇 · Eureka注册中心

微服务&#xff08;3&#xff09; 文章目录 微服务&#xff08;3&#xff09;1. Eureka的结构和作用2. 搭建eureka-server2.1 创建eureka-server服务2.2 引入eureka依赖2.3 编写启动类2.4 编写配置文件2.5 启动服务 3. 服务注册1&#xff09;引入依赖2&#xff09;配置文件3&am…

文心大模型4.0亮相2023百度世界大会,助力各赛道应用进一步发展

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

Python 机器学习入门之逻辑回归

系列文章目录 第一章 Python 机器学习入门之线性回归 第一章 Python 机器学习入门之梯度下降法 第一章 Python 机器学习入门之牛顿法 第二章 Python 机器学习入门之逻辑回归 逻辑回归 系列文章目录前言一、逻辑回归简介二、逻辑回归推导1、问题2、Sigmoid函数3、目标函数3.1 让…

都2023了!别再问我,UI自动化测试怎么做了……

本文关键词&#xff1a;移动端UI自动化思路 大家好&#xff0c;我是老司机。之前测试交流群里有同学问“有没有自动化测试在工作中的案例可以分享“&#xff0c;有是有的。 今天我会详细的描述一个【UI自动化实战在实际工作中的应用】&#xff0c;这是之前贝壳找房我们团队做…

Android攻城狮学鸿蒙-Tab

Entry Component struct TabPage {State message: string Hello World;private controler: TabsController new TabsController();build() {Column() {Tabs({ barPosition: BarPosition.Start, controller: this.controler }) {TabContent() {Column() {Text(哈哈哈哈).fontS…

华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试

目录 引言 1 ClickHouse简介 2 利用docker安装ClickHouse 2.1 安装Docker 2.2 下载ClickHouse Docker镜像 2.3 创建ClickHouse容器 2.4 访问ClickHouse 3 创建测试表 4 运行 clickhouse-benchmark 5 分析结果 结语 引言 利用华为云的云耀云服务器L实例&#xff0c…

C++ 用户学习 Python 的最佳方法

对于很多是一名计算机科学专业的学生而言&#xff0c;很多入门是学习的C和 C&#xff0c;可能熟悉非常基本的 python 语法&#xff0c;以及 C 中相当高级的数据结构。现在想深入学习Python的话&#xff0c;光看很多在线教程可能没法有较大的提升&#xff0c;这里有一些针对C用户…

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

概述&#xff1a;TatukGIS Developer Kernel&#xff08;DK&#xff09;是一个用于开发自定义地理信息系统&#xff08;GIS&#xff09;应用程序以及解决方案的综合性软件开发工具包&#xff08;SDK&#xff09;。本篇文章主要介绍用DK11为FMX创建一个应用程序&#xff0c;现在…

846. 树的重心

输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例&#xff1a; 4 分析&#xff1a;因为有n-1条边&#xff0c;所以每个点必然会连接到其他点&#xff0c;不存在孤立点&#xff0c;因此&#xff0c;我们从1-n任意点开始dfs都是可以的&#xff0c;因为无论怎么样&#xff0…

数据库:Hive转Presto(五)

此篇将所有代码都补充完了&#xff0c;之前发现有的代码写错了&#xff0c;以这篇为准&#xff0c;以下为完整代码&#xff0c;如果发现我有什么考虑不周的地方&#xff0c;可以评论提建议&#xff0c;感谢。代码是想哪写哪&#xff0c;可能比较繁琐&#xff0c;还需要优化。 …