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
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
非常感谢贡献者们在本周的卓越工作。
Meet Us
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
-
Databend Website :https://databend.rs/
-
Weekly :https://weekly.databend.rs/
-
GitHub Discussions :https://github.com/datafuselabs/databend/discussions
-
Twitter :https://twitter.com/Datafuse_Labs
-
Slack Channel :https://link.databend.rs/join-slack