引言
ClickHouse 是 Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快 100-1000 倍。ClickHouse 的性能超过了目前市场上可比的面向列的 DBMS,每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。它是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
一、测试环境
1.1、服务器(虚拟机)
CPU:Kunpeng-920 CPU @ 2.60GHz,16核
内存:64G
硬盘:1T
1.2、相关软件版本
ClickHouse:v22.5.2.53
JDK:1.8
DBeaver:1.6.3
二、性能测试
2.1、轨迹表设计
设计19列,冗余可能参与查询、分组统计的数据,去掉一些不必要的列和预计算列。
表结构查看附1
通用MergeTree引擎,基于定位时间按周分区
排序(主索引):ADMIN_CODE,VEHICLE_PLATE_NUMBER,
VEHICLE_PLATE_COLOR,POSITION_TIME
跳数索引1:POSITION_TIME
跳数索引2:LONGITUDE,LATITUDE
跳数索引3:OWNER_ID
总存储大小:214.53G(1.5G/亿)
附:查询列信息,查询表存储空间的sql语句
--查询列信息
select * from system.columns where `table` = 'VEHICLE_TRACK' order by data_compressed_bytes desc
--查询表存储空间
SELECT
sum(rows) AS `总行数`,
formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`,
formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`,
formatReadableSize(sum(bytes_on_disk)) AS `磁盘大小`,
toString(round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes))*100, 0))||'%' AS `压缩率`
from system.parts where table='VEHICLE_TRACK'
2.2、轨迹数据
2024-10-01到2024-10-31共31天数据,总记录数10亿,日均3300万条
原始数据占用空间:120G
压缩数据占用空间:16G
2.3、轨迹数据测试
查询类型 |
响应时间 |
返回 |