--- title: Databend 开源周报第 81 期 description: slug: databend-weekly-81 date: 2023-02-20 tags: [weekly] cover_url: databend-weekly.svg image: databend-weekly.png authors: - datafuselabs --- # Databend 开源周报 第 81 期  > 英文版移步:https://databend.rs/blog/2023-02-15-databend-weekly > > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.com](https://app.databend.com) 。 ## What's New 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### Accepted RFCs :airplane_departure: - rfc: 查询结果缓存 ([#10014](https://github.com/datafuselabs/databend/pull/10014)) ### Features & Improvements :sparkles: **Planner** - 支持 `EXPLAIN ANALYZE` 语句以剖析查询执行 ([#10023](https://github.com/datafuselabs/databend/pull/10023)) - 派生新过滤器并下推 ([#10021](https://github.com/datafuselabs/databend/pull/10021)) **Query** - 变更表支持增删列 ([#9851](https://github.com/datafuselabs/databend/pull/9851)) - 新增表函数 `infer_schema` ([#9936](https://github.com/datafuselabs/databend/pull/9936)) - 为 select 增加权限检查 ([#9924](https://github.com/datafuselabs/databend/pull/9924)) - 改进带符号数值的键 ([#9978](https://github.com/datafuselabs/databend/pull/9978)) - 支持解析 jwt 元数据并添加多重身份颁发者配置 ([#9971](https://github.com/datafuselabs/databend/pull/9971)) - 支持创建文件格式 ([#10009](https://github.com/datafuselabs/databend/pull/10009)) **Storage** - 适配 OpenDAL 的原生 `scan` 支持 ([#9985](https://github.com/datafuselabs/databend/pull/9985)) - 新增 `drop_table_by_id` API ([#9990](https://github.com/datafuselabs/databend/pull/9990)) **Expression** - 新增 decimal 类型相关运算支持 ([#9926](https://github.com/datafuselabs/databend/pull/9926)) **Functions** - 支持 `array_any` 函数 ([#9953](https://github.com/datafuselabs/databend/pull/9953)) - 支持 `array_sort` 函数 ([#9941](https://github.com/datafuselabs/databend/pull/9941)) **Sqllogictest** - 为 alter table 增加 time travel 相关测试 ([#9939](https://github.com/datafuselabs/databend/pull/9939)) ### Code Refactoring :tada: **Meta** - 将应用层类型移动到 common-meta/app ([#9944](https://github.com/datafuselabs/databend/pull/9944)) - 修复 ErrorCode 滥用 ([#10056](https://github.com/datafuselabs/databend/pull/10056)) **Query** - `transform_sort_merge` 使用 heap 来排序数据块 ([#10047](https://github.com/datafuselabs/databend/pull/10047)) **Storage** - 引入 FieldIndex 和 ColumnId 类型以区分使用 ([#10017](https://github.com/datafuselabs/databend/pull/10017)) ### Build/Testing/CI Infra Changes :electric_plug: - 以 clickbench 结果格式返回基准测试结果 ([#10019](https://github.com/datafuselabs/databend/pull/10019)) - 在 s3 & fs 上均运行基准测试 ([#10050](https://github.com/datafuselabs/databend/pull/10050)) ### Bug Fixes :wrench: **Privilege** - 为 PUBLIC 角色添加 SELECT 权限,以避免普通用户执行查询的权限问题 ([#10040](https://github.com/datafuselabs/databend/pull/10040)) **Catalog** - 修复 parts 的不均匀分布 ([#9951](https://github.com/datafuselabs/databend/pull/9951)) **Planner** - 修复子查询类型断言错误 ([#9937](https://github.com/datafuselabs/databend/pull/9937)) - 启用 outer join 到 inner join 优化 ([#9943](https://github.com/datafuselabs/databend/pull/9943)) - 修复 RulePushDownLimitOuterJoin ([#10043](https://github.com/datafuselabs/databend/pull/10043)) **Query** - 修复增列更新错误 ([#10037](https://github.com/datafuselabs/databend/pull/10037)) **Storage** - 修复:查询新增 tuple 列时,仅返回默认值 ([#9973](https://github.com/datafuselabs/databend/pull/9973)) - 在 bloom filter 中,索引绑定 Column Id ([#10022](https://github.com/datafuselabs/databend/pull/10022)) ## What's On In Databend 请持续关注 Databend 的最新动态。 ### RFC: 查询结果缓存 对于不经常更新的数据,缓存其查询结果可以大大减少响应时间。一旦建立缓存,再次运行查询可以在短时间返回结果。 **阅读下述材料以了解更多讯息** - [Docs | RFC: Query Result Cache](https://databend.rs/doc/contributing/rfcs/query-result-cache) - [Tracking Issue | RFC: query result cache](https://github.com/datafuselabs/databend/issues/10011) ### 如何编写新的标量/聚合函数 创建自定义的标量或聚合函数可以增强 Databend 的可用性。尽管看上去有一些复杂,但并不困难。 下面列出的两篇文档有助于 Databend 用户和 Rust 开发者创建新的函数,包括如何创建并注册函数的分步说明,以及用于示例的代码片段,以帮助你更好了解这一过程。 **阅读下述材料以了解更多讯息** - [Docs | How to Write a Scalar Function](https://databend.rs/doc/contributing/how-to-write-scalar-functions) - [Docs | How to Write an Aggregate Function](https://databend.rs/doc/contributing/how-to-write-aggregate-functions) ### Profile-Guided Optimization Profile-guided optimization (PGO,有时会译作:概要分析指导的优化) 是一种编译器优化技术,可以在程序运行时收集执行数据,并针对冷/热代码路径进行优化。 这篇博客介绍了如何使用 PGO 技术优化 Databend 的二进制构建,并以 Databend 的 SQL 逻辑测试作为工作负载进行演示。 注意:PGO 总是要求使用在统计学上具有代表性的工作负载来生成 Perf 数据。然而,这种技术并不保证总能提高性能。是否使用这项技术需要取决于实际情况。 **阅读下述材料以了解更多讯息** - [Blog | Optimizing Databend Binary Builds with Profile-guided Optimization](https://databend.rs/blog/profile-guided-optimization) ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 重构函数相关文档 为了使文档更清晰、易于理解,我们计划重组与函数相关的文档,新的内容组织遵循与 DuckDB 文档样式。 目前这项任务已经按函数类别分解成了一系列易于完成的子任务,如果你对改进 Databend 的文档感兴趣,不妨参与进来。 [Issue 10029: Tracking: re-org the functions doc](https://github.com/datafuselabs/databend/issues/10029) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## Changlogs 前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。 地址:https://github.com/datafuselabs/databend/releases ## Contributors 非常感谢贡献者们在本周的卓越工作。      ## Connect With Us Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。 - [Databend Website](https://databend.rs) - [GitHub Discussions](https://github.com/datafuselabs/databend/discussions) - [Twitter](https://twitter.com/Datafuse_Labs) - [Slack Channel](https://link.databend.rs/join-slack)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up