Databend 开源周报第 111 期

2023-09-18 18:19:05

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。

What's On In Databend

探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。

理解 SHARE ENDPOINT

SHARE ENDPOINT 是 Databend 数据共享中的一个重要概念,用于指定数据共享实例的端点和租户名称。数据的访问方和使用方需要定义 SHARE POINT 来帮助 Databend 实例定位和访问与其共享的数据。

例如,如果租户 A 对租户 B 共享数据,那么租户 B 需要创建对应的 SHARE ENDPOINT,使租户 B 所处的实例能够定位和访问共享的数据。

CREATE SHARE ENDPOINT IF NOT EXISTS from_TenantA
    URL = '<share_endpoint_url>'
    TENANT = A
    COMMENT = 'Share endpoint to access data from Tenant A';

如果您想了解更多信息,请查看下面列出的资源。

Code Corner

一起来探索 Databend 和周边生态中的代码片段或项目。

使用 Python 创建 UDF

Databend 现在支持 UDF Server 以提供更灵活和实用的函数自定义能力。用户可以使用自己喜爱的编程语言,结合 Apache Arrow Flight API 实现 UDF Server 来与 Databend 交互,从而拓展数据库的边界,实现更丰富和高效的数据工作流。

要启用这一特性,需要使用 v1.2.116-nightly 及之后版本,并在 databend-query 的配置文件中启用 UDF Server 支持和外部访问许可:

[query]
...
enable_udf_server = true
# use your udf server address here
udf_server_allow_list = ['http://0.0.0.0:8815']
...

下面的程序展示了如何利用 Python 创建用于计算最大公约数的 UDF Server 。

from udf import *

# Define a function that accpets nullable values, and set skip_null to True to enable it returns NULL if any argument is NULL.
@udf(
    input_types=["INT", "INT"],
    result_type="INT",
    skip_null=True,
)
def gcd(x: int, y: int) -> int:
    while y != 0:
        (x, y) = (y, x % y)
    return x

if __name__ == '__main__':
    # create a UDF server listening at '0.0.0.0:8815'
    server = UdfServer("0.0.0.0:8815")
    # add defined functions
    server.add_function(gcd)
    # start the UDF server
    server.serve()

对应到 Databend 中,则可以使用下面的 SQL 语句注册 UDF 。

CREATE FUNCTION gcd (INT, INT) RETURNS INT LANGUAGE python HANDLER = 'gcd' ADDRESS = 'http://0.0.0.0:8815';

这一功能尚在预览阶段,目前我们提供用于示例和测试的 Python SDK 文件,后续将会推出更多 SDK ,欢迎感兴趣的朋友参与到 UDF 生态共建之中。

如果您想了解更多信息,请查看下面列出的资源。

Highlights

以下是一些值得注意的事件,也许您可以找到感兴趣的内容。

  • 支持 infer filter 。
  • 支持幂等删除。
  • SQLSmith 测试支持生成聚合函数、标量函数和表达式。
  • 阅读文档 Docs | INSERT INTO 和 Docs | REPLACE INTO ,了解如何使用 SQL 语句将 Stage 中数据插入到表中。

What's Up Next

我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。

为 Stage 中的 Parquet 文件提供缓存支持

Databend 为查询和内部数据支持了多种不同类型和功能缓存,以改善查询性能,比如查询混存(Query Cache)、文件元数据缓存(File Metadata Cache)、数据缓存(Data Cache)等。

但是对于位于 Stage 的文件,还缺乏有效的缓存支持。如果能够为 Stage 中的 Parquet 提供元数据缓存或者对象缓存,将有助于改善对外置数据查询的性能。

select * from 's3://aa/bb/cc/' (pattern => '.*.parquet')

Issue #12762 | feat: add object cache for stage parquet file

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 feat: add SHOW STATUS to export more metrics · Issue #8231 · datafuselabs/databend · GitHub 来挑选一个随机问题,祝好运!

New Contributors

一起认识社区中的新伙伴,Databend 因你们而变得更加美好。

Changelog

前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。

地址:https://github.com/datafuselabs/databend/releases

Contributors

非常感谢贡献者们在本周的卓越工作。

upload1a68e202a7ef0e330d79ce89e8b333eapng

Connect With Us

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

更多推荐

低代码开源项目整理

低代码是基于可视化和模型驱动理念,结合云原生与多端体验技术,它能够在多数业务场景下实现大幅度的提效降本,为专业开发者提供了一种全新的高生产力开发范式。下面就来分享几个值得学习和使用的前端低代码开源项目,更深入地了解什么是低代码。1AppsmithAppsmith是一款开源低代码框架,主要用于构建管理面板、内部工具和仪表

基于SSM+Vue的亿互游在线平台的设计与开发

末尾获取源码开发语言:JavaJava开发工具:JDK1.8后端框架:SSM前端:采用Vue技术开发数据库:MySQL5.7和Navicat管理工具结合服务器:Tomcat8.5开发软件:IDEA/Eclipse是否Maven项目:是目录一、项目简介二、系统功能三、系统项目截图用户功能模块的实现管理员功能模块的实现前台

王道考研计算机组成原理

王道考研计算机组成原理计算机系统概述计算机系统层次结构计算机的性能指标错题数据的表示和运算数制与编码运算方法和运算电路浮点数的表示与运算存储系统存储器概述主存储器主存储器与CPU的连接外部存储器高速缓冲存储器虚拟存储器指令系统指令格式指令的寻址方式程序的机器级代码表示CISC和RISC的基本概念中央处理器CPU的功能和

苹果专用解压缩推荐 BetterZip 5 中文for mac

BetterZip5是一款功能强大的解压缩软件,旨在帮助用户在Mac上快速、方便地解压缩各种压缩文件格式。它支持常见的压缩文件格式,如ZIP、RAR、7z、TAR、GZIP等,并提供了一系列高级功能和工具。以下是BetterZip5解压缩的一般步骤:打开BetterZip5:在Mac上启动BetterZip5应用程序。

TCP拥塞控制,拥塞窗口,携带应答,捎带应答,面向字节流,异常情况处理,最终完结弹

之前我们已经将TCP的前面一些性质介绍过了,接下来来介绍剩余的一些性质1.确认应答2.超时重新传输3.连接管理4.滑动窗口5.流量控制目录一、拥塞控制二、拥塞窗口三、携带应答四、粘包问题方法1:应用层协议引入分隔符方法2:应用层协议引入包长度五、TCP异常情况的处理一、拥塞控制💛总的传输效率,是一个木桶效应,取决于最

[JAVAee]SpringBoot配置文件

配置文件的介绍配置文件当中记录了许多重要的配置信息,例如:数据库的连接信息(用户的账户与密码)项目的启动端口第三方系统的调用密匙用于记录问题产生的日志在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用.配置文件中的属性也起到了类似全局变量的作用.对于一个项目,可以准备多种配置文件方便自由调用来应对不

tdesign的文件上传(微信小程序+idea的springboot)

目录1.springboot后端1.1FileController.java1.2listener文件的ErpApplicationListener.java1.3【重点!】FileServiceImpl层1.4IFileService1.5StringUtil通用类1.6主程序加一个监听器1.7application

Spring学习笔记1 启示录

写段代码,引出Spring的好处创建个空工程,然后在工程里建模块可能是IEAD版本问题,每次建新的空工程,都需要退出重进设置下maven和Encoding新建模块持久层接口持久层实现类业务层接口业务层实现类控制层(表现层)建个测试类测试分析这个程序存在的问题假设现在新需求是因某种原因需要改变Dao层的实现类并且在业务层

Feign远程调用丢失请求头

前言我们在写服务端项目的时候,总会限制对某些资源的访问,最常见的就是要求用户先登录才能访问资源,当用户登录后就会将此次会话信息保存进session,同时返回给浏览器指定的cookie键值,下次浏览器再次访问,请求头中就会携带这个cookie,我们也以次来识别用户的登录状态,做出正确响应。一、问题有时候,我们先行登录,然

什么是 Spring Boot Starter?(InsCode AI 创作助手)

当你开始使用SpringBoot开发应用程序时,你可能会听说过SpringBootStarter,它是SpringBoot框架的一个关键概念。本篇博客将详细介绍SpringBootStarter是什么,为什么它如此重要,以及如何使用它来简化SpringBoot项目的依赖管理。什么是SpringBootStarter?S

CG Magic分享同一场景里下,VR渲染器和CR渲染器哪个好?

渲染操作时,VR渲染器和CR渲染器的对比成为常见问题了。这个问题很多人都会问。今天CGMagic小编通过一个真实的项目,就是同一场景下来比较一下VR渲染器和CR渲染器的区别。以下图为例是用来测试的场景当年的最终图。采用了当年的一个伊丽莎白大街152号的项目场景,来做一下测试。1、用VR渲染,大小为2K,这张图耗时75分

热文推荐