ShardingSphere 5.2.1 发布|新增系统库、强制分片路由、一致性校验

Apache ShardingSphere 本周迎来了 5.2.1 版本的发布,该版本历时一个半月,共合并了来自全球的团队和个人累计 614 个 PR,新版本在功能、性能、测试、文档、示例等方面都进行了大量的优化。

本次 5.2.1 版本带来了如下亮点功能:

  • ShardingSphere 系统库

  • SQL HINT 强制分片路由

  • 异步数据一致性校验

为了打造完善的 ShardingSphere 分布式数据库能力,5.2.1 版本引入了新的 ShardingSphere 系统库,旨在为分布式数据库提供基础的统计信息。通过 ShardingSphere 系统库提供的统计信息,可以辅助 SQL Federation 执行引擎估算执行代价,选择代价最小的执行计划。此外,ShardingSphere 系统库还可提供数据分片后的分布信息,为自动化的分片扩缩容管理提供参考依据。

SQL HINT 是 ShardingSphere 5.x 版本提供的重要功能,用户可以通过 SQL 注释的方式来灵活控制路由。本次 5.2.1 版本对 SQL Hint 的能力进行了增强,支持了数据分片强制路由,用户添加

/* SHARDINGSPHERE_HINT: t_order.SHARDING_DATABASE_VALUE=1, t_order.SHARDING_TABLE_VALUE=1 */ 格式的注释,就可以将分片值传递给 ShardingSphere 路由引擎,相比之前版本的 HintManager 方式,SQL HINT 方式更加灵活,无需用户编写代码。

本次 5.2.1 版本还对数据迁移功能中的数据一致性校验进行了增强,允许异步执行数据一致性校验,用户可以通过 DistSQL 查看数据迁移的进度,数据迁移功能的易用性大大提升。5.2.1 版本还增加了治理中心对 Consul 和 Nacos 的支持,为用户提供了更多的选择,SQL 支持度也进行了大幅度地提升,读写分离功能对从库禁用后 Proxy 的启动进行了优化,支持用户使用 -f 参数进行强制启动。本文将为大家详细介绍 ShardingSphere 5.2.1 版本的更新内容。

新亮点介绍

  • ShardingSphere 系统库

为了打造更加完善的分布式数据库,ShardingSphere 5.2.1 版本新增了系统库功能,ShardingSphere 系统库和 MySQL、PostgreSQL 的系统库类似,都是用于对数据库的元数据进行管理。ShardingSphere 系统库存储的信息主要包括了动态元数据和静态元数据。动态元数据是指会频繁动态更新的数据,例如分布式数据库的统计信息,动态元数据需要通过内置的调度任务定时进行收集维护;静态元数据则是指在用户不修改的情况下,不会发生变更的数据,例如用户对 ShardingSphere 分布式数据库设置的状态参数,这些数据只需要存储在元数据库中提供查询即可。

由于 ShardingSphere 系统库目前还是实验性功能,因此在使用该功能时,需要通过如下配置开启元数据收集:

proxy-metadata-collector-enabled: true

通过命令行连接 Proxy,然后执行 SHOW DATABASES 语句,我们可以看到新增的 shardingsphere 数据库,该库中存储了分布式数据库的元数据信息。

68b06bb89eca06e366ea89dbc1332276.png

目前,shardingsphere 数据库中增加了 sharding_table_statistics 表,用于对分片表的分布信息进行统计,包括了 row_count 和 size 等信息。

ed626ab6d9a27608a6a45e0b3ec1ac5e.png

通过 ShardingSphere 系统库提供的统计信息,可以辅助 SQL Federation 执行引擎估算执行代价,选择合适的关联顺序和方式,达到高效执行的目的。此外,ShardingSphere 还可以根据数据分布信息以及存储节点负载信息,自动化地完成分片扩缩容,减少用户的运维管理成本。

  • SQL HINT 强制分片路由

在某些特殊的业务场景中,用户用于分片的字段不存在 SQL 和数据库表结构中,而存在于外部业务逻辑中,此时需要使用 Hint 的方式传入分片键值来完成分片路由。在 5.2.1 之前的版本中,有两种使用 Hint 的方式可供选择,一种是在 JDBC 接入端,通过 HintManager 的方式来使用,而另一种则是在 Proxy 接入端,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值