--- title: Databend 开源周报第 146 期 description: slug: databend-weekly-146 date: 2024-05-27 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: flaneur2020 - name: kkk25641463 - name: PsiACE - name: SkyFan2002 - name: soyeric128 - name: sundy-li - name: TCeason - name: wubx - name: xudong963 - name: youngsofun - name: zhang2014 - name: ZhiHanZ - name: zhyass authors: - databendlabs --- > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.cn](https://app.databend.cn) 。 ## What's On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### 支持 `ExpressionScan` 和 `CacheScan` 为进一步提高查询的效率和性能,Databend 近期支持了 `ExpressionScan` 和 `CacheScan` 。 - ExpressionScan 允许在读取数据的同时,动态计算表达式或函数。 - CacheScan 可以从 `CacheSource::HashJoinBuil` 读取数据,从而实现侧向语义。 ```sql select t1.a, v1.c1, v1.c2 from t1 inner join lateral (values('t1_b', t1.b), ('t1_c', t1.c)) as v1 ("c1", "c2") on t1.a = v1.c2 inner join lateral (values('t1_b', t1.b), ('t1_c', v1.c1)) as v2 ("c1", "c2") on t1.a = v2.c2; ``` 其执行计划如下: ![图片](https://hackmd.io/_uploads/ByIESC-4R.png) 如果您想了解更多信息,欢迎联系 [Databend 团队](https://databend.cn/contact-us/),或查看下面列出的资源。 - [PR 15561 | feat(planner): support ExpressionScan and CacheScan](https://github.com/datafuselabs/databend/pull/15561) ## Code Corner 一起来探索 Databend 和周边生态中的代码片段或项目。 ### 了解 Embedded UDFs Databend 利用用户定义的函数(UDF)提供向 SQL 查询中嵌入自定义操作的能力。其中 Embedded UDFs 允许开发者直接在 SQL 查询中嵌入和执行编程代码。 目前 Databend 支持使用 JavaScript 和 WASM 作为 Embedded UDFs 。 ```sql CREATE FUNCTION wasm_gcd (INT, INT) RETURNS INT LANGUAGE wasm HANDLER = 'wasm_gcd(int4,int4)->int4' AS $$@data/udf/test10_udf_wasm_gcd.wasm.zst$$; SELECT number, wasm_gcd((number * 3), (number * 6)) FROM numbers(5) WHERE (number > 0) ORDER BY 1; ``` [Docs | Embedded UDFs](https://docs.databend.com/guides/query/udf#embedded-udfs) ## Highlights 以下是一些值得注意的事件,也许您可以找到感兴趣的内容。 - show grants 支持 where 和 limit 选项。 - 支持毫秒级任务调度。 - 为 OpenTelemetry 日志支持 HTTP 端点。 ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 为 UDF 增加 GRPC 接口 当前 Databend 的 UDF 服务封装在 Flight 服务中,当遇到连接问题时,很难判断这是网络问题还是服务器问题。 为了改善 Databend 在处理用户定义函数时的健壮性和透明度,需要提供一个内置的健康检查和信息报告方式,例如 `Health.info()` 接口。此接口将能够展示服务器中所有可用的 UDF 方法,从而简化问题的诊断过程。通过运行如下命令,用户可以快速检查服务状态: ```bash grpcurl grpc.server.com:443 com.databend.udf.Health/info ``` [Issue #15645 | feat: add a grpc info interface to UDF server framework](https://github.com/datafuselabs/databend/issues/15645) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## Changelog 前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。 地址:https://github.com/datafuselabs/databend/releases ## Contributors 非常感谢贡献者们在本周的卓越工作。 ![图片](https://hackmd.io/_uploads/BkqU7A-NC.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)