Files
compose-anything/src/duckdb/README.zh.md
Sun-ZhenXing ece59b42bf Add environment configuration and documentation for various services
- Created .env.example files for Kafka, Kibana, KodBox, Kong, Langfuse, Logstash, n8n, Nginx, OceanBase, OpenCoze, RocketMQ, TiDB, and TiKV.
- Added README.md and README.zh.md files for OceanBase, RocketMQ, TiDB, and TiKV, detailing usage, configuration, and access instructions.
- Implemented docker-compose.yaml files for OceanBase, RocketMQ, TiDB, and TiKV, defining service configurations, health checks, and resource limits.
- Included broker.conf for RocketMQ to specify broker settings.
- Established a consistent timezone (UTC) across all services.
- Provided optional port overrides in .env.example files for flexibility in deployment.
2025-10-22 11:46:50 +08:00

1.8 KiB
Raw Blame History

DuckDB

DuckDB 是一个进程内 SQL OLAP 数据库管理系统,专为支持分析查询工作负载而设计。它是嵌入式的、零依赖的,并且速度极快。

使用方法

docker compose up -d

访问方式

交互式 Shell

访问 DuckDB CLI

docker compose exec duckdb duckdb /data/duckdb.db

执行查询

直接运行查询:

docker compose exec duckdb duckdb /data/duckdb.db -c "SELECT 1"

执行 SQL 文件

docker compose exec duckdb duckdb /data/duckdb.db < query.sql

使用示例

-- 创建表
CREATE TABLE users (id INTEGER, name VARCHAR);

-- 插入数据
INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');

-- 查询数据
SELECT * FROM users;

-- 加载 CSV 文件
COPY users FROM '/import/users.csv' (HEADER);

-- 导出到 CSV
COPY users TO '/data/users_export.csv' (HEADER);

-- 直接读取 Parquet 文件
SELECT * FROM '/import/data.parquet';

特性

  • 可嵌入:无需单独的服务器进程
  • 快速:向量化查询执行引擎
  • 功能丰富:完整的 SQL 支持包括窗口函数、CTE 等
  • 文件格式:原生支持 CSV、JSON、Parquet
  • 扩展:兼容 PostgreSQL 的扩展

挂载数据文件

要导入数据文件,将它们作为卷挂载:

volumes:
  - ./data:/import:ro

然后在 SQL 中访问文件:

SELECT * FROM '/import/data.csv';

注意事项

  • DuckDB 专为分析OLAP工作负载设计而非事务OLTP
  • 数据库文件存储在 /data/duckdb.db
  • 数据持久化在命名卷 duckdb_data
  • DuckDB 可以直接查询文件而无需导入
  • 生产工作负载需确保分配足够的内存

参考资料