解读TaurusDB字段压缩:减少存储成本,避免语句大量修改
摘要:TaurusDB的字段压缩功能,不仅支持用户根据需求进行自选压缩算法等操作,实现细粒度的压缩策略调整,还能够自动识别并压缩符合条件的字段。
1. 技术背景
2.特性价值
3.实现原理
图1 Compact行格式数据
图2 字段压缩中的压缩格式
图3 字段压缩中的非压缩格式
图4 TaurusDB压缩/解压缩示意
4 业务场景/流程
4.1 特性参数
图5 调整字段压缩参数
表1 字段压缩参数说明
4.2 使用
- 显式压缩 [rds_column_compression=1]
图6 显式压缩参数设置
create table t1(c1 varchar(100) compressed, c2 varchar(100) compressed=zlib, c3 varchar(100) compressed=zstd) default charset=latin1;
图7 查看压缩属性
- 自动压缩 [rds_column_compression=2]
图8 自动压缩参数设置
create table t2(c1 varchar(99), c2 varchar(100)) default charset=latin1;
图9 查看压缩属性
- 关闭压缩 [rds_column_compression=0]
图10 关闭压缩参数设置
create table t3(c1 varchar(100) compressed, c2 varchar(100) compressed=zlib, c3 varchar(100) compressed=zstd) default charset=latin1;
图11 查看关闭效果
- 观察效果
mysql> show create table t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `c1` varchar(100) /*!99990 800220201 COMPRESSED=ZLIB */ DEFAULT NULL, `c2` varchar(100) /*!99990 800220201 COMPRESSED=ZLIB */ DEFAULT NULL, `c3` varchar(100) /*!99990 800220201 COMPRESSED=ZSTD */ DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, EXTRA from information_schema.columns where extra like '%compressed%';
图12 通过系统视图查询压缩字段
show global status like '%column%compress%';
图13 查看压缩/解压缩接口调用情况
5.总结
CREATE TABLE `random_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data` longtext, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; DELIMITER $$ CREATE PROCEDURE `generate_random_data`() BEGIN DECLARE i INT DEFAULT 1; DECLARE j INT DEFAULT 1; DECLARE str longtext; WHILE i <= 10000 DO SET j = 1; SET str = ''; WHILE j <= 400 DO SET str = CONCAT(str, MD5(RAND())); SET j = j + 1; END WHILE; INSERT INTO `random_data` (`data`) VALUES (str); SET i = i + 1; END WHILE; END$$ DELIMITER ;
CREATE TABLE `sbtest1` ( `id` int NOT NULL AUTO_INCREMENT, `k` int NOT NULL DEFAULT '0', `c` varchar(120) COLLATE utf8mb4_0900_bin NOT NULL DEFAULT '', `pad` varchar(60) COLLATE utf8mb4_0900_bin NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`) ) ENGINE=InnoDB AUTO_INCREMENT=10000001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
BladeDISC++:Dynamic Shape AI 编译器下的显存优化技术
近年来,随着深度学习技术的迅猛发展,越来越多的模型展现出动态特性,这引发了对动态形状深度学习编译器(Dynamic Shape AI Compiler)的广泛关注。本文将介绍阿里云 PAI 团队近期发布的 BladeDISC++项目,探讨在动态场景下如何优化深度学习训练任务的显存峰值,主要内容包括以下三个部分: Dynamic Shape 场景下显存优化的背景与挑战 BladeDISC++的创新解决方案 Llama2 模型的实验数据分析 本文内容来自NeurIPS WorkShop 2024 论文:BladeDISC++: Memory Optimizations Based On Symbolic Shape 一、背景与挑战 动态形状深度学习编译器的挑战 随着模型架构的不断演进,其动态性日益增强。例如,传统的计算机视觉(CV)模型中,图像尺寸和批量大小(batch size)在训练过程中会不断变化;大型语言模型的序列长度和批量大小也呈动态调整状态;多模态模型中的图像、视频长度及序列长度同样变化不定。此外,一些更为复杂的混合专家(MoE)模型还涉及与数据相关的动态形状,这些都体现了模型...
- 下一篇
OpenAI 宕机思考丨Kubernetes 复杂度带来的服务发现系统的风险和应对措施
作者:王建伟(正己) 12 月 11 日,OpenAI 旗下 AI 聊天机器人平台 ChatGPT、视频生成工具 Sora 及其面向开发人员的 API 自太平洋时间下午 3 点左右起发生严重中断,耗费约三个小时才顺利恢复所有服务。 OpenAI 在事后报告中写道,"该问题源自新部署的遥测服务,此项服务无意间压垮了 Kubernetes 控制平面,导致关键系统发生连锁故障。引发事故的根本原因就是新的遥测服务配置意外在大规模集群中产生了大量 Kubernetes API 负载,导致控制平面不堪重负并破坏了基于 DNS 的服务发现能力。" 可见,即使如实力强大的 OpenAI,面对复杂 Kubernetes 架构,也不能很好处理 Kubernetes 服务发现和控制面解耦的问题。造成这个问题的关键原因在于容器调度和业务关键服务发现链路耦合在一起,互相干扰,Kubernetes 控制面故障影响了业务服务发现链路。那么,Kubernetes 体系下应如何选择服务发现系统,进一步提升业务稳定性呢? 笔者认为,大型业务的服务发现系统应该具备高可靠性,高可伸缩性,高性能及高可维护性等特点,采用独立服务...
相关文章
文章评论
共有0条评论来说两句吧...