【开源推荐】专门用作分析的一款高性能数据库

简介: 【7月更文挑战4天】

19.8k star,开源、免费、轻量、小巧、足够用的一款软件

专门用作分析的一款高性能数据库,体积很小,功能强大,值得关注下

duckdb简介

DuckDB是一个开源的内嵌式SQL OLAP数据库管理系统,它以其高性能、易用性和丰富的功能而闻名。

DuckDB支持任意和嵌套的相关子查询,窗口函数,排序规则,复杂类型(数组,结构,映射),以及一些旨在使SQL更容易使用的扩展。

DuckDB作为一个独立的CLI应用程序提供,并具有Python,R,Java,Wasm等客户端,与pandas和dupiter等软件包进行深度集成。

DuckDB是设计用于分析工作负载的数据库,它可以作为单一二进制文件运行,或者完全嵌入到宿主应用程序中。DuckDB的目标是提供一个简单、可移植且功能丰富的数据管理系统,它可以在各种操作系统和硬件架构上运行,包括Linux、macOS、Windows以及ARM和x86。

duckdb特点

  • 简单性:DuckDB易于安装和部署,无需外部依赖,支持在其宿主应用程序中以进程方式运行。
  • 可移植性:DuckDB支持多种操作系统和硬件架构,甚至可以在Web浏览器和移动电话上运行。
  • 丰富的SQL方言:DuckDB提供了丰富的SQL方言,支持复杂查询、窗口函数、事务保证(ACID属性)以及多版本并发控制(MVCC),它可以从本地文件系统和远程端点(如S3 bucket)读取和写入文件格式(如CSV、Parquet和JSON)。。
  • 高性能:DuckDB的列式引擎支持并行执行,可以处理超出内存大小的工作负载。
  • 扩展性:DuckDB允许通过扩展机制定义新的数据类型、函数、文件格式和SQL语法。
  • 开源:DuckDB及其核心扩展是在宽松的MIT许可下开源的。

duckdb快速部署及使用

要开始使用DuckDB,用户可以访问DuckDB的官方文档网站并下载适用于其操作系统的二进制文件。例如,macOS用户可以使用Homebrew包管理器来安装DuckDB,以便在PATH中直接可用,从而简化升级和安装过程。

安装示例(macOS):

$ brew install duckdb

windows

winget install DuckDB.cli

linux

https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip

启动DuckDB:

$ duckdb

创建和查询表:

CREATE TABLE ducks AS SELECT 3 AS age, 'mandarin' AS breed;
SELECT * FROM ducks;

这些命令将创建一个名为“ducks”的表,并插入一条记录。DuckDB默认是一个内存中的过程,不会持久化任何数据。如果需要持久化数据,用户可以指定文件名来创建或打开数据库¹。

数据持久化示例:

$ duckdb my_database.duckdb

DuckDB是一个强大的工具,适用于需要高性能数据分析的开发者和数据科学家。

传送门:http://www.duckdb.org/

开源地址:https://github.com/duckdb/duckdb

相关文章
|
18天前
|
存储 容灾 关系型数据库
PolarDB开源数据库进阶课11 激活容灾(Standby)节点
本文介绍了如何激活PolarDB容灾(Standby)节点,实验环境依赖于Docker容器中用loop设备模拟共享存储。通过`pg_ctl promote`命令可以将Standby节点提升为主节点,使其能够接收读写请求。激活后,原Standby节点不能再成为PolarDB集群的Standby节点。建议删除对应的复制槽位以避免WAL文件堆积。相关操作和配置请参考系列文章及视频教程。
30 1
|
18天前
|
存储 NoSQL 关系型数据库
PolarDB开源数据库进阶课17 集成数据湖功能
本文介绍了如何在PolarDB数据库中接入pg_duckdb、pg_mooncake插件以支持数据湖功能, 可以读写对象存储的远程数据, 支持csv, parquet等格式, 支持delta等框架, 并显著提升OLAP性能。
32 0
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课15 集成DeepSeek等大模型
本文介绍了如何在PolarDB数据库中接入私有化大模型服务,以实现多种应用场景。实验环境依赖于Docker容器中的loop设备模拟共享存储,具体搭建方法可参考相关系列文章。文中详细描述了部署ollama服务、编译并安装http和openai插件的过程,并通过示例展示了如何使用这些插件调用大模型API进行文本分析和情感分类等任务。此外,还探讨了如何设计表结构及触发器函数自动处理客户反馈数据,以及生成满足需求的SQL查询语句。最后对比了不同模型的回答效果,展示了deepseek-r1模型的优势。
63 0
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课14 纯享单机版
PolarDB不仅支持基于“共享存储+多计算节点”的集群版,还提供类似开源PostgreSQL的单机版。单机版部署简单,适合大多数应用场景,并可直接使用PostgreSQL生态插件。通过Docker容器、Git克隆代码、编译软件等步骤,即可完成PolarDB单机版的安装与配置。具体操作包括启动容器、进入容器、克隆代码、编译软件、初始化实例、配置参数及启动数据库。此外,还有多个相关教程和视频链接供参考,帮助用户更好地理解和使用PolarDB单机版。
33 0
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课13 单机版转换为集群版
本文介绍如何将“本地存储实例”转换为“共享存储实例”,依赖于先前搭建的实验环境。主要步骤包括:准备PFS二进制文件、格式化共享盘为pfs文件系统、启动pfsd服务、停库并拷贝数据到pfs内、修改配置文件,最后启动实例。通过这些操作,成功实现了从本地存储到共享存储的转换,并验证了新实例的功能。相关系列文章和视频链接提供了更多背景信息和技术细节。
21 0
|
10天前
|
关系型数据库 分布式数据库 数据库
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
|
15天前
|
存储 数据挖掘 数据处理
2600 万表流计算分析如何做到? 时序数据库 TDengine 助力数百家超市智能化转型
在生鲜超市的高效运营中,实时数据分析至关重要。万象云鼎的“云鲜生”通过智能秤+网关+软件系统的组合,实现了销售数据的精准管理与优化。而在数据处理方面,TDengine 的流计算能力成为了这一方案的核心支撑。本文详细分享了“云鲜生”如何利用 TDengine 高效存储和分析海量销售数据,在优化超市运营、提升用户体验的同时,解决高基数分组、高并发查询等技术挑战。
27 1
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课12 集群版转换为单机版
本文介绍了如何将“共享存储实例”转换为“本地存储实例”,实验环境依赖于Docker容器中的loop设备模拟共享存储。具体步骤包括准备本地目录、停库、拷贝数据、修改配置文件并启动实例。通过这些操作,可以实现从共享存储到本地存储的平滑转换。相关系列文章详细记录了PolarDB RAC一写多读集群的搭建与管理,提供了丰富的实战经验。
20 2
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课18 通过pg_bulkload适配pfs实现批量导入提速
本文介绍了如何修改 `pg_bulkload` 工具以适配 PolarDB 的 PFS(Polar File System),从而加速批量导入数据。实验环境依赖于 Docker 容器中的 loop 设备模拟共享存储。通过对 `writer_direct.c` 文件的修改,替换了一些标准文件操作接口为 PFS 对应接口,实现了对 PolarDB 15 版本的支持。测试结果显示,使用 `pg_bulkload` 导入 1000 万条数据的速度是 COPY 命令的三倍多。此外,文章还提供了详细的步骤和代码示例,帮助读者理解和实践这一过程。
36 0
|
18天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课16 接入PostGIS全功能及应用举例
本文介绍了如何在PolarDB数据库中接入PostGIS插件全功能,实现地理空间数据处理。此外,文章还提供了使用PostGIS生成泰森多边形(Voronoi diagram)的具体示例,帮助用户理解其应用场景及操作方法。
38 0

热门文章

最新文章