Databend 开源周报第 90 期
Databend Labs4月 25, 2023
英文版移步:https://www.databend.com/blog/2023-04-22-databend-weekly
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。
What's On In Databend
探索 Databend 本周新进展,遇到更贴近你心意的 Databend。
元数据优化
最近,Databend 的元数据文件版本更新至 v3,序列化/反序列化效率进一步提高,同时降低了存储空间消耗。新元数据文件的体积可减少为原来的 1/20,并且性能提高 2 倍!
通过使用 Bincode,新的元数据格式能够以紧凑高效的方式序列化数据。这可以大大改善读取速度,并减少存储文件的大小。此外,通过使用 Zstd 压缩,能够进一步减少文件大小,同时保持较快的解压速度。
如果你想要了解更多信息,请查看下面列出的资源。
Code Corner
一起来探索 Databend 和周边生态中的代码片段或项目。
自定义链接器脚本进行静态链接
静态链接在需要部署到具有依赖限制的系统中时会显得非常有用。
参照 @dl00 和 @bossmc 的建议,创建自定义链接器脚本可以解决一些非预期行为。
#!/bin/bash
args=()
for arg in "$@"; do
if [[ $arg = *"Bdynamic"* ]]; then
args+=() # we do not want this arg
elif [[ $arg = *"crti.o"* ]]; then
args+=("$arg" "-Bstatic")
elif [[ $arg = *"crtn.o"* ]]; then
args+=("-lgcc" "-lgcc_eh" "-lc" "/usr/local/lib/gcc/${MUSL_TARGET}/9.4.0/crtendS.o" "$arg")
else
args+=("$arg")
fi
done
echo "RUNNING WITH ARGS: ${args[@]}"
/usr/local/bin/${MUSL_TARGET}-g++ "${args[@]}"
这个 bash 脚本根据静态链接的需要对参数进行了调整。虽然这个解决方案可能不是完美的,但可能对解决跨平台应用分发问题有一些帮助。
- ci: fix static link with libstdc++ for musl build
- link: failed to static link to c++ library when global variable is used
亮点
以下是一些值得注意的事件,也许您可以找到感兴趣的内容。
- 阅读文档 Deploying Databend on Docker 了解如何用 Docker 部署具备 MinIO 存储后端的 Databend。
- 语句现在支持带集群键的表。
REPLACE INTO
- 新增窗口函数 。
percent_rank
- 新增 JSON path 函数: ,
jsonb_path_query_first
,jsonb_path_query
.jsonb_path_query_array
- 为字符串比较新增 语法。
SOUNDS LIKE
- Meta Service 拆分日志存储和状态机存储。
- 根据虚拟列 进行惰性物化(Lazy Materialize)。
_row_id
What's Up Next
我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。
聚合索引
数据仓库中的近似查询可以重用缓存的数据以减少 IO 开销,但缓存在容量和实时性方面存在限制,并且无法解决增量计算问题。
为了解决这些挑战,OLAP 中的预聚合技术是减少数据冗余的有效方法。通常会使用物化视图来实现预聚合。Databend 计划引入聚合索引,以二级索引的方式实现物化视图。
Issue #11183 | Tracking: aggregating index feature
如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review。或者,你可以点击 https://link.databend.com/i-m-feeling-lucky 来挑选一个随机问题,祝好运!
New Contributors
一起认识社区中的新伙伴,Databend 因你们而变得更加美好。
- @neil4dong 为字符串比较新增 语法,#11043 。
SOUNDS LIKE
Changelog
前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。
地址:https://github.com/databendlabs/databend/releases
订阅我们的新闻简报
及时了解功能发布、产品规划、支持服务和云服务的最新信息!