Databend 开源周报第 114 期
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。
What's On In Databend
探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。
MERGE INTO
MERGE INTO 语句用于根据指定的条件和匹配标准,在目标表中执行对行的插入、更新或删除操作,使用来自指定源的数据。
MERGE INTO 中通常会包含若干 MATCHED
或 NOT MATCHED
子句:对于 MATCHED
子句,可以对目标表进行更新或者删除,而如果是 NOT MATCHED
子句,则可以插入数据。
-- Merge data into 'salaries' based on employee details from 'employees' MERGE INTO salaries USING (SELECT * FROM employees) ON salaries.employee_id = employees.employee_id WHEN MATCHED AND employees.department = 'HR' THEN UPDATE SET salaries.salary = salaries.salary + 1000.00 WHEN MATCHED THEN UPDATE SET salaries.salary = salaries.salary + 500.00 WHEN NOT MATCHED THEN INSERT (employee_id, salary) VALUES (employees.employee_id, 55000.00);
MERGE INTO 语句目前属于实验阶段,可以执行 SET enable_experimental_merge_into = 1;
启用这个特性。
如果您想了解更多信息,请查看下面列出的资源。
Code Corner
一起来探索 Databend 和周边生态中的代码片段或项目。
Python Binding 和 Local 模式支持配置数据路径
Databend 的 Local 模式现已支持通过 DATABEND_DATA_PATH
环境变量来控制元数据和数据文件的存放位置。
DATABEND_DATA_PATH=/tmp/data/ databend-query local -q "create table abc(a int); insert into abc values(3);"
Databend 的 Python Binding 同样遵循 DATABEND_DATA_PATH
,但是需要在使用 databend
之前进行定义这一环境变量。
import os os.environ["DATABEND_DATA_PATH"] = "/tmp/def/" from databend import SessionContext
如果您想了解更多信息,请查看下面列出的资源。
Highlights
以下是一些值得注意的事件,也许您可以找到感兴趣的内容。
- 改进 Hash Join ,性能在部分场景下提升 10% 。
- 改进 MERGE INTO 的并行执行。
- 改进 CI,使用
quickinstall
安装相关二进制工具,使用nextest
执行单元测试。
What's Up Next
我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。
删除 Internal Stage 时同时移除文件
Internal Stage 将数据文件暂存在 Databend Query 配置中指定的存储后端中。
考虑到在删除 Internal Stage 之后,用户将无法访问其中暂存的数据文件。因此,有必要考虑在删除 Internal Stage 同时移除其中暂存的文件。
Issue #12986 | remove files at the same time of drop internal stage
如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!
Changelog
前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。
地址:https://github.com/datafuselabs/databend/releases
Contributors
非常感谢贡献者们在本周的卓越工作。
Connect With Us
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
深入理解线段树 | 京东物流技术团队
线段树(Segment Tree)是常用的维护区间信息的数据结构,它可以在 O(logn) 的时间复杂度下实现单点修改、区间修改、区间查询(区间求和、区间最大值或区间最小值)等操作,常用来解决 RMQ 问题。 RMQ(Range Minimum/Maximum Query) 问题是指:对于长度为 n 的数列 A,回答若干询问 RMQ(A, i, j) 其中 i, j <= n,返回数列 A 中下标在 i, j 里的最小(大)值。也就是说:RMQ问题是指求区间最值的问题。通常该类型题目的解法有递归分治、动态规划、线段树和单调栈/单调队列。 这篇内容断断续续写了两周,随着练习对线段树的理解不断深入,慢慢地学习下来也不觉得它有多么困难,更多的体会还是熟能生巧,虽然它起初看上去确实代码量大一些,但是我觉得只要大家放平心态,循序渐进的掌握下文中的三部分,也没什么难的。 1. 线段树 线段树会将每个长度不为 1 的区间划分成左右两个区间来递归求解,通过合并左右两区间的信息来求得当前区间的信息。 比如,我们将一个大小为 5 的数组 nums = {10, 11, 12, 13, 14} 转换成...
- 下一篇
Go通道机制与应用详解
本文深入探讨了Go语言中通道(Channel)的各个方面,从基础概念到高级应用。文章详细解析了通道的类型、操作方法以及垃圾回收机制,更进一步通过具体代码示例展示了通道在数据流处理、任务调度和状态监控等多个实际应用场景中的作用。本文旨在为读者提供一个全面而深入的理解,以更有效地使用Go中的通道进行并发编程。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 一、概述 Go语言(也称为Golang)是一个开源的编程语言,旨在构建简洁、高效和可靠的软件。其中,通道(Channel)是Go并发模型的核心概念之一,设计目的是为了解决不同协程(Goroutine)间的数据通信和同步问题。通道作为一个先进先出(FIFO)的队列,提供了一种强类型、线程安全的数据传输机制。 在Go的并发编程模型中,通道是一个特殊的数据结构,其底层由数组和指针组成,并维护着一系列用于数据发送和接收的状态信息。与使用全局变量...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题