SuperAPI AI 工具集

analytical-databases-expert

数据与分析

查看项目

更新于 10-16 03:17

技能介绍

用途:该技能面向列式分析存储的设计与查询,覆盖 DuckDB、ClickHouse 与云数据仓库,并涉及文件格式、分区、排序键和成本控制。核心观点是列式引擎以扫描单列换取分析性能,不适合事务型逐行访问;行存储用于事务、列存储用于分析。

选型按部署而非速度:DuckDB 适合嵌入式分析、笔记本、CI 与单机数百 GB 以内场景,单进程、无并发写入;ClickHouse 适合高吞吐实时分析与十亿行级看板,但运维要求高;云数仓适合受治理的共享访问与弹性扩展,成本随使用增长;Spark/湖仓适合 PB 级批处理。文件格式上,Parquet 是分析默认选择,ORC 适配 Hive 生态,Avro 面向流式,CSV 适合交换而非大规模,JSON 适合半结构化落地。

必要用法:DuckDB 可直接查询文件并支持谓词与投影下推、Hive 分区裁剪,示例安装命令为 INSTALL postgres; LOAD postgres;;内存受限时用 SET memory_limit='8GB' 与 SET temp_directory='/var/tmp/duckdb' 让大连接落盘。ClickHouse 建表需重点决定 ORDER BY(主索引,筛选列在前)、PARTITION BY(用于数据管理,避免过细)与 LowCardinality(String)(低基数列压缩)。插入应大批量(数千到百万行),避免逐行写入;更新删除是异步 mutation。查询上宜先聚合再连接,可用 approx_count_distinct 做近似计数,用 EXPLAIN ANALYZE(DuckDB)或 EXPLAIN indexes = 1(ClickHouse)查看计划,关注扫描字节数。

限制与注意:DuckDB 限制为单写入进程、内存受机器限制;ClickHouse 运维复杂且为最终一致性语义;云数仓按扫描字节与计算时间计费,需过滤分区列、避免 SELECT *、物化重复聚合、设置查询与用户限额、空闲自动挂起。反模式包括把 OLAP 当 OLTP、小文件过多、过度分区、按行插入 ClickHouse、无人筛选的 ORDER BY 列以及无界保留。资料未提供具体价格数字、平台列表或效果承诺。