3.2数据存储方式
3.2.1 多种数据分布方式
DB Civil数据库支持哈希分布以及随机分布两种数据分布方式,前者根据分布键值确定当前该值对应内容存放在指定位置,可以快速查找定位数据内容,后者将数据内容均匀分布在各磁盘上,能快速写入存储并确保数据不倾斜。
3.2.2 列存储
DB civil支持列存储,磁盘的每个Page仅仅存储来自单列的值,而不是整行的值,数据按列存储,压缩比可以做到很高,当查询少量字段时,扫描的块更少,可以提升效率和节约IO。因为是按列存储的,当需要查询大量字段时,或者查询的记录数偏少时,会造成离散IO较多。例如查询1条记录的20个列,行存储可能只需要扫描1个块,而列存储至少需要扫描20个块。由于IO的放大,列存储不适合OLTP的场景,如有大量的更新,查询操作。
3.2.3 行列混合存储
DB civil支持混合按列或按行存储数据,每张表或表分区可以由管理员根据应用需要,分别指定存储和压缩方式。基于这个功能,用户可以对任何表或表分区选择按行或按列存储数据和处理方式。这些是在建表或表分区,这个功能基于DB civil的多态数据存储技术。
3.2.4 对象存储
DB civil支持多元化数据存储,能够提供一种高性能、分布式的对象存储系统,能够更简单的实现具有弹性伸缩能力的原生对象存储服务。在对象存储用例(例如日志存储,备份归档,非结构数据存放)方面表现出色。DB Civil对象存储系统是专门为海量数据存储、人工智能、大数据分析而设计,单个对象最大可达1TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。主要采用Golang语言实现,整个系统都运行在操作系统的用户态空间,客户端与存储服务器之间采用http/https通信协议。优点:
· 高性能数据存储
有独立的数据通道和元数据访问通路,可以对多个OSD进行并行访问
· 跨平台数据共享
可以实现不同计算设备和数据的共享
· 可伸缩性
分布式结构,支持无限扩展,可以增加OSD数量,使存储的聚合I/O带宽、存储容量和处理能力得到提高,具备良好的可伸缩性
· 降低复杂性
消除文件夹和目录的分层文件系统带来的结构复杂性,提高性能和数据检索效率,降低了延迟
· 经济高效
对象存储介质便宜,可降低IT基础架构运营成本,经济高效的保留大量数据内容
3.2.5 数据压缩
DB civil拥有业界领先的压缩技术,进一步提高性能,并极大地节省了数据存储空间。DBA可以在同一张表采用不同的压缩算法,依赖于数据内容,最终可获得4-20倍的空间节省,并且同时获得相应有效I/O性能提升。
数据压缩比例1/2~1/10+
· 数据压缩提高数据处理性能
· 同一张表的不同列支持不同 的压缩算法,
压缩算法包括:
· Zlib1-9、zstd
· Stream-wise: RLE (levels1-4)