--- title: Databend 开源周报第 129 期 description: slug: databend-weekly-129 date: 2024-01-22 tags: [weekly] cover_url: databend-weekly.svg image: databend-weekly.png contributors: - name: andylokandy - name: b41sh - name: BohuTang - name: Chasen-Zhang - name: dantengsky - name: Dousir9 - name: drmingdrmer - name: everpcpc - name: JackTan25 - name: leiysky - name: lichuang - name: PsiACE - name: soyeric128 - name: sundy-li - name: TCeason - name: Xuanwo - name: xudong963 - name: youngsofun - name: zhang2014 - name: ZhiHanZ - name: zhyass authors: - databendlabs --- ![img_v3_026u_c7ea2269-4120-43d6-8825-a12044bad7ag](https://hackmd.io/_uploads/H1oGEojKa.png) > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.cn](https://app.databend.cn) 。 ## What's On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### 支持标准流 **标准流** 能够捕获所有类型的数据变更,包括更新和删除。相较于仅追加流,标准流的功能更加完备,并且适用于更加复杂的数据变更场景。 `CREATE STREAM` 的语法也支持了选项用于控制流的类型。 ```sql CREATE STREAM [IF NOT EXISTS] [<database_name>.]<stream_name> ON TABLE [<database_name>.]<table_name> [AT (STREAM => <stream_name>)] [append_only = true|false] [COMMENT = '<comment>'] ``` - 如果 `append_only=true`,创建仅追加流(append_only stream),仅用于追加数据,不跟踪更新或删除。 - 如果 `append_only=false`,创建标准流(standard stream)。能够捕获所有类型的数据变更,包括更新和删除,提供全面的数据修改跟踪。 如果您想了解更多信息,欢迎联系 [Databend 团队](https://databend.cn/contact-us/),或查看下面列出的资源。 - [PR #14272 | feat: standard stream](https://github.com/datafuselabs/databend/pull/14272) ## Code Corner 一起来探索 Databend 和周边生态中的代码片段或项目。 ### ~300 行实现 Raft 共识算法 Databend 的元数据服务使用 Raft 共识算法,并且开源和维护了 [openraft](https://github.com/datafuselabs/openraft) 这个基于 tokio 的异步 Raft 实现。 [one_file_raft](https://github.com/drmingdrmer/one_file_raft) 是一个简洁的演示性实现,在大约 300 行有效代码的单个 Rust 文件中实现了 Raft 共识算法,文件长度大约300行。 由 openraft 的主要维护者 [drmingdrmer](https://github.com/drmingdrmer) 创建,用于展示分布式共识协议的核心原理,不涉及应用特定的业务逻辑、边缘情况管理和错误处理的复杂性。该实现关注于 Raft 的基础特性,如领导者选举、日志复制和日志提交,同时省略了高级功能,如日志压缩和日志清理。 - [GitHub - drmingdrmer/one_file_raft](https://github.com/drmingdrmer/one_file_raft) ## Highlights 以下是一些值得注意的事件,也许您可以找到感兴趣的内容。 - 支持 Query 级别的缓存统计。 - 为分布式查询实现基于成本的优化。 - 新增日期相关函数 `MONTHS_BETWEEN` 。 - 新增任务 DAG 相关函数 `TASK_DEPENDENTS` 和 `TASK_DEPENDENTS_ENABLE` 。 - admin API 新增 `v1/system` 接口,用于展示系统信息。 ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 租户数据迁移工具 `databend-metactl --export` 支持一次性导出所有元数据服务中的数据。但目前还缺乏用于迁移属于特定租户的确切数据的工具。 为了进一步满足多租户场景下的元数据迁移,Databend 计划设计并实现一个专用工具。该工具会导出并解码元数据服务中的数据,并从中过滤掉不必要的数据。 [Issue #14405 | Tracking issue: dump data belonging to a tenant from meta-service](https://github.com/datafuselabs/databend/issues/14405) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## Changelog 前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。 地址:https://github.com/datafuselabs/databend/releases ## Contributors 非常感谢贡献者们在本周的卓越工作。 ![图片](https://hackmd.io/_uploads/rybZNjsYp.png) ## 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)