DuckDB 0.7.0 发布,高性能分析型数据库系统


DuckDB 是一个高性能的分析数据库系统,它快速、可靠、易于使用。DuckDB 提供了丰富的 SQL 方言,支持远远超过基本 SQL,且支持任意的和嵌套的相关子查询、复杂类型等。

DuckDB 0.7.0 新版本包含对 JSON 支持的许多改进、新的 SQL 功能、对数据摄取和导出的改进以及其他新功能。以下是最具影响力的更改摘要:

JSON 提取

这个版本介绍了read_jsonread_json_auto方法,可用于将 JSON 文件提取为表格格式。类似read_csv,该read_json方法需要指定模式,而read_json_auto使用采样自动从文件中推断出 JSON 的模式。

支持换行分隔的 JSON 和常规JSON 

FROM 'data/json/with_list.json';

分区 Parquet/CSV 导出

DuckDB 支持提取配置单元分区的 Parquet 和 CSV 文件已有一段时间了。在此版本之后,DuckDB 还将能够使用 PARTITION_BY 子句写入配置单元分区的数据。这些文件可以在本地或远程导出到 S3 兼容存储。这是一个本地示例:

COPY orders TO 'orders' (FORMAT PARQUET, PARTITION_BY (year, month));

多数据库支持 

附加功能此版本增加了对将多个数据库附加到同一个 DuckDB 实例的支持。允许数据在不同的 DuckDB 数据库文件之间传输,也允许来自不同数据库文件的数据在单独的查询中组合在一起。

也可以附加远程 DuckDB 实例(存储在 Github 等网络可访问位置)。

ATTACH 'new_db.db';
CREATE TABLE new_db.tbl(i INTEGER);
INSERT INTO new_db.tbl SELECT * FROM range(1000);
DETACH new_db;

有关详细信息,请参阅文档

SQLite 存储后端。

除了添加对附加 DuckDB 数据库的支持外,此版本还添加了对可插入数据库引擎的支持。允许扩展定义自己的数据库和可以附加到系统的目录引擎。

一旦附加,引擎就可以支持读取和写入。SQLite扩展利用它向 DuckDB 添加对 SQLite 数据库文件的本地读/写支持。

新的 SQL 特性

此版本使用 ON CONFLICT 子句以及 SQLite 兼容的 INSERT OR REPLACE / INSERT OR IGNORE 语法添加了 Upsert 支持。

ATTACH 'sqlite_file.db' AS sqlite (TYPE sqlite);
CREATE TABLE sqlite.tbl(i INTEGER);
INSERT INTO sqlite.tbl VALUES (1), (2), (3);
SELECT * FROM sqlite.tbl;

有关详细信息,请参阅文档

Python API 改进

此版本通过允许查询关系,使用 Python API 引入了更轻松的增量查询构建。这允许将长 SQL 查询分解为多个较小的 SQL 查询,并轻松检查查询中间体。

>>> import duckdb
>>> lineitem = duckdb.sql('FROM lineitem.parquet')
>>> lineitem.limit(3).show()

 

要安装新版本,请访问安装指南和完整的发行说明。

此版本的 DuckDB 命名为“Labradorius” ,源于产于北美的拉布拉多鸭 (Camptorhynchus labradorius) 。


相關推薦

2022-11-16

DuckDB 是一个高性能的分析数据库系统。它被设计为快速,可靠和易于使用。DuckDB 提供了丰富的 SQL 方言,支持远远超过基本 SQL。DuckDB 支持任意的和嵌套的相关子查询、复杂类型等。 新版本包含对存储系统的许多改进、一般性

2023-05-24

DuckDB 是高性能的分析型关系数据库,旨在实现高效的数据分析。它易于安装,运行速度非常快,并且可以在进程内 (in-process) 运行。 DuckDB 背后的核心思想是保留 SQLite 的简单性和易用性,同时通过 R/Python 和 RDBMS 之间的快速分

2022-09-14

DuckDB 是一个高性能的分析数据库系统。它被设计为快速,可靠和易于使用。DuckDB 提供了丰富的 SQL 方言,支持远远超过基本 SQL。DuckDB 支持任意的和嵌套的相关子查询、复杂类型等。 注意:这个版本再次引入了一个向后不兼容

2023-10-26

rRocks 等其他系统协同工作。Iceberg 可为所有这些系统提供高性能的表格式,同时支持完整的模式演进、数据压缩和版本回滚。Iceberg 是许多现代开放数据湖的关键组成部分。 Apache Superset 多年来,Apache Superset 一直是数据可视化

2022-10-10

据查询和分析分类聚焦大数据分析类型项目,不包括OLTP数据库、OLTP能力为主的HTAP数据库和NoSQL数据库 数据可视化分类中需具备数据源链接和处理能力,不包括可视化框架工具项目 数据管理/安全/中间件分类中,项目较少且

2024-06-01

数据库的众多优点之一是它们通常试图将数据在内部的表示方式(例如在磁盘上)与数据使用方式分开。甚至 不将数据存储在运行查询的同一硬件上已成为常态。 数据库在这方面已经做得非常出色,以至于这个术语现在几乎具

2024-07-09

构,能更好地支持计算和存储层的水平扩展。基于ByteHouse高性能的实时数据分析决策能力,数据从导入到分析决策仅需几秒,99% 的查询都能得到秒级保障。除了高可用的基础能力,ByteHouse还提供免托管运维服务,包括丰富的集

2023-09-15

8 将 org.apache.kafka:kafka-clients 从 2.8.0 升级到 2.8.1 将 org.duckdb:duckdb_jdbc 从 0.7.0 升级到 0.8.1 将 com.github.eirslett:frontend-maven-plugin 从 1.12.1 升级到 1.13.4 将 kotlin.version 从 1.8.20 升级到 1.9.10 将 org.sonatype.plugins:nexus-staging-maven-plugin

2023-03-03

CeresDB 是一款高性能、分布式的云原生时序数据库,采用 Rust 编写。其开发团队近日宣布:经过近一年的开源研发工作,时序数据库 CeresDB 1.0 正式发布,达到生产可用标准。 CeresDB 1.0 官方中文文档:https://docs.ceresdb.io/cn/ CeresD

2024-08-29

erretDB),以及 Firebase (via Supabase)。 Pigsty v3 还提供了 DuckDB 的进阶支持,除了原生 duckdb CLI 工具外,还编译打包了融合 PG / DuckDB 能力生态扩展:pg_lakehouse,pg_analyticss,duckdb_fdw,以及 pg_duckdb。 本次 Pigsty 发布调整大版本号,

2024-05-21

DBeaver 是一个免费开源的通用数据库工具,适用于开发人员和数据库管理员。DBeaver 24.0.5 现已发布,更新内容如下: SQL Editor: 改进了语句分隔符的智能模式 设置“Blank line is statement delimiter”的默认选项已更改为“Alw

2023-08-03

立的数据技术进行产品设计,致力于为客户提供大规模、高性能、低成本的一站式实时数据分析服务。 石原子科技坚持精细布局、自主创新的产品研发路线,打造了三款标杆产品: 业内首个单机内核开源、行列混存+内存计

2024-09-20

,升级 jsqlparser 至 5.0 版本 升级日志 feat: 支持GoldenDB数据库 feat: 支持Duckdb数据库 feat: 支持Derby数据库 feat: 支持Vastbase数据库 feat: 升级kotlin2.0.0 feat: 升级SpringBoot3.3.2 feat: 升级fastjson2.0.52 feat: 升级mybatis-spring3.0.4 feat

2023-04-04

Pandas 是一个 Python 数据分析库,它提供了快速、灵活和富有表现力的数据结构,旨在使处理 "关系型" 或 "标签型" 数据的工作变得简单和直观。 此版本包括一些新功能、错误修复和性能改进,建议现有用户在升级到 Pandas 2 之前