AWS 收购 DuckDB 背后的公司,这把火烧到了 PostgreSQL

DuckDB与PostgreSQL的无缝融合:pg_duckdb如何简化混合数据分析工作流 本文详细介绍了pg_duckdb如何实现DuckDB与PostgreSQL的无缝融合,简化混合数据分析工作流。通过双重执行机制和数据类型兼容性,pg_duckdb显著提升了OLAP查询性能,同时支持对象存储集成和数据导出功能。文章还提供了安装配置指南、性能优化技巧和实际应用案例,帮助开发者高效利用列矢量化分析引擎优化数据分析流程。 阅读详情

一、AWS 买下的是公司,不是 DuckDB

就在这周,AWS 宣布已签署最终协议,收购位于阿姆斯特丹的 DuckLabs——DuckDB 背后的公司。DuckLabs 团队将整体加入 AWS。 DuckDB 本身继续留在独立的非营利组织 DuckDB Foundation 名下,继续以 MIT 协议免费开源;DuckDB 的创造者、DuckLabs 联合创始人 Hannes Mühleisen 和 Mark Raasveldt 将继续带领团队,并继续主导开源项目的技术方向。

DuckDB 是一个进程内的列存分析型数据库,常被称作「分析领域的 SQLite」。它没有服务端,不需要独立部署,以库的形式被宿主程序链接进去。而正是这个形态,让它走出了一条和其他分析引擎都不同的路。

二、PostgreSQL 的 OLAP 短板,与 pg_duckdb 的诞生

先说问题

PostgreSQL 是典型的行存 OLTP 引擎,它在事务处理上非常强,但跑大规模聚合、全表扫描、大 JOIN 时,比不过列存向量化引擎——这不是实现好坏的问题,是存储布局和执行模型决定的。

长期以来这个缺口靠 ETL 填:把数据同步一份到外部数仓,交易归交易,报表归报表。这也意味着数据副本、同步延迟。

而 DuckDB 恰好是列存向量化引擎里最特别的一个:它是进程内的,以库的形式存在,没有服务端、不需要独立部署。一个不需要独立部署的分析引擎,天然就适合被塞进另一个数据库里。 这个想法并不难想到,难的是把它做出来。

pg_duckdb 项目起源

2024 年 8 月,一个把 DuckDB 嵌入 PostgreSQL 的开源协作项目公开亮相,参与方是三家:​Hydra、DuckDB Labs、MotherDuck​。项目最初由 Hydra 发起,他们此前一直在做 PostgreSQL 上的分析扩展,贡献了 PG 扩展与存储方面的工程经验;DuckDB Labs 提供引擎侧的支持;MotherDuck 则把它接进了自己的云服务。

三家凑到一起并不是巧合——它们面对的是同一个需求:Hydra 要给 PG 用户提供分析能力,MotherDuck 要让 DuckDB 能对接存量的 PG 数据,DuckDB Labs 需要一条通往 OLTP 世界的入口。各做各的,不如合做一个。

项目最终落在了 DuckDB 自己的 GitHub 组织下——github.com/duckdb/pg_duckdb。这就是「官方扩展」的实际含义:不是一个第三方项目被认可,而是它本身就归属在 DuckDB 组织内维护。

两个项目是什么关系

总结来说就是 DuckDB 是引擎,pg_duckdb 是引擎的外壳。

  • DuckDB 以 git submodule 的形式被引入(third_party/duckdb,指向 github.com/duckdb/duckdb.git),版本在 Makefile 里被钉死(DUCKDB_VERSION,随上游主线滚动升级),编译后与扩展代码一起链进同一个 .so。
  • 运行时,DuckDB 与 PostgreSQL backend ​同进程、同地址空间​。没有网络、没有 IPC、没有独立进程,CREATE EXTENSION pg_duckdb 之后,每个 backend 内部就多了一个可用的分析引擎。
  • 依赖方向是单向的:DuckDB 完全不知道 pg_duckdb 的存在,可以独立使用;pg_duckdb 离开 DuckDB 则无法存在。

分工也很清晰:事务、权限、catalog、存储、连接管理仍然全部归 PostgreSQL;DuckDB 只负责列存向量化执行。用户侧的开关很简单:

SET duckdb.force_execution = true;

之后不改一行 SQL,符合条件的查询就会走 DuckDB 执行;不支持的查询自动回退到 PostgreSQL 原生执行器。

三、pg_duckdb 是怎么实现的

理解 pg_duckdb 的实现,最关键的一点是:它不是把 PostgreSQL 的计划树翻译成 DuckDB 的计划树,而是把查询反解析成 SQL 文本,交给 DuckDB 重新解析。

这个「SQL 文本往返」是整个架构的核心,也是后面所有适配工作的根源。完整链路如下:

1. Hooks 拦截查询

_PG_init 时接管三个 hooks(src/pgduckdb_hooks.cpp):planner_hook、ExecutorStart_hook、ExplainOneQuery_hook。查询进入规划阶段时先过一遍判定:是否开启了 force_execution、是否引用了 DuckDB 才有的表函数(read_parquet 等)、是否命中不支持的类型或语法。不合格就原样交还 standard_planner,用户全程无感知。

2. 反解析成 DuckDB SQL

命中之后,pgduckdb_planner.cpp 调用 pgduckdb_get_querydef()(src/pgduckdb_ruleutils.cpp,是 PostgreSQL pg_get_querydef 的定制版本),把 Query 树重新渲染成一段 SQL 字符串,再交给 DuckDB 的 Connection::Prepare()。DDL 路径类似,pgduckdb_get_tabledef() 负责把 PG 表定义渲染成 DuckDB 的 CREATE TABLE。

3. 用 CustomScan 节点承载执行

规划结果是一个 CustomScan 节点(src/pgduckdb_node.cpp),实现了 BeginCustomScan / ExecCustomScan / EndCustomScan / ExplainCustomScan 一整套回调。对 PostgreSQL 的执行器而言,DuckDB 只是一个普通的扫描节点:每次 ExecCustomScan 从 DuckDB 拉一批结果,转成 TupleTableSlot 往上吐。这也是 EXPLAIN 能同时展示两边计划的原因。

4. 反向读回 PostgreSQL 堆表

数据不需要导出。DuckDB 侧通过 replacement scan 机制注册了对 PG 表的访问(src/scan/postgres_scan.cpp、postgres_table_reader.cpp):当 DuckDB 解析到一个它 catalog 里没有的表名时,回调进 pg_duckdb,由后者直接走 PostgreSQL 的缓冲区管理器和快照读堆表。过滤条件会被下推回 PG 侧扫描(ExtractQueryFilters),并且支持拉起 PostgreSQL 并行工作进程来喂数据。

5. 类型双向映射

src/pgduckdb_types.cpp 负责两个方向的转换:PG OID → DuckDB LogicalType,以及 DuckDB 值 → PG Datum。这是整个扩展里最琐碎也最容易出问题的一块——两边的类型系统并不同构(典型如无精度约束的 NUMERIC,默认会告警回退)。

另外还有 src/catalog/ 下的一组文件,让 DuckDB 的事务管理器与 PostgreSQL 的事务边界对齐;src/vendor/ 则是从 PostgreSQL 和 DuckDB 内部抄出来的头文件——这也说明了两个项目的耦合有多紧:DuckDB 的 C++ 内部 API 并不承诺稳定,每次升级 DuckDB 版本,pg_duckdb 往往都要跟着改代码。

四、IvorySQL 的工作:ivy_duckdb

IvorySQL 是基于 PostgreSQL 的 Oracle 兼容数据库,在内核里实现了一整套 Oracle 兼容的数据类型和语义。这些类型是 IvorySQL 自己注册的,OID 是动态分配的——而 pg_duckdb 的类型映射大量依赖硬编码的内建 OID 判断。直接拿上游 pg_duckdb 用在 Oracle 模式下,结果就是:要么大面积回退、失去加速,要么在类型转换路径上直接报错。

于是有了 ivy_duckdb(https://github.com/IvorySQL/ivy_duckdb ),IvorySQL 维护的 pg_duckdb 分支。当前基线是上游 pg_duckdb 1.1.0 + DuckDB v1.4.3,相对上游约 2500 行改动,集中在 src/、include/、test/ 三处。主要工作分成四块:

1. 动态 OID 的类型识别与缓存

新增 Ivory*Oid() 一族接口(include/pgduckdb/pgduckdb_metadata_cache.hpp),覆盖 IvorySQL 中实现的 Oracle 兼容类型,通过 catalog 查找拿到运行时 OID 并缓存起来,随 catalog 失效自动更新。类型映射的判据从「硬编码 OID」改成「查缓存」,这是所有后续工作的地基。

2. 兼容「SQL 文本往返」

  • ​alias 扩展​。ivy 类型在 DuckDB 侧以 alias 形式承载(如 TIMESTAMP 带 alias ivory:oradate),PG 侧重新解析时在 postgres_scan.cpp 里做 alias 剥离后再渲染。
  • ​类型名规范化​。反解析出的 oracle 类型名 DuckDB 不认识,需要在 pgduckdb_ruleutils.cpp 做文本改写 ,并通过 ExtensionLoader::RegisterType() 把全部 Oracle 兼容类型正式注册进 DuckDB 的系统 catalog。

3. 稳定性与工程化

  • 增强使用体验,增加诊断扩展状态的系统函数。
  • 支持离线构建(OFFLINE=1 关闭 httpfs 的 FetchContent 拉取,预安装 Duckdb 扩展),适配内网环境。

4. 开箱即用:ivy_mooncake 与 Docker 镜像

ivy_duckdb 本身是一个扩展,需要自行编译安装。对想快速上手的用户,更方便的入口是 ​**ivy_mooncake**​(https://github.com/IvorySQL/ivy_mooncake )——IvorySQL 维护的 pg_mooncake 发行版,它把 ivy_duckdb 直接作为子模块包含在内。

pg_mooncake 本身是给 PostgreSQL 表建立 Iceberg 列存镜像的扩展:行存表照常承担 OLTP 写入,镜像表以亚秒级新鲜度同步,分析查询打在列存上,加速引擎正是 DuckDB。它的扩展控制文件里写着 requires = 'pg_duckdb'——也就是说,ivy_mooncake 天然依赖 ivy_duckdb,两者是一套东西的两层:

  • ivy_duckdb —— 查询加速层。行存表不动,符合条件的查询交给 DuckDB 执行。
  • ivy_mooncake + ivy_moonlink —— 列存镜像层。通过逻辑复制把行存表增量同步成 Iceberg 列存,分析查询直接打列存。

最快的体验方式是预览镜像,里面已经预装并预加载好了 IvorySQL + pg_duckdb + pg_mooncake:

docker run --name ivy_mooncake \
  -e IVORYSQL_PASSWORD=password \
  -p 5432:5432 -p 1521:1521 \
  -v ivy_mooncake_data:/var/lib/ivorysql/data \
  -v ivy_mooncake_warehouse:/tmp/moonlink_iceberg \
  registry.highgo.com/mooncake/ivy_mooncake:0.1

起来之后三条语句就能看到效果:

CREATE EXTENSION pg_mooncake CASCADE;          -- CASCADE 会一并装上 pg_duckdb

-- 开启查询加速,然后查原表即可
SET duckdb.force_execution = true;

五、给 IvorySQL 带来的 OLAP 能力

把上面这些工作串起来看,结论其实很简单:IvorySQL 在保持 Oracle 兼容的前提下,获得了原生的 OLAP 分析能力。

  • ​TP 侧不变​。行存表、事务、约束、Oracle 兼容的 PL/SQL 和数据类型,全部照旧,没有任何妥协。
  • ​OLAP 侧两档可选​。轻量档是 ivy_duckdb 的查询加速:SET duckdb.force_execution = true,SQL 一行不改,直接吃到列存向量化执行;重量档是 ivy_mooncake 的 Iceberg 列存镜像:给热表建一个自动同步的列存副本,分析查询打在副本上,行存侧的 OLTP 负载不受影响。

两档能力的详细用法——列存镜像的建立与同步、加速路径的开关与回退规则、Oracle 类型的支持范围——参见 IvorySQL/ivy_mooncake (https://github.com/IvorySQL/ivy_mooncake) 仓库文档。

我们在 IvorySQL 的 Oracle 兼容模式和 pg 模式下都做了验证,用 TPC-H 查询集对三条执行路径做了同机横比:行存原生执行、ivy_duckdb 查询加速、ivy_mooncake 列存镜像。结论是清晰的量级差异——查询加速相对原生执行有明显提升,列存镜像则再上一个台阶,两者的差距在大数据量、重扫描的聚合类查询上尤其突出。

六、小结

回到开头:AWS 收购 DuckLabs,改变的是 DuckDB 的资源与商业化路径,没有改变它的许可证和治理结构。真正烧到 PostgreSQL 的,不是这桩交易本身,而是它背后那个已经成立的事实——列存分析引擎可以被装进 OLTP 数据库,而且已经有人跑通了。对 PostgreSQL 生态而言,更值得关注的是 pg_duckdb 这条已经跑通的路径:不改 SQL、不搬数据、同进程嵌入,把列存向量化能力直接补进 OLTP 数据库。

目前 ivy_mooncake/ivy_duckdb 发布的是 v0.1 预览版,欢迎大家使用。如果遇到问题,欢迎到仓库提 issue:

  • IvorySQL/ivy_mooncake (https://github.com/IvorySQL/ivy_mooncake)
  • IvorySQL/ivy_duckdb (https://github.com/IvorySQL/ivy_duckdb)

参考链接

51单片机-点亮LED和蜂鸣器 ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003是大电流驱动陈列,多用于单片机、只能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。void delay(u16 i) // i等于1大约10uswhile(i--);//取反,高低电平不断变化,产生脉冲delay(10);// 周期200us。 阅读详情

相关推荐

创建XCP的CanApe工程

创建XCP的CanApe工程

weixin_44173919的博客 2889

DuckDB:pg_duckdb集成DuckDB和PostgreSQL实现高效数据分析

pg_duckdb扩展将完全能够查询DuckDB中存储在云中的数据,就像它是本地的一样。DuckDB的“双重执行”功能让我们可以无缝地将本地PostgreSQL数据与DuckDB数据连接起来,我们将找出运行查询的最佳位置。作为用户无需关心计算在哪里运行,我们只需要弄清楚如何让它运行得更快。此外,在分析领域中,通常会将数据从事务数据库迁移到分析存储库中。pg_duckdb扩展和DuckDB可以提供帮助;

neweastsun的专栏 3582

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 807

pg_duckdb+PostgreSQL 17提升千倍执行速度——筑梦之路

pg_duckdb是一种强大的扩展,特别适合数据分析、外部数据集成以及需要高性能查询的场景。通过它,用户可以在 PostgreSQL 的生态中轻松引入 DuckDB 的能力,进一步扩展数据库的应用范围。是一个扩展模块,旨在将 PostgreSQL 和 DuckDB 结合使用,提供了一种在 PostgreSQL 中访问 DuckDB 功能的途径。,其特点是高性能、开箱即用且支持多种分析功能。

筑梦之路 2996

【SIP基础】SIP协议基本呼叫流程

SIP呼叫流程下图显示了一个SIP会话的基本呼叫流程。 下面是上述呼叫流程的详细解释: Alice发送INVITE请求到代理服务器,INVITE请求负责发起会话。 代理服务器立即发送Trying 100给请求者(Alice),表示试图响应INVITE请求,以防止重传该INVITE请求。 代理服务器搜索Bob所在位置服务器的地址,得到的地址后,将转发INVITE请求到Bob。 此后,Bob回应180

VVSIP官网博客 1万+

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5950

pg_duckdb:官方Postgres扩展,赋能高效数据分析

在当今数据驱动的世界中,性能和效率是数据分析的核心。pg_duckdb作为Postgres的官方扩展,将DuckDB的列式存储和向量化的分析引擎引入Postgres,为构建高性能分析和数据密集型应用提供了强有力的工具。以下是对pg_duckdb项目的详细介绍。 ## 项目介绍 pg_duckdb是一个Postgres扩展,它集成了DuckDB的功能和特性。通过这个扩展,用户可以直接在Postg...

gitblog_00385的博客 1299

告别License烦恼:手把手教你用VS Code+Cppcheck搭建免费的MISRA-C代码检查环境

本文详细介绍了如何使用VS Code和开源工具Cppcheck搭建免费的MISRA-C代码检查环境,帮助开发者规避商业工具的高额License费用。通过四步环境搭建和实战技巧,实现高效的代码静态检查,提升嵌入式开发的安全性和可靠性。

weixin_42523326的博客 247

【免费下载】 DuckDB与PostgreSQL集成项目pg_duckdb配置详解

pg_duckdb是一个将DuckDB数据库引擎集成到PostgreSQL中的扩展项目。它允许用户在PostgreSQL环境中直接使用DuckDB的强大功能,如高性能分析查询、Parquet文件读取等。本文将深入解析pg_duckdb的各项配置参数,帮助用户根据实际需求优化系统行为。 ## 核心配置参数 ### 执行模式控制 `duckdb.force_execution`参数决定是否强制使...

gitblog_00958的博客 909

VulnHub靶机渗透实战(详细思路讲解)

使用kali中的namp工具扫描开放端口,这时kali会用一个端口号向目标主机的65535个端口发送TCP连接建立请求,回应了ack=1,syn=q的端口就是开放端口号,这里可以看到21,22,80,3306号端口是开放的。可以看到这里得到了很多哈希,带*号的是禁用的或者是空密码,将三个不带星号的密码复制下来,创建一个shell.txt文档,将三个密码复制进去。这里看到我们是没有成功进入这个网页的,应该是目录的问题,我们将目录修改一下,但是没有显示出来,可能是编码问题,再回到我们找到的源码。

weixin_65891791的博客 2543

大模型推理常见采样策略:Top-k, Top-p, Temperature, Beam Search

大模型推理采样策略,举例通俗易懂汇总介绍

qq_43243579的博客 2万+

PostgreSQL + DuckDB = pg_duckdb

pg_duckdb 可以让 PostgreSQL 拥有 DuckDB 的分析能力,并且不用迁移、无侵入、几乎零学习成本。

Tony.Dong的专栏 667

STM32CubeMX之定时器输入捕获

上一章介绍了STM32定时器的PWM输出功能,定时器的几个通道除了有输出功能外,还可以做输入用,可捕获信号的上升沿或下降沿,可以用于测量信号的频率、周期、占空比等。本篇文章将介绍用STM3...

zhang062061的专栏 1337

DuckDB与PostgreSQL集成:pg_duckdb函数详解

pg_duckdb是一个将DuckDB功能集成到PostgreSQL中的扩展项目,它允许PostgreSQL用户直接访问DuckDB的强大功能。DuckDB是一款轻量级的分析型数据库,特别适合OLAP工作负载,而PostgreSQL则是功能全面的关系型数据库。通过pg_duckdb,用户可以在PostgreSQL环境中无缝使用DuckDB的各种特性。 ## 函数分类与使用 ### 数据湖函数 ...

gitblog_00453的博客 859

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pg_duckdb 安装与配置指南

pg_duckdb 是一个将 DuckDB 的列式存储和向量化的分析引擎嵌入到 PostgreSQL 中的开源项目。它允许用户直接在 PostgreSQL 中使用 DuckDB 的强大功能,非常适合构建高性能分析和数据密集型应用。 主要编程语言:C++(用于 DuckDB 和 PostgreSQL 的扩展),以及 SQL(用于数据库查询)。 ## 2. 项目使用的关键技术和框架 - **Du...

gitblog_00473的博客 1148

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据湖查询新范式:pg_duckdb读写Parquet/CSV全攻略

还在为数据湖查询的性能瓶颈烦恼?pg_duckdb带来了革命性的解决方案!本文将带你掌握使用pg_duckdb高效读写Parquet和CSV文件的完整流程,从基础配置到高级应用,让你轻松应对大规模数据分析挑战。读完本文,你将能够: - 快速安装配置pg_duckdb环境 - 使用read_parquet和read_csv函数高效读写数据湖文件 - 掌握文件格式转换与数据导入技巧 - 了解性能优化...

gitblog_00217的博客 1294

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Lux调试与故障排除:常见问题解决方案汇总

💡 作为Python数据分析的智能可视化工具,Lux通过自动可视化pandas数据框大大简化了数据探索过程。但在实际使用中,用户可能会遇到各种调试问题和故障情况。本文汇总了Lux调试与故障排除的完整指南,帮助您快速解决常见问题! ## 1. 安装与导入问题排查 ### 无法导入Lux模块 当遇到`ModuleNotFoundError: No module named 'lux'`时,请检查

gitblog_01002的博客 944

seL4硬件抽象层设计:实现平台无关性的架构秘密

seL4微内核作为业界首个经过形式化验证的高安全操作系统内核,其硬件抽象层设计是实现跨平台兼容性的关键技术。这种精妙的架构设计让seL4能够在ARM、x86、RISC-V等多种硬件架构上运行,同时保持相同的安全保证和性能特性。🚀 ## seL4硬件抽象层架构解析 seL4的硬件抽象层采用分层设计,将平台相关的代码与核心内核逻辑完全分离。在`include/arch/`目录下,你可以看到清晰的

gitblog_00620的博客 965

DuckDB与PostgreSQL类型系统深度解析:pg_duckdb的类型支持与限制

在数据分析和数据库领域,类型系统是数据存储和处理的基石。pg_duckdb作为一个连接PostgreSQL和DuckDB的桥梁,其类型系统的兼容性直接影响到数据交互的顺畅程度。本文将深入探讨pg_duckdb中的类型支持情况、使用限制以及特殊类型处理机制。 ## 核心类型支持 pg_duckdb目前支持PostgreSQL和DuckDB中共有的多种数据类型,这些类型构成了数据交互的基础: #...

gitblog_00201的博客 779

从源码构建Verso:完整的环境配置与编译调试教程

想要深入了解基于Servo引擎的创新浏览器Verso的构建过程吗?本文为你提供详细的源码编译指南,从环境配置到最终运行,一步步教你如何搭建这个现代化的Web浏览器开发环境。 Verso是一个基于Servo Web引擎构建的创新型浏览器,它旨在探索Servo的嵌入解决方案,同时帮助其成长为成熟的浏览器。作为一个多窗口、多视图的浏览器项目,Verso为开发者提供了研究现代浏览器架构的绝佳机会。 #

gitblog_00246的博客 754

Crunchy Bridge 通过duckdb 对于pg 进行扩展

Crunchy 最近发布了一个Crunchy Bridge 的服务,通过duckdb 扩展了pg 对于数据分析的能力,官方发布的内容值得学习下参考玩法说明实际上目前社区也有一个pg 的duckdb_fdw ,也值得体验下,Crunchy Bridge 不是一个fdw 扩展,反而是使用了类似citus 的postgres h...

weixin_36843501的博客 238

pg_duckdb完全指南:让PostgreSQL轻松驾驭OLAP场景

本文将从原理、安装、核心能力和实战场景四个维度,全面解析pg_duckdb如何帮助PostgreSQL轻松驾驭OLAP场景。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 396

编译pg_duckdb步骤

git submodule update --init --recursive 来下载所需要的duckdb的源码到该目录中,但是实际使用貌似不行,所以需要到github中直接下载duckdb的源码并放到third_party中。1. 要求cmake的版本要高于3.17,可以通过下载最新的cmake的程序,然后设置.bash_profile的PATH环境变量,将最新的cmake的bin目录放到PATH环境变量的最前面。注意下载解压后,里面的third_party目录是空的,本来make的时候会执行。

风的专栏 620

DuckDB/pg_duckdb 项目中的Secrets管理机制详解

在现代数据系统中,安全地管理访问凭证是至关重要的环节。DuckDB/pg_duckdb项目提供了灵活的Secrets管理机制,允许用户安全地存储和使用各种云存储服务的访问凭证。本文将深入解析这一机制的工作原理和使用方法。 ## 基础Secret配置 ### 简单Secret创建 对于基本使用场景,DuckDB提供了直接的函数来创建Secret: ```sql SELECT duckdb.c...

gitblog_00504的博客 619

【免费下载】 DuckDB PostgreSQL扩展:pg_duckdb 使用教程

pg_duckdb 是一个为 PostgreSQL 提供的扩展,它将 DuckDB 的高性能列式数据库引擎和特性嵌入到 PostgreSQL 中。通过使用 pg_duckdb,开发者可以构建高性能的分析型和数据密集型应用。pg_duckdb 是由 DuckDB 社区与合作伙伴 Hydra 和 MotherDuck 共同开发的。 ## 2. 项目快速启动 以下是如何快速启动并使用 pg_duck...

gitblog_00730的博客 1057

pg_duckdb与Elasticsearch对比:全文搜索性能评测

在数据驱动的业务场景中,全文搜索能力直接影响用户体验与决策效率。传统关系型数据库的模糊匹配性能不足,而专业搜索引擎如Elasticsearch(ES)虽强大但架构复杂。pg_duckdb作为PostgreSQL与DuckDB的融合方案,通过列式存储与向量化执行引擎,正在重新定义分析型数据库的搜索能力边界。本文将从功能完整性、性能表现、资源消耗三个维度,全面对比pg_duckdb与Elasticse...

gitblog_00950的博客 877
上一篇: PostgreSQL 日报|内核多项缺陷修复与数据校验补丁推进(8 月 27 日)
下一篇: PostgreSQL 日报|内核多类缺陷修复与 B‑Tree 索引优化(8 月 29 日)
IvorySQL
博客等级 码龄5年 745粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值