AI大模型时代必须关注的数据库 DuckDB1.0 正式发布

图片

开源数据库DuckDB1.0 经过内部6年的打磨,积累了30万行代码,1.8万star,2024.06.03号正式发布了1.0版本(代号 Snow Duck)。

我们新一代程序员,没能见证MySQL 1.0、PostgreSQL 1.0、Windows 1.0、Linux 1.0、Java 1.0。但是今天有幸见证 DuckDB 这样一个伟大的产品发布了1.0,我不知道她会不会发展为AI时代最耀眼的数据库,但她已经可以轻松访问AI大模型与数据聚居地Hugging Face的数据,她还可以使用GPU加速运算

DuckDB非常擅长大数据量的分析,基于列式数据存储与向量计算与当红的ClickHouse理念类似,但相比ClickHouse,他有非常优秀的优化器和复杂查询计算能力,本人2周前TPC-H 200GB的数据测试中,DuckDB仅用了ClickHouse 1/10的时间,轻松完成测试。

图片

2019年数据库最顶级的会议ACM SIGMOD有一篇DuckDB论文,介绍了DuckDB的理念,定位是嵌入式分析型数据库,理念对标OLTP领域的SQLite。SQLite现在是全球装机量最大的数据库,据说超过80亿个,手机里的主流APP 微信、淘宝、Twitter和浏览器、汽车里都内置了至少一个SQLite。

图片

论文地址:https://duckdb.org/pdf/SIGMOD2019-demo-duckdb.pdf

DuckDB使用

DuckDB与PostgreSQL、SQLite、MonetDBLite都有渊源,她继承了MonetDBLite的发展,参考和使用了PostgrSQL的解析器代码,同时还兼容了很多SQLite的接口。

DuckDB是嵌入式架构,使用很简单,不需要安装,他支持Java、C/C++、Python、Go等主流语言接口和CLI操作。在Java里面只需要maven引入一个jar包即可在本机上管理数据库,支持标准的jdbc接口,如下:

图片

下面是Python的用法,是不是更简单易用。

图片

如果你是AI数据程序员,你应该要想想如何使用DuckDB来处理数据,而不是Python语言那蜗牛性能,使用DuckDB有可能数据处理效率会提升100倍,如果再结合GPU加速的DuckDB,要上天了。

DuckDB可以直接用SQL读取本地或者远程(HTTP、S3)的csv和parquet文件,类似下面的SQL方法:

# SQL读取本地csvSELECT * FROM 'myfile.csv';# SQL读取本地parquetSELECT * FROM 'myfile.parquet';# SQL读取http远程文件SELECT * FROM 'https://domain.tld/file.parquet';# SQL读取AWS 对象存储S3上的文件SELECT * FROM 's3://my-bucket/file.parquet';# DuckDB最近还新增了用SQL读取Hugging Face上的数据文件,这是搞AI同学一定要学习的利器啊SELECT * FROM 'hf://datasets/datasets-examples/doc-formats-csv-1/data.csv';

DuckDB另一个特性是可以非常轻松的扩展插件,通过插件,他可以很简单的访问MySQL、PostgreSQL数据库,还可以快速完成TPC-H、TPC-DS测试,DuckDB的插件思想应该是学习了PostgreSQL理念。

DuckDB团队

DuckDB早期是由荷兰阿姆斯特丹CWI(国家数学和计算机科学研究学会)的Hannes和Mark两位大神开发的,CWI也是Python诞生的地方,他们还成立了DuckDB基金会和DuckDB Labs公司,以保障产品的顺利发展,现在核心开发人员10人左右。

另外业界有一家创业公司MotherDuck,基于DuckDB提供云服务,已经获得超过1亿美金的融资,他们也是DuckDB的重要赞助企业。

DuckDB Labs现在有18人,包括2个创始人( CEO Hannes,CTO Mark)CTO是最主力的程序员,50%的代码是他1人完成,另外还有13个程序员,1个测试实习生,1个人负责开发者生态,1个人负责培训与文档,里面应该不少都是Hannes教授的弟子。

图片

DuckDB1.0.0发布官方公告

以下内容翻译自DuckDB发布的官方博客:

https://duckdb.org/2024/06/03/announcing-duckdb-100

DuckDB 1.0.0 发布

马克·拉斯维尔特(Mark Raasveldt)和汉内斯·穆莱森(Hannes Mühleisen)2024-06-03

TL;DR:DuckDB 团队非常高兴地宣布,今天我们发布了 DuckDB 1.0.0 版本,代号为“Snow Duck”(anas nivis)。

要安装新版本,请访问安装指南。有关发行说明,请参阅发行页面。

自 2018 年为该项目编写第一个源代码以来,已经过去了将近六年,此后发生了很多事情:现在有超过 300,000 行 C++ 引擎代码,超过 42,000 次提交,近 4,000 个问题被打开和关闭。DuckDB 也获得了极大的人气:该项目在 GitHub 和社交媒体平台上吸引了数以万计的明星和追随者。每个月的下载量以百万计,仅扩展程序的下载流量每天就超过 4 TB。甚至有关于DuckDB的书在写,最重要的是,现在甚至维基百科也认为DuckDB是值得注意的,尽管几乎没有。

为什么现在发布?

当然,版本号有些武断和“费力”,尽管试图使它们更加机械。我们本可以在 2018 年发布 DuckDB 1.0.0,或者我们可以再等十年。从来没有一个伟大的时刻,因为软件(TeX除外)永远不会“完成”。为什么选择今天?

数据管理系统(即使是纯粹的分析系统)是任何应用程序的核心组件,其开发人员和用户之间始终存在隐含的信任契约。用户依靠数据库来提供正确的查询结果,并且不会丢失其数据。同时,系统开发人员需要意识到他们的责任,即不随意破坏人们的应用程序。直观地说,版本 1.0.0 对数据管理系统的意义大于对煮蛋计时器应用程序的意义(没有冒犯)。从一开始,我们就致力于使 DuckDB 成为人们构建应用程序的可靠基础。这也是为什么 1.0.0 版本以不存在的雪鸭 (anas nivis) 命名的原因,让人想起几年前 Apple 的 Snow Leopard 版本。

对我们来说,发布 1.0.0 的主要障碍之一是存储格式。DuckDB 有自己定制的数据存储格式。这种格式允许用户在单个文件中管理许多(可能非常大)的表,具有完整的事务语义和最先进的压缩。当然,设计一种新的文件格式并非没有挑战,随着时间的推移,我们不得不对格式进行重大更改。这导致了次优的情况,即每当发布新的 DuckDB 版本时,使用旧版本创建的文件无法与新的 DuckDB 版本一起使用,必须手动升级。这个问题在 2 月份的 v0.10.0 中得到了解决——我们为 DuckDB 的存储格式引入了向后兼容性和有限的向前兼容性。这个功能现在已经在野外使用了一段时间,没有出现严重问题——这让我们有信心保证使用 DuckDB 1.0.0 创建的 DuckDB 文件将与未来的 DuckDB 版本兼容。

稳定性

1.0.0 版本的核心主题是稳定性。这与以前的版本形成鲜明对比,在以前的版本中,我们已经有博客文章讨论了一长串新功能。相反,1.0.0 版本的新功能非常有限(一些可能已经 偷偷溜进来了)。相反,我们的重点一直是稳定性。

坦率地说,我们已经观察到 DuckDB 在野外使用的数量和广度的惊人增长,并且没有看到报告的严重问题增加。同时,每天晚上都有数千个测试用例和数百万个测试查询。我们运行了大量的微基准测试和标准化基准测试套件来发现性能回归。DuckDB 不断受到各种模糊器的折磨,这些模糊器构建了各种形式的野生 SQL 查询,以确保我们不会错过奇怪的极端情况。总而言之,这为我们发布 1.0.0 建立了必要的信心。

1.0.0 版本稳定性的另一个核心方面是跨版本的稳定性。虽然永远不可能破坏任何人的工作流程,但我们计划在未来更加谨慎地对待面向用户的更改。特别是,我们计划专注于为 SQL 方言以及 C API 提供稳定性。虽然我们不能保证将来永远不会更改这些层的语义,但我们会在这样做时尝试提供充分的警告,并提供允许以前工作的代码继续工作的解决方法。

展望未来

与许多开源项目不同,DuckDB 也有一个健康的长期融资策略。DuckDB Labs 是雇用 DuckDB 核心贡献者的公司,没有任何外部投资,因此,该公司完全归团队所有。Labs 的商业模式是为 DuckDB 提供咨询和支持服务,我们很高兴地报告进展顺利。凭借合同收入,我们拥有近 20 人的团队,为长期和战略性的 DuckDB 开发提供资金。同时,该项目的知识产权由独立的DuckDB基金会保护。这个非营利性基金会确保 DuckDB 将在 MIT 许可下长期存在。

关于长期计划,当然,路线图上还有很多事情。我们非常兴奋的一件事是能够围绕 DuckDB 扩展扩展环境。扩展是插件,可以添加新的 SQL 级函数、文件格式、优化器等,同时保持 DuckDB 核心的均值和精益。DuckDB 已经有大量第三方扩展,我们正在努力简化构建和分发社区贡献的扩展的过程。我们认为 DuckDB 可以成为下一次数据革命的基础,通过社区扩展通过高性能数据结构连接,可通过统一的 SQL 接口访问。

当然,在今天的版本中会发现一些问题。但请放心,将会有一个 1.0.1 版本。将有一个 1.1.0。在某个时候也可能有 2.0.0。从长远来看,我们所有人都在一起。我们有团队、结构和资源来做到这一点。

致谢

首先,我们非常感谢大家。我们衷心感谢所有贡献代码、提交问题或参与讨论、在他们的环境中推广 DuckDB 的人,当然还有所有 DuckDB 用户。没有你,我们不可能做到这一点!

我们还要感谢 CWI 数据库架构小组为我们提供了构建 DuckDB 的环境和专业知识,感谢早期为我们提供研究资助的组织,感谢 DuckDB Labs 的优秀客户(尤其是早期客户),以及 DuckDB 基金会的慷慨捐赠者。我们特别感谢我们长期的金牌赞助商 MotherDuck、Voltron Data 和 Posit。

最后,我们要感谢 DuckDB Labs 优秀而出色的团队。

因此,现在就加入我们的行列,怀念、泪眼婆娑,对 DuckDB 即将发生的事情感到兴奋,并与我们一起庆祝 DuckDB 1.0.0 的发布。我们当然会。

关于作者

叶正盛,NineData 创始人 &CEO,资深数据库专家,原阿里云数据库产品管理与解决方案部总经理。NineData(www.ninedata.cloud)是云原生数据管理平台,提供数据库 DevOps(SQL IDE、SQL 审核与发布、性能优化、数据安全管控)、数据复制(迁移、同步、ETL)、备份等功能,可以帮助用户更安全、高效使用数据。

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

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

相关文章

flinksql 回撤流中主键发生变更的影响(group by中的值发生改变)

flinksql 回撤流中,主键发生变更的影响 1 什么是回撤流2 主键变更场景2.2 实践发生3 实践中发现的比较好的的实时数仓架构1 什么是回撤流 这篇文章主要谈论一个场景,简单来说: 首先我们来简单的说一下什么是回撤流,以及回撤流的底层原理,举个例子: 这个说的不是很清晰…

【吊打面试官系列】MySQL 中有哪几种锁?

大家好,我是锋哥。今天分享关于 【MySQL 中有哪几种锁?】面试题,希望对大家有帮助; MySQL 中有哪几种锁? 1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,…

TypeScript学习(一):开发环境搭建

官方文档搭建参考 https://learn.microsoft.com/zh-cn/training/modules/typescript-get-started/ 1.下载node.js https://nodejs.org/en/download 2.下载vscode https://code.visualstudio.com/ 3.在线ts的测试工具 https://www.typescriptlang.org/play/ 4.下载typescr…

H5即时通讯群聊源码无限建群创群/H5聊天系统聊天网站源码/H5语音聊天系统

源码介绍 支持自助建群 管理群 修改群资料支持自动登录 登陆成功可自助修改资料后台可查看群组聊天消息记录支持表情 动态表情 图片发布支持消息语音提醒

docker-compose教程

1. docker-compose是什么? 1. 1 简介 compose、machine 和 swarm 是docker 原生提供的三大编排工具。 简称docker三剑客。Compose 项目是 Docker 官方的开源项目,定义和运行多个 Docker 容器的应用(Defining and running multi-container Do…

月入30000的软件测试人员,简历是什么样子的?

我们都知道,简历是一个人进入职场的敲门砖。从某种层面来说,简历也像一个人的具象身份证,或者专业资格证。所以,一份简历的好坏,不仅关乎个人的“脸面”,更关乎你是不是一个有“含金量”的技术人员。 所以…

SVG画双色虚线并带有流动效果

实现效果 HTML代码 <svg xmlns"http://www.w3.org/2000/svg" viewBox"0 0 100 100" version"1.1"><polyline points"10,20 10,40 80,40 80,60" stroke-width"2" stroke-dasharray"10 10" fill"non…

C语言数据结构排序、插入排序、希尔排序(多组并排、一组排完排另一组)、选择排序、堆排序、冒泡排序等的介绍

文章目录 前言打印数组函数一、插入排序二、希尔排序三、选择排序四、堆排序五、冒泡排序总结 前言 C语言数据结构排序、插入排序、希尔排序&#xff08;多组并排、一组排完排另一组&#xff09;、选择排序、堆排序、冒泡排序等的介绍 打印数组函数 打印数组函数定义 // 打印…

如何以定投策略投资场外个股期权?

场外个股期权为投资者提供了一种灵活且富有潜力的投资工具。与传统的投资方式不同&#xff0c;场外个股期权以其低门槛、高灵活性和潜在的较高回报吸引了众多投资者。对于希望长期稳健增值的投资者来说&#xff0c;利用定投策略来投资场外个股期权是一个值得考虑的选项。 文章…

什么样的男士内裤比较好?按这个方法选男士内裤不会出错!

男士内裤作为日常穿着的重要服饰&#xff0c;其舒适度与卫生性对男士们的健康至关重要。随着时代的变迁&#xff0c;男士内裤的款式与材质也日益丰富多样&#xff0c;为男士们提供了更多选择。 目前市场上&#xff0c;男士内裤主要分为三角、平角和四角三大类别。其中&#xf…

结构体+结构体内存对齐+结构体实现位段

结构体内存对齐实现位段 一.结构体1.结构体的声明2.结构体变量成员访问操作符3.结构体传参4.匿名结构体5.结构的自引用 二.结构体内存对齐1.对齐规则2.为什么存在内存对齐&#xff1f;3.修改默认对齐数 三.结构体实现位段1.什么是位段2.位段的内存分配3.位段的跨平台问题4.位段…

帮助客服高效工作的快捷回复软件

在繁忙的客服工作中&#xff0c;对于客服团队来说&#xff0c;每天面对大量的客户咨询&#xff0c;如何快速、准确地回应每一位客户的需求&#xff0c;成为了他们日常工作中的一大挑战。而快捷回复软件的出现&#xff0c;无疑是客服人员的福音。今天&#xff0c;我要向大家介绍…

MySQL 关键特性一:插入缓冲、双写缓冲

前言 ​ 本文主要介绍 mysql 的几大特性之几&#xff0c;如&#xff1a;双写缓冲和插入缓存。 双写缓冲 基本概念 ​ 双写缓冲&#xff08;doublewrite buffer&#xff09;是MySQL/InnoDB中用于支持原子页面更新的一种机制。在传统的数据库系统中&#xff0c;为了保证数据的…

Android Dialog使用汇总

Dialog分类 AlertDialog Dialog 类是对话框的基类&#xff0c;官方建议我们不要直接实例化它&#xff0c;而是使用其子类来获取实例。AlertDialog是系统提供的一个直接子类&#xff0c;它能帮助我们快速构建出不同类型的弹窗。接下来就看下各种类型弹窗的使用。 1、普通对话框…

wpf工程中加入Hardcodet.NotifyIcon.Wpf生成托盘

1、在项目中用nuget引入Hardcodet.NotifyIcon.Wpf。如下图所示。 2、在App.xaml中创建托盘界面&#xff0c;代码是写在 App.xaml 里面 注意在application中一定要加入这一行代码&#xff1a; xmlns:tb"http://www.hardcodet.net/taskbar" 然后在<Application.R…

html 使用svg矢量图时无法 调整宽高问题解决,不能像图片一样设置宽高比例问题

引入的路径后加 #svgView(preserveAspectRatio(none)) 具体代码如下 修改前 <img src"/assets/svgs/full_screen_full.svg" class"im"> 修改后 <img src"/assets/svgs/full_screen_full.svg#svgView(preserveAspectRatio(none))" cla…

免费注册US.KG域名支持接入CF

注册地址&#xff1a; https://register.us.kg/auth/register 号码和地址我是随便填的&#xff0c;不知道对以后有没有影响 收到激活邮件&#xff0c;可能在垃圾箱里 接下来是有个KYC验证&#xff0c;需要填写信息和上传KYC照片&#xff0c;我也是乱填的和乱上传的。可以去找…

ERPNext - 用Python打造您的企业资源规划解决方案

文章目录 ERPNext - 用Python打造您的企业资源规划解决方案第一部分&#xff1a;背景第二部分&#xff1a;ERPNext是什么&#xff1f;第三部分&#xff1a;如何安装ERPNext&#xff1f;第四部分&#xff1a;ERPNext基本使用方法第五部分&#xff1a;场景应用示例第六部分&#…

Excel 文件损坏了打不开怎么办?几种 Excel 文件修复方法帮助你

当你想要打开电脑 Excel 文件的时候发现系统提示文件被损坏或者其他一些原因导致无法打开&#xff0c;这时候应该怎么办呢&#xff1f;别急下面为大家总结了 Excel 文件修复的一些方法。 更改信任中心 Excel 软件具有内置的安全功能会限制有潜在风险的文件&#xff0c;当 Exc…

挑战你的数据结构技能:复习题来袭【6】

1. (单选题)设无向图的顶点个数为n,则该图最多有&#xff08;&#xff09;条边 A. n-1 B. n(n-1)/2 C. n(n1)/2 D. 0 答案&#xff1a;B 分析&#xff1a; 2. (单选题)含有n个顶点的连通无向图,其边的个数至少为()。 A. n-1 B. n C. n1 D. nlog2n 答案&#xff1a;A…