postgres_scanner 项目地址: https://gitcode.com/gh_mirrors/po/postgres_scanner
DuckDB Postgres Scanner 是一个开源项目,允许 DuckDB 直接从运行的 Postgres 数据库实例中读取和写入数据。通过这个扩展,用户可以直接查询 Postgres 数据库中的数据,并将数据从 Postgres 表加载到 DuckDB 表中,反之亦然。
该项目的主要功能包括:
ATTACH
命令将 Postgres 数据库连接到 DuckDB。确保你已经安装了 DuckDB 和 Git。如果没有安装,可以通过以下命令安装:
# 安装 DuckDB
pip install duckdb
# 安装 Git
sudo apt-get install git
首先,克隆 postgres_scanner
项目到本地:
git clone https://github.com/duckdb/postgres_scanner.git
cd postgres_scanner
初始化并更新子模块:
git submodule init
git pull --recurse-submodules
构建 postgres_scanner
扩展:
make
运行 DuckDB shell 并加载扩展:
./build/release/duckdb -unsigned # 允许加载未签名的扩展
在 DuckDB shell 中加载 postgres_scanner
扩展:
LOAD 'build/release/extension/postgres_scanner/postgres_scanner.duckdb_extension';
使用 ATTACH
命令连接到 Postgres 数据库:
ATTACH 'dbname=postgresscanner host=localhost port=5432' AS postgres_db (TYPE postgres);
现在你可以直接查询 Postgres 数据库中的数据:
SELECT * FROM postgres_db.uuids;
使用 postgres_scanner
扩展,可以将数据从 Postgres 数据库迁移到 DuckDB 中。这对于需要高性能查询的场景非常有用。
CREATE TABLE duckdb_table AS SELECT * FROM postgres_db.source_table;
在实时数据分析场景中,postgres_scanner
允许你直接查询 Postgres 数据库中的数据,而无需将数据复制到本地。
SELECT COUNT(*) FROM postgres_db.transactions WHERE amount > 1000;
通过定期查询 Postgres 数据库并将数据加载到 DuckDB 中,可以实现数据的同步。
INSERT INTO duckdb_table SELECT * FROM postgres_db.source_table WHERE last_updated > '2023-01-01';
DuckDB 是一个高性能的嵌入式 SQL 数据库,特别适合于数据分析和查询。postgres_scanner
扩展是 DuckDB 生态系统的一部分,提供了与 Postgres 数据库的集成。
Postgres 是一个功能强大的开源关系型数据库,广泛用于各种应用场景。通过 postgres_scanner
,DuckDB 可以直接访问 Postgres 数据库中的数据,增强了数据处理的灵活性。
Apache Arrow 是一个跨语言的内存数据格式,支持高效的列式数据处理。DuckDB 和 Postgres 都支持 Arrow 格式,通过 postgres_scanner
,可以实现更高效的数据交换和处理。
通过以上步骤,你可以快速上手并使用 postgres_scanner
扩展,实现 DuckDB 与 Postgres 数据库的无缝集成。
postgres_scanner 项目地址: https://gitcode.com/gh_mirrors/po/postgres_scanner