--- title: Databend 开源周报第 123 期 description: slug: databend-weekly-123 date: 2023-12-11 tags: [weekly] cover_url: databend-weekly.svg image: databend-weekly.png contributors: - name: akoshchiy - name: andylokandy - name: b41sh - name: BohuTang - name: Chasen-Zhang - name: Dousir9 - name: everpcpc - name: flaneur2020 - name: guojidan - name: JackTan25 - name: leiysky - name: lichuang - name: PsiACE - name: RinChanNOWWW - name: SkyFan2002 - name: soyeric128 - name: sundy-li - name: TCeason - name: Xuanwo - name: xudong963 - name: youngsofun - name: zenus - name: zhang2014 - name: zhyass authors: - databendlabs --- ![img_v3_025j_02d44002-134e-4ce7-9980-2645ef88954g](https://hackmd.io/_uploads/H1dFagEU6.png) > 英文版移步:https://databend.com/blog/2023-12-10-databend-weekly > > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.cn](https://app.databend.cn) 。 ## What's On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### 支持统计和显示合并状态 Databend 现在支持统计和显示 `MERGE INTO` 的状态,在执行合并之后,会返回受更新/删除/插入影响的行数: ```sql 🐳 :) create table t1(a int); 🐳 :) create table t2(b int); 🐳 :) insert into t1 values(1),(3); 🐳 :) insert into t2 values(1),(3),(4); 🐳 :) merge into t1 using t2 on t1.a = t2.a when matched and t2.a = 1 then update * when matched then delete when not matched then insert *; +-------------+-------------+-------------+ | insert_rows | update_rows | delete_rows | +-------------+-------------+-------------+ | 1 | 1 | 1 | +-------------+-------------+-------------+ ``` 如果您想了解更多信息,欢迎联系 [Databend 团队](https://databend.cn/contact-us/),或查看下面列出的资源。 - [PR #13903 | feat: add merge status](https://github.com/datafuselabs/databend/pull/13903) ## Code Corner 一起来探索 Databend 和周边生态中的代码片段或项目。 ### 使用 clippy.toml 添加自定义 Clippy 规则 [rust-clippy](https://github.com/rust-lang/rust-clippy/) 是 Rust 官方提供的代码检查工具,通过静态分析来发现问题或不符合规范的代码。 通过配置 `clippy.toml` 文件,可以制定项目 Clippy 规则,统一代码开发规范,提供最佳实践指引。 例如,可以使用下面的 lints 提示开发者使用 `std::sync::LazyLock` 来代替 `lazy_static::lazy_static` 。 ```toml disallowed-macros = [ { path = "lazy_static::lazy_static", reason = "Please use `std::sync::LazyLock` instead." }, ] ``` - [PR #13926 | chore(query): remove extra error code construction](https://github.com/datafuselabs/databend/pull/13926) ## Highlights 以下是一些值得注意的事件,也许您可以找到感兴趣的内容。 - 支持 `json_path_match` 函数和 `@?`、`@@` 算符。 - 使用 volo thrift 替换上游不再积极维护的 thrift 。 - 阅读文档 [Docs | Tutorial: Dashboarding Covid-19 Data from New York Times](https://docs.databend.com/cloud/using-databend-cloud/dashboard#tutorial-dashboarding-covid-19-data-from-new-york-times) 了解如何使用 Databend Cloud Dashboard 创建和管理可视化图表。 ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 为 INFER_SCHEMA 添加更多数据文件类型支持 Databend 支持 `infer_schema` 表函数,可以推断数据文件的模式,方便数据载入和分析流程。 用法参见下面的示例: ```SQL SELECT * FROM INFER_SCHEMA(location => '@infer_parquet/data_e0fd9cba-f45c-4c43-aa07-d6d87d134378_0_0.parquet'); +-------------+-----------------+----------+----------+ | column_name | type | nullable | order_id | +-------------+-----------------+----------+----------+ | number | BIGINT UNSIGNED | 0 | 0 | +-------------+-----------------+----------+----------+ ``` 目前,`infer_schema` 只支持对 Parquet 类型数据文件的模式推断,我们希望为其添加 CSV 、JSON 等更多常用数据文件类型的支持。 [Issue #13959 | INFER_SCHEMA supports more file types](https://github.com/datafuselabs/databend/issues/13959) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## Changelog 前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。 地址:https://github.com/datafuselabs/databend/releases ## Contributors 非常感谢贡献者们在本周的卓越工作。 ![图片](https://hackmd.io/_uploads/B1ggQUELa.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)