1、云原生时序数据库的挑战和架构设计Greptime/冯家纯关于我 Greptime 技术联创 负责时序数据库产品研发 分布式共识算法库 SOFAJRaft 开源负责人PART 1什么是时序数据什么是时序数据PART 3面向弹性设计的 ServerlessDB 架构PART 2时序数据特有的挑战PART 4交流&QA什么是时序数据?什么是时序数据?记录事物随着时间推移的变化可视化展示、数据分析时序数据模型时序数据模型metriccitydistricttimestampvaluetemperature_minBeijingHaidian168632640018temperature_minBeij
2、ingHaidian168641280018temperature_maxBeijingHaidian168632640031temperature_maxBeijingHaidian168641280032metriccitydistricttimestamptemperature_mintemperature_maxtemperatureBeijingHaidian16863264001831temperatureBeijingHaidian16864128001832多值模型:面向数据源建模单值模型:面向业务指标数据建模行业时序数据库现状行业时序数据库现状时序数据应用场景时序数据应用场景
3、 Internet of things智能家居、可穿戴设备、工业传感器 金融数据股票价格、交易量、市场指数分析和预测 系统监控/可观测CPU、Mem、IO 新能源汽车CAN 信号、电池为什么需要时序数据库?为什么需要时序数据库?数据规模大传统 DB 难满足时序数据库诞生 检测点多,信息量大 数据高频产生,高吞吐摄入 存储成本敏感 存储成本高 维护成本高 写入吞吐低 时序分析能力差 低成本存储 高并发写入 低延时多维时序查询PART 1什么是时序数据PART 3面向弹性设计的 ServerlessDB 架构PART 2时序数据特有的挑战时序数据特有的挑战PART 4交流&QA 高基数(High-
4、Cardinality)(High-Cardinality)问题高基数是如何产生的高基数是如何产生的Time-series 数量高基数是如何产生的高基数是如何产生的Tag 拥有无限多的值高基数是如何产生的高基数是如何产生的高基数带来的问题高基数带来的问题写入问题索引膨胀查询问题一次查询涉及到多少个 TSIDwhere status=“200”and method=“get”高基数的解法高基数的解法 垂直:Time Interval Chunk Index 水平:Sharding Key 分区扫描+剪枝 Async Smart Index 时序数据压缩时序数据压缩时序数据压缩-Gorilla -
5、Gorilla 压缩压缩1)按照时间戳组织数据2)Delta-of-Delta 对时间戳编码3)对浮点数的二进制表示进行异或运算压缩比:3x 8x,16 字节=2-5 字节Timestamp:Delta-of-DeltaTimestamp:Delta-of-DeltaTimestamp:Delta-of-DeltaTimestamp:Delta-of-Deltafloat64:XORfloat64:XOR1 bit 符号位11 bit 指数位52 bit 小数位float64:XORfloat64:XORGorilla Gorilla 已经够好了吗?已经够好了吗?Gorilla Gorilla
6、 已经够好了吗?已经够好了吗?1)浮点数 =整数(*10N)2)低熵数据=ZSTD 再压缩3)冷热分离=不同压缩级别PART 1什么是时序数据PART 3面向弹性设计的面向弹性设计的 ServerlessDB ServerlessDB 架构架构PART 2时序数据特有的挑战PART 4交流&QA 存算分离、算算分离 GreptimeDB 简介 Workload 抽象 基于 Workload 的流控 自动驾驶传统架构传统架构-存算一体存算一体 Shared Nothing 存储和算力强绑定 粗粒度资源分配传统架构传统