Databend 产品月报(2025年3月)
很高兴为您带来 Databend 2025 年 3 月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。
仪表盘共享
您现在可以在 Databend Cloud 上与组织内的所有人或特定个人共享您的仪表盘,并选择以下权限级别之一来控制他人对其的访问方式:
- 只读 (Read Only) :查看仪表盘,但无法进行更改或运行查询以获取最新结果。
- 执行(Execute) :运行查询以获取最新结果或与仪表盘交互,但无法修改它。
- 编辑(Edit) :修改仪表盘,包括更改查询和仪表盘如何反映结果。
使用来自另一个表的值更新表
UPDATE
命令已增强,允许使用来自另一个表的值更新表。
UPDATE bookstore SET book_name = book_updates.new_book_name FROM book_updates WHERE bookstore.book_id = book_updates.book_id;
最小日期和时间戳调整
我们已更新日期和时间戳数据类型的最小值:
- 最小日期:
0001-01-01
- 最小时间戳:
0001-01-01 00:00:00.00000
对用户名称和角色名称的限制
Databend 不允许 SQL 用户或角色名称包含以下特殊字符:
- 单引号(')
- 双引号(")
- 退格符(\b)
- 换页符(\f)
使用 enable_expand_roles
管理角色继承
enable_expand_roles
设置确定 SHOW_GRANTS
函数是否显示来自角色的继承权限。默认设置为 1
,它递归地扩展所有权限;当设置为 0
时,它仅显示直接权限和角色授予。例如:
当 enable_expand_roles
=1 时:
SELECT grants FROM show_grants('role', 'a') ORDER BY object_id; ┌──────────────────────────────────────────────────────┐ │ grants │ ├──────────────────────────────────────────────────────┤ │ GRANT SELECT ON 'default'.'default'.'t1' TO ROLE `a` │ │ GRANT SELECT ON 'default'.'default'.'t2' TO ROLE `a` │ └──────────────────────────────────────────────────────┘
当 enable_expand_roles
=0 时:
SELECT grants FROM show_grants('role', 'a') ORDER BY object_id; ┌──────────────────────────────────────────────────────┐ │ grants │ ├──────────────────────────────────────────────────────┤ │ GRANT SELECT ON 'default'.'default'.'t1' TO ROLE `a` │ │ GRANT ROLE b to ROLE `a` │ │ GRANT ROLE public to ROLE `a` │ └──────────────────────────────────────────────────────┘
日志级别配置更新
databend-query.toml
配置文件中的 [log.file]
和 [log.stderr]
设置现在使用 env_logger
语法(error, warn, info, debug, trace, off),默认设置为 warn,databend_=info,openraft=info
,以实现灵活的日志控制。
Iceberg 表函数
Databend 引入了以下表函数用于查询 Iceberg 元数据,允许用户高效地检查快照和清单:
-
ICEBERG_MANIFEST:返回 Iceberg 表的清单文件的元数据,包括文件路径、分区详细信息和快照关联。
SELECT * FROM ICEBERG_MANIFEST('tpcds', 'catalog_returns');
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ content │ path │ length │ partition_spec │ added_snapshot │ added_data_fil │ existing_data_ │ deleted_data_ │ added_delete_ │ existing_dele │ deleted_delet │ partition_sum │ │ Int32 │ String │ Int64 │ _id │ _id │ es_count │ files_count │ files_count │ files_count │ te_files_coun │ e_files_count │ maries │ │ │ │ │ Int32 │ Nullable(Int64 │ Nullable(Int32 │ Nullable(Int32 │ Nullable(Int3 │ Nullable(Int3 │ t │ Nullable(Int3 │ Array(Nullabl │ │ │ │ │ │ ) │ ) │ ) │ 2) │ 2) │ Nullable(Int3 │ 2) │ e(Tuple(Nulla │ │ │ │ │ │ │ │ │ │ │ 2) │ │ ble(Boolean), │ │ │ │ │ │ │ │ │ │ │ │ │ Nullable(Bool │ │ │ │ │ │ │ │ │ │ │ │ │ ean), String, │ │ │ │ │ │ │ │ │ │ │ │ │ String))) │ ├─────────┼────────────────┼────────┼────────────────┼────────────────┼────────────────┼────────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ │ 0 │ s3://warehouse │ 9241 │ 0 │ 75657674165904 │ 2 │ 0 │ 0 │ 2 │ 0 │ 0 │ [] │ │ │ /catalog_retur │ │ │ 11866 │ │ │ │ │ │ │ │ │ │ ns/metadata/fa │ │ │ │ │ │ │ │ │ │ │ │ │ 1ea4d5-a382-49 │ │ │ │ │ │ │ │ │ │ │ │ │ 7a-9f22-1acb9a │ │ │ │ │ │ │ │ │ │ │ │ │ 74a346-m0.avro │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-
ICEBERG_SNAPSHOT:返回 Iceberg 表的快照元数据,包括数据更改、操作信息和摘要统计信息。
SELECT * FROM ICEBERG_SNAPSHOT('tpcds', 'catalog_returns');
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ committed_at │ snapshot_id │ parent_id │ operation │ manifest_list │ summary │ ├────────────────────────────┼─────────────────────┼───────────┼───────────┼──────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤ │ 2025-03-12 23:18:26.626000 │ 7565767416590411866 │ 0 │ append │ s3://warehouse/catalog_returns/metadata/snap-7565767 │ {'spark.app.id':'local-1741821433430','added-data-f │ │ │ │ │ │ 416590411866-1-fa1ea4d5-a382-497a-9f22-1acb9a74a346. │ iles':'2','added-records':'144067','total-equality- │ │ │ │ │ │ avro │ deletes':'0','changed-partition-count':'1','total-r │ │ │ │ │ │ │ ecords':'144067','total-files-size':'7679811','tota │ │ │ │ │ │ │ l-data-files':'2','added-files-size':'7679811','tot │ │ │ │ │ │ │ al-delete-files':'0','total-position-deletes':'0'} │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
[新功能预览] 表函数 fuse_vacuum2()
fuse_vacuum2()
表函数根据 data_retention_time_in_days
的设置,帮助用户清理 Fuse 表中过时的数据,回收存储空间并提升查询性能。
SET data_retention_time_in_days = 0; SELECT * FROM fuse_vacuum2('<database>', '<table>');
[新功能预览] Hilbert Clustering 优化
Databend 引入 基于范围的分区 来增强 Hilbert Clustering,使数据组织更加高效。它通过 对 Clustering Key 进行采样 、分配范围分区 ID 以及 计算 Hilbert 索引,从而实现更好的数据裁剪(pruning)和聚类,提高查询性能。
关于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
👨💻 Databend Cloud:databend.cn
📖 Databend 文档:docs.databend.com
💻 Wechat:Databend
✨ GitHub:github.com/databendlab...

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
业务复杂度治理方法论--十年系统设计经验总结
作者:京东物流 尹昊喆 一、复杂度综述 1、什么是复杂度 软件设计的核心在于降低复杂性。 --《软件设计的哲学》 业界对于复杂度并没有统一的定义,斯坦福教授John Ousterhout从认知负担和工作量方面给出了一个复杂度量公式 子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C 这里的子模块复杂度cp是一个经验值 需要注意:如果一个子系统特别复杂,但是很少使用及修改,也不会对整体复杂度造成太大影响。例:spring框架内部代码较为复杂,但由于几乎不需要我们去变动,所以对系统的整体复杂度影响并不大 2、复杂度分类 本文主要面向业务复杂度的治理 3、业务复杂度高的影响 (1)研发成本高。需要花费更多的时间去理解、维护代码;同样的需求,可能需要要修改更多的工程和类 (2)稳定性差。过高的业务复杂度,会导致系统难以理解甚至理解出现错漏,改动代码后极易出现“按下葫芦起了瓢”的问题 二、业务系统复杂度高的常见原因 1、业务系统模块多,关系复杂,互相依赖 比如一个电商业务,会包含商品、订单、采购、库存、财务等多个系统,...
- 下一篇
MCP 是 USB,但 ANP 可能是 HTTP
MCP 火了! MCP(Model Context Protocol ,模型上下文协议)是一个由 Anthropic 发布的开放协议,使 LLM 应用能够与外部数据源和工具无缝集成。无论是构建AI驱动的IDE、增强聊天界面,还是创建自定义AI工作流,MCP都提供了一种标准化方式,将LLM与所需的上下文连接起来。在模型调用工具资源方面已经成为行业事实标准。 几天前,OpenAI宣布其智能体 ——OpenAI Agents SDK 已支持大模型上下文协议 MCP,并表示称正在为 OpenAI API 和 ChatGPT 桌面应用程序开发 MCP 支持。有了 OpenAI 的支持,未来国内外巨头大概率会积极跟进。 也就是说,基本可以确定不会有第二个 MCP 了。但是要说智能体通信协议,还是有机会的。 杭州比特智元 CEO、智能体通信协议 ANP 作者常高伟认为,MCP不是为智能体而设计,它是为模型连接外部资源和工具而设计的。而且 MCP 本身设计存在一些问题,比如复杂性问题,客户端和服务器耦合问题,分布式身份鉴权问题等,需要解决。 目前在智能体通信领域,比较完备的开源项目,除了MCP,可能就...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G