《ODC:无锁结构变更与冷热数据分离解决方案_胡智娟.pdf》由会员分享,可在线阅读,更多相关《ODC:无锁结构变更与冷热数据分离解决方案_胡智娟.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、胡智娟OceanBase 高级产品经理ODC:无锁结构变更与冷热数据分离解决方案Contents目录01 ODC 是什么ODC 能给开发者带来哪些帮助?02 无锁结构变更为结构变更提供安全稳定的解决方案03 数据归档为在线库提供冷热数据分离解决方案,实现数据库瘦身04 CY24 规划ODC 今年计划提供哪些能力01ODC 是什么ODC 是什么一个跨平台的数据库开发工具SQL 开发对象管理SQL 执行PL 调试导入导出一套针对数据库变更管理的团队协作平台变更风险管控SQL 规范检查变更审批数据脱敏操作审计一款全面覆盖数据生命周期管理的产品数据生命周期管理数据归档数据清理自动分区SQL 开发数据源
2、 OceanBase EE/CE ODP Sharding MySQL Oracle、Doris数据查看与编辑 数据查看 数据编辑 列模式 结果集类 EXCEL 交互数据迁移 数据导入 数据导出 结果集导出对象管理 表和视图 PL 对象 EVENT/JOB DBLINKSQL 诊断 执行计划 EXPLAIN 执行剖析 PROFILE 全链路追踪 TRACE数据生成 测试数据构建 场景化数据生成SQL 执行 SQL 编辑与执行 命令行窗口 脚本管理 代码片段PL 生命周期 匿名块窗口 PL 执行 PL 编译 PL 调试数据库运维 会话管理 全局变量管理 回收站管理ODC 是什么一个跨平台的数据库
3、开发工具超过 25 项重要开发功能,覆盖对象管理、SQL 执、数据查看与编辑等常开发具能,同时提供了 PL 调试、数据库运维、数据成等企业级特性。通过现代 WEB 架构提供方便的使用方式,桌面版可部署在 Windows、Mac、Linux系统,WEB 版用户通过浏览器即可访问服务。ODC 是什么一套针对数据库变更管理的团队协作平台通过访问权限、变更审核、稳定变更三个层次递进风险控制,保障生产数据库变更过程稳定、高效、可追溯。其中变更审核环节,通过 SQL 检查规则、SQL 窗口规范、风险识别定制符合实际业务情况的管控规则。稳定变更变更审核访问权限结构比对结构同步变更回滚无锁结构变更无锁数据变更
4、普通变更SQL 规范风险识别工单审批账号体系项目角色权限库访问权限项目管理员DBA安全管理员开发生产测试限流保护性能检测任务执行数据清理自动分区数据归档ODC 是什么一款全面覆盖数据生命周期管理的产品ODC 提供直观的界,使开发员能够轻松地制定冷热数据分离策略。5 分钟即可构建冷热数据分离系统。针对有动新增、删除分区诉求的分区表,ODC 持为这些表设置分区创建和清理策略,ODC 根据户配置的策略动管理分区,能有效地减轻 DBA 的工作负担。02无锁结构变更Online DDL 的要点最小化业务影响数据一致性保障平滑流量切换监控与控制故障恢复与回滚如何确保新表和旧表之间的数据一致性,保障数据不丢
5、失如何实时监控迁移进度、系统资源消耗以及可能的风险点,以便及时调整策略或中止操作在迁移过程中出现意外情况时,如何快速恢复原状,保证业务不受长期影响无锁结构变更Offline DDL 的影响Offline DDL 和 Online DDL独占锁导致所有对该表的读取和写入操作都将被阻塞,直到 DDL 完成。这会导致用户请求长时间等待,甚至服务暂时中断。大表的 Offline DDL 可能会触发大规模的数据读写操作,产生海量 I/O,造成磁盘压力骤增进而影响整个系统的性能。Offline DDL 期间,正在进行中的事务会被阻塞,直至超时或被迫回滚。这会导致用户丢失未提交的数据。服务中断,影响业务连续
6、性资源消耗,影响其它关键进程性能下降数据一致性风险,导致未提交的更改丢失如何在数据迁移后,快速、安全地将应用程序的读写流量从旧表切换到新表无锁结构变更支持 offline DDL 自动识别,online DDL 走普通变更,offline DDL 走无锁结构变更。使用 OB 成熟的迁移技术完成全量、增量数据同步,数据同步过程中根据数据库负载限流。业务切流过程中会根据锁表超时时间、重试次数等设置来执行,以保障切流过程的平滑。在 rename 过程中只需短暂地(1-3s)影响业务。变更任务默认保存原表结构及数据以保障紧急情况下变更回滚。发起结构变更Offline 变更自动检查发起结构变更Table
7、ATableA_ 临时表 1数据同步数据校验+增量同步流量监控renameTableArenameTableA_ 临时表 2ODC online DDL 流程无锁结构变更ODC online DDL 的应用分类操作列操作1、支持增加列到指定位置2、支持列类型修改3、支持重排列(before/after/first)4、支持转换字符集主键操作1、在表有非空唯一键的前提下支持增加主键2、在表有非空唯一键的前提下支持修改主键3、在表有非空唯一键的前提下支持删除主键分区操作1、支持删除分区2、支持 truncate 分区3、支持重分区4、支持降普通表转化为分区表字段类型调整 面对产品需求频繁变更,数据
8、库结构需要随之调整以适应新的业务逻辑或数据存储需求。随着数据量增长和查询负载增加,数据库管理员可能会发现某些字段类型并不适合现有数据分布或查询模式。法规遵从性要求或企业内部数据安全策略的变化迫使调整数据库字段的数据类型。修改主键 原有表缺少主键,需要增加主键。原有的主键设计不符合实际诉求,需要修改主键。03数据归档数据库性能下降存储成本上升数据运维难度增加数据增长带来的挑战选择高压缩比的数据库冷热数据分离为冷数据选择 CPU 配置较低且存储更便宜的服务器实现在线库瘦身存储成本下降数据库性能提升数据运维难度降低数据归档OBMySQLOracleOB数据库性能下降存储成本上升数据运维难度增加数据归
9、档的流程稳定支持实时监控,自动限流灵活支持灵活的归档/清理条件配置(支持自定义变量)支持多种调度策略安全支持数据一致性校验可靠支持归档任务异常回滚Table_ATable_A在线库MySQL/Oracle/OB历史库OB数据同步源端、目标端资源监控自动限流数据清理热数据冷数据数据归档任务界面新建归档任务查看归档执行记录查看归档任务信息数据归档关键技术解读分片并行实现高性能归档 基于主键的分片策略 将归档任务拆分成多个较小的子任务 多个线程并发处理先校验再删除确保历史数据库可信 支持源端、目标端数据一致性校验多维度限流保障在线库稳定运行 主动限流:流量限制、行数限制 被动限流:根据 CPU、内存
10、使用情况限流断点恢复更适应大数据规模 每个子任务会保留一个滑动窗口用于记录事务的成功状态 失败的事务即为断点,会定期同步到数据库中 重跑时获取每个子任务的断点信息,从断点位置继续运行四大关键技术分批分片多线程全记录检查清理线程数据清理在线库历史库数据归档用户案例:理想汽车之数据库瘦身、降本增效业务挑战在线日志型数据庞大,缺少有效清理手段业务数据快速增长,需要控制数据规模业务场景复杂多样,多表联合过滤等多场景历史数据归档:在线库(SSD磁盘)-历史库(SAS磁盘),将数据归档到廉价存储的历史库,节省约三分之二存储成本,提高在线库性能和运维效率过期数据清理:直接原地清理过期数据,100%节省存储成
11、本异常数据回滚:数据归档后,发现异常后可以从历史库进行数据恢复,将数据回滚到在线库功能价值降本增效:大量历史数据访问少、数据量大,清理过期数据降低存储成本数据库瘦身:业务快速增长,数据规模日趋庞大,缩小在线库数据规模提升性能和稳定性数据归档create_timeTable_A 30 Days归档进程归档进程归档进程在线库Table_ASSD 盘删除历史库Table_ASAS 盘数据同步create_time30 Days异常回滚04ODC 今年规划产品迭代路线图支持 AP 业务场景开发,结合 AI 提效,持续打磨数据归档及变更风险管控能力Q1 支持 Oracle 数据源 支持库级别访问控制 支
12、持通知告警 支持结构比对 支持 Doris 数据源Q2Q3Q4 数据归档支持 OBOracle 模式 支持逻辑库 DDL 变更 支持多库(pipeline)变更 支持无锁数据变更 支持实时查询剖析 支持表级别访问权限控制 支持从 Oracle 归档到 OB 支持 dbt 开发 支持基于状态的结构变更 支持列级别访问权限控制 支持自然语言转化为 SQL、图表 支持项目内脚步与代码片段共享 支持从 OB 归档到文件、云存储 支持从 PG 归档到 OB 支持关联(外键)场景进行归档 支持 AI 任务编排 支持 DAG 任务编排 支持轻量报表管理 支持异构数据库结构比对/同步 支持归档过程中的全量、增量结构处理 数据归档/清理支持逻辑库官网介绍