Databend 开源周报 #66

Databend 是一款强大的云数仓。专为弹性和高效设计,自由且开源。

即刻体验云服务:https://app.databend.com

New Features

RFC

  • User Stage (#8519)

user stage

  • 新增对 internal 和 legacy internal stage 的支持 (#8526)

  • 实现 user stage 支持并添加 stateful tests (#8556)

multiple catalog

  • 实现 multiple catalog 相关的 AST (#8608)

hive

  • hive 预测下推 (#8469)

  • 使 substr 以及带空值的 order by 与 hive 函数兼容 (#8558)

rbac

  • "SHOW ROLES" 语句只显示可用的用户 (#8553)

compatibility

  • 支持使用 mydumper 转储数据 (#8500)

auth

  • 新增 auth 模块并支持 sharing endpoint 使用文件令牌(token)(#8607)

format

  • 允许 TSV 中存在嵌套字段 (#8606)

  • 统一 format 相关的设置和选项 (#8566)

hashtable

  • 字符串自适应哈希表 (#7971)

meta

  • 自动清理过期的 key (#8539)

  • 添加对新的 key-space: Expire 的支持 (#8578)

query

  • 为 databend-query 优化 logging 格式 (#8466)

Code Refactor

error handler

  • 新增 internal error 类别并将其他不需要的错误进行合并 (#8581)

interpreter

  • 将 "interpreter_common.rs" 拆分 (#8593)

query

  • 移除遗留的代码 (#8412)

  • 避免额外的 memcpy (#8569)

  • 将序列化合并到新表达式模块中 (#8582)

storage

  • 使 "BlockMeta" 易于克隆 (#8548)

new expression

  • timestamp 转换为 variant string 而不是 variant int (#8580)

Bug Fix

compatibility

  • 兼容 mysqldump 5.7.16 "/*!code" 查询 (#8485)

planner

  • 修复「select view 时出现 column not exists 报错」的问题 (#8543)

query

  • nullable(Int) 与空值相除不应当报错 (#8495)

  • 修复「设置 "AUTH ROLE" 之后 "CURRENT ROLE" 的行为异常」的问题 (#8546)

storage

  • 为 compact 添加 limit 支持 (#8473)

  • 修复「在减少 BlockMeta 时,索引大小不正确」的问题 (#8428)

News

Datafuse Labs / Databend 本周新动态!

字符串自适应哈希表

String Adaptive Hash Table 是 Databend 社区在「2022 开源软件供应链点亮计划」的项目之一。@usamoi 帮助我们完成了这一重要的工作,现在代码已经合并到 Databend 代码库中并且带来特定场景下 20% - 50% 的性能提升。

String Adaptive Hash Table 是专为字符串类型的 key 所设计的哈希表,根据 key 的不同长度来匹配不同的数据结构,达到优化插入和读取的效果。

阅读下面列出的材料以了解更多讯息

  • PR | adaptive string hash table

  • Paper | SAHA: A String Adaptive Hash Table for Analytical Databases

  • GitHub - usamoi/saha

RFC: User Stage

Databend 仅支持 named internal stage:

 CREATE STAGE @my_stage;
COPY INTO my_table FROM @my_stage;

然而, named internal stage 在一些场景下使用会相对复杂。特别是对于只希望使用 stage 加载数据的用户而言。通过支持 user stage ,这部分用户就可以更高效地复制数据:

 COPY INTO my_table from @~;

阅读下面列出的材料以了解更多讯息

  • RFC: User Stage

  • Tracking issues of RFC: User Stage

Issues

遇到你可能会感兴趣的问题,欢迎试着解决它。

使用 DashMap 替换 "RwLock" 和 "Mutex"

DashMap 是 Rust 中的并发关联数组 / 哈希表实现,它致力于提供简单易用的 API 并成为 "RwLock<HashMap<K, V>>" 的一种直接替代品。

使用 DashMap 可能会带来两个优点:

  • 更简洁的代码

  • 潜在的性能提高

Issue 8601: Feature: replace RwLock and Mutex by using DashMap

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!

Changlogs

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

地址:https://github.com/datafuselabs/databend/releases

Contributors

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

image.png

Meet Us

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

posted @ 2022-11-23 14:53  Databend  阅读(203)  评论(0编辑  收藏  举报