 Apache ShardingSphere 中文文档 5.0.0-alpha本小节主要介绍数据分片的核心概念,主要包括: • SQL 核心概念 • 分片核心概念 • 配置核心概念 • 行表达式 • 分布式主键 • 强制分片路由 SQL 逻辑表 水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:订单数据根据主键尾数拆分为 10 张表,分 别是 t_order_0 到 t_order_9,他们的逻辑表名为 t_order。 真实表 在分片的数据库中真实存在的物理表。即上个示例中的 配置数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 t_order$->{2..4} 3.1. 数据分片 16 Apache ShardingSphere document, v5.0.0-beta 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 301 页 | 3.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0-alpha本小节主要介绍数据分片的核心概念,主要包括: • SQL 核心概念 • 分片核心概念 • 配置核心概念 • 行表达式 • 分布式主键 • 强制分片路由 SQL 逻辑表 水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:订单数据根据主键尾数拆分为 10 张表,分 别是 t_order_0 到 t_order_9,他们的逻辑表名为 t_order。 真实表 在分片的数据库中真实存在的物理表。即上个示例中的 配置数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 t_order$->{2..4} 3.1. 数据分片 16 Apache ShardingSphere document, v5.0.0-beta 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 301 页 | 3.44 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.0.0数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 .1},db1.t_order${2..4} 或者 db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_05 库的访问的编排治理能力。治理模块仍然有大量 未完成的功能(比如流控等)。 4.5. 分布式治理 45 Apache ShardingSphere document, v5.0.0 注册中心数据结构 在定义的命名空间下,rules 、props 和 metadata 节点以 YAML 格式存储配置,可通过修改节点来实 现对于配置的动态管理。status 存储数据库访问对象运行节点,用于区分不同数据库访问实例。0 码力 | 385 页 | 4.26 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 .1},db1.t_order${2..4} 或者 db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_05 库的访问的编排治理能力。治理模块仍然有大量 未完成的功能(比如流控等)。 4.5. 分布式治理 45 Apache ShardingSphere document, v5.0.0 注册中心数据结构 在定义的命名空间下,rules 、props 和 metadata 节点以 YAML 格式存储配置,可通过修改节点来实 现对于配置的动态管理。status 存储数据库访问对象运行节点,用于区分不同数据库访问实例。0 码力 | 385 页 | 4.26 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者: db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 1},db1.t_order${2..4} 或者: db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 409 页 | 4.47 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者: db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 1},db1.t_order${2..4} 或者: db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 409 页 | 4.47 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 .1},db1.t_order${2..4} 或者 db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 406 页 | 4.40 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者 db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 .1},db1.t_order${2..4} 或者 db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 406 页 | 4.40 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者: db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 1},db1.t_order${2..4} 或者: db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 446 页 | 4.67 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.1.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 /rules . . . . . . . . . 数据节点 对于均匀分布的数据节点,如果数据结构如下: db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 用行表达式可以简化为: db${0..1}.t_order${0..1} 或者: db$->{0..1}.t_order$->{0..1} 对于自定义的数据节点,如果数据结构如下: db0 ├── t_order0 1},db1.t_order${2..4} 或者: db0.t_order$->{0..1},db1.t_order$->{2..4} 对于有前缀的数据节点,也可以通过行表达式灵活配置,如果数据结构如下: db0 ├── t_order_00 ├── t_order_01 ├── t_order_02 ├── t_order_03 ├── t_order_04 ├── t_order_050 码力 | 446 页 | 4.67 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 7.3.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 /rules . . . . . . . . . shardin g.algorithm. shard‐ ing.ran ge.VolumeBas edRangeShard ingAl‐ gorithm AUTO _INTERVAL Y 基于可变时间范围的分 片算法 org.apac he.shardings phere.shardi ng.algorithm .shard‐ ing.da tetime.AutoI ntervalShard 方言的 SQL,ShardingSphere 能自 动识别用户协议与存储节点类型,自动完成 SQL 方言转换,访问 PostgreSQL 等异构存储节点。 7.3 管控 7.3.1 注册中心数据结构 在定义的命名空间下,rules 、props 和 metadata 节点以 YAML 格式存储配置,可通过修改节点来实 现对于配置的动态管理。nodes 存储数据库访问对象运行节点,用于区分不同数据库访问实例。0 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 7.3.1 注册中心数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 /rules . . . . . . . . . shardin g.algorithm. shard‐ ing.ran ge.VolumeBas edRangeShard ingAl‐ gorithm AUTO _INTERVAL Y 基于可变时间范围的分 片算法 org.apac he.shardings phere.shardi ng.algorithm .shard‐ ing.da tetime.AutoI ntervalShard 方言的 SQL,ShardingSphere 能自 动识别用户协议与存储节点类型,自动完成 SQL 方言转换,访问 PostgreSQL 等异构存储节点。 7.3 管控 7.3.1 注册中心数据结构 在定义的命名空间下,rules 、props 和 metadata 节点以 YAML 格式存储配置,可通过修改节点来实 现对于配置的动态管理。nodes 存储数据库访问对象运行节点,用于区分不同数据库访问实例。0 码力 | 449 页 | 5.85 MB | 1 年前3
 《Redis使用手册》(试读版)允许 不得将本⽂档及其内容⽤于任何商业⽤途,违者必究。 ⽬录 以下是《Redis使⽤⼿册》⼀书的完整⽬录,其中标题后⾯带 * 的⼤章都在本⽂档提供了试读。 前⾔* 1. 引⾔* 第⼀部分:数据结构与应⽤ 2. 字符串(String)* 3. 散列(Hash)* 4. 列表(List)* 5. 集合(Set)* 6. 有序集合(Sorted Set) 7. HyperLogLog 8. 位图(bitmap) 当你使⽤这些服务时, 你实际上就是在使⽤ Redis 。 除了变得越来越受欢迎之外, Redis 在过去数年的另⼀个变化就是更新速度越来越快, 功能也变得越来越多、越 来越强⼤: ⽐如说, Redis 的数据结构数量已经从过去的五种增加到了九种, RDB-AOF 混合持久化模式的引⼊ 使得⽤户不必再陷⼊“⻥和熊掌不可兼得”的难题中, ⽽集群功能和模块机制的引⼊则让 Redis 在性能和功能上拥 有了近乎⽆限的扩展能⼒。 版本以及本书配套的读者服务 ⽹站。 1.1 Redis 简介 Redis 是⼀个主要由 Salvatore Sanfilippo (antirez)开发的开源的内存数据结构存储器, 它经常被⽤作数据 库、缓存以及消息代理等⽤途。 Redis 因为它丰富的数据结构、极快的速度、⻬全的功能⽽为⼈所知, 它是⽬前内存数据库⽅⾯的事实标准, 在 互联⽹上有⾮常⼴泛的应⽤, 包括微博、Twitter、GitHub、Stack0 码力 | 352 页 | 6.57 MB | 1 年前3 《Redis使用手册》(试读版)允许 不得将本⽂档及其内容⽤于任何商业⽤途,违者必究。 ⽬录 以下是《Redis使⽤⼿册》⼀书的完整⽬录,其中标题后⾯带 * 的⼤章都在本⽂档提供了试读。 前⾔* 1. 引⾔* 第⼀部分:数据结构与应⽤ 2. 字符串(String)* 3. 散列(Hash)* 4. 列表(List)* 5. 集合(Set)* 6. 有序集合(Sorted Set) 7. HyperLogLog 8. 位图(bitmap) 当你使⽤这些服务时, 你实际上就是在使⽤ Redis 。 除了变得越来越受欢迎之外, Redis 在过去数年的另⼀个变化就是更新速度越来越快, 功能也变得越来越多、越 来越强⼤: ⽐如说, Redis 的数据结构数量已经从过去的五种增加到了九种, RDB-AOF 混合持久化模式的引⼊ 使得⽤户不必再陷⼊“⻥和熊掌不可兼得”的难题中, ⽽集群功能和模块机制的引⼊则让 Redis 在性能和功能上拥 有了近乎⽆限的扩展能⼒。 版本以及本书配套的读者服务 ⽹站。 1.1 Redis 简介 Redis 是⼀个主要由 Salvatore Sanfilippo (antirez)开发的开源的内存数据结构存储器, 它经常被⽤作数据 库、缓存以及消息代理等⽤途。 Redis 因为它丰富的数据结构、极快的速度、⻬全的功能⽽为⼈所知, 它是⽬前内存数据库⽅⾯的事实标准, 在 互联⽹上有⾮常⼴泛的应⽤, 包括微博、Twitter、GitHub、Stack0 码力 | 352 页 | 6.57 MB | 1 年前3
 Redis 多数据中心双向同步 祝辰被全世界共享起来 互联网的规模也从单独 一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 176ms 左右 • 到美西站点, 平均延迟在 160ms 左右 携程业务开发的需求, 对于 Redis 的数 据存储有着强依赖. 机票的业务需要从 上游供应商处收集舱位信息, Redis 方便 的多种数据结构类型对于储存这种数据 比较方便. 同时由于供应商是在全球分布的特性, 就更需要一个能够多点写入的 Redis 集 群, 支持海外站点和国内站点同时进行读写; 并解决因此可能出现的数据一致性问题. 全量状态 发送给接收端, 接 收端执行 merge 操作, 来达到和发送端状态 一致的结果 State-base replication 适用于不稳定的网络 系统, 通常会有多次重传 要求数据结构能够支持 交换律/结合律/幂等 性 这些特性 State-based Replication Operation-based CRDTs are referred to as commutative0 码力 | 45 页 | 1.74 MB | 1 年前3 Redis 多数据中心双向同步 祝辰被全世界共享起来 互联网的规模也从单独 一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 176ms 左右 • 到美西站点, 平均延迟在 160ms 左右 携程业务开发的需求, 对于 Redis 的数 据存储有着强依赖. 机票的业务需要从 上游供应商处收集舱位信息, Redis 方便 的多种数据结构类型对于储存这种数据 比较方便. 同时由于供应商是在全球分布的特性, 就更需要一个能够多点写入的 Redis 集 群, 支持海外站点和国内站点同时进行读写; 并解决因此可能出现的数据一致性问题. 全量状态 发送给接收端, 接 收端执行 merge 操作, 来达到和发送端状态 一致的结果 State-base replication 适用于不稳定的网络 系统, 通常会有多次重传 要求数据结构能够支持 交换律/结合律/幂等 性 这些特性 State-based Replication Operation-based CRDTs are referred to as commutative0 码力 | 45 页 | 1.74 MB | 1 年前3
 陈宗志:大容量redis存储方案--Pika网络模块--Pink SACC2017 存储引擎--Nemo • Nemo – Pika 的存储引擎, 基于Rocksdb 实现. 实现了Hash, List, Set, Zset 等数据结构 – Rocksdb 启动只需要加载log 文件 – Rocksdb 使用的本地硬盘, 对SSD 盘友好 – https://github.com/Qihoo360/nemo Ssdb_to_pika • 将ssdb数据迁移到pika,目前不支持增量同步 SACC2017 Pika 运维 – 案例一 消息推送服务部分redis迁移到pika • 迁移前: • SET数据结构为主 • 5套30G左右的redis主从,占用300G内存 • 迁移后: • 1套50G左右的pika主从,占用100多G磁盘 SACC2017 Pika 运维 – 案例二0 码力 | 47 页 | 2.18 MB | 1 年前3 陈宗志:大容量redis存储方案--Pika网络模块--Pink SACC2017 存储引擎--Nemo • Nemo – Pika 的存储引擎, 基于Rocksdb 实现. 实现了Hash, List, Set, Zset 等数据结构 – Rocksdb 启动只需要加载log 文件 – Rocksdb 使用的本地硬盘, 对SSD 盘友好 – https://github.com/Qihoo360/nemo Ssdb_to_pika • 将ssdb数据迁移到pika,目前不支持增量同步 SACC2017 Pika 运维 – 案例一 消息推送服务部分redis迁移到pika • 迁移前: • SET数据结构为主 • 5套30G左右的redis主从,占用300G内存 • 迁移后: • 1套50G左右的pika主从,占用100多G磁盘 SACC2017 Pika 运维 – 案例二0 码力 | 47 页 | 2.18 MB | 1 年前3
 4. ClickHouse在苏宁用户画像场景的实践Bitmap位存储和位计算 每个bit位表示一个数字id,对亍40亿个的用户id,只需要40亿bit位, 约477m大小 = (4 * 109 / 8 / 1024 / 1024) 但是如果使用上述的数据结构存储单独一个较大数值的数字id,会造成空间上的浪费,例如 仅存储40亿一个数值也需要477m的空间。也就是说稀疏的Bitmap和稠密的占用空间相 同。通常会使用一种bitmap压缩算法迚行优化。  Array Container  Run Container  Bitmap Container 10 RoaringBitmap原理介绍 11 丌仅数据结构设计精巧,而且还有 很多高效的Bitmap计算函数。 稀疏数据,劢态分配 最大存储:4096元素 最大空间:8KB 连续数据,劢态分配 最大存储:65536元素 最大空间:128KB0 码力 | 32 页 | 1.47 MB | 1 年前3 4. ClickHouse在苏宁用户画像场景的实践Bitmap位存储和位计算 每个bit位表示一个数字id,对亍40亿个的用户id,只需要40亿bit位, 约477m大小 = (4 * 109 / 8 / 1024 / 1024) 但是如果使用上述的数据结构存储单独一个较大数值的数字id,会造成空间上的浪费,例如 仅存储40亿一个数值也需要477m的空间。也就是说稀疏的Bitmap和稠密的占用空间相 同。通常会使用一种bitmap压缩算法迚行优化。  Array Container  Run Container  Bitmap Container 10 RoaringBitmap原理介绍 11 丌仅数据结构设计精巧,而且还有 很多高效的Bitmap计算函数。 稀疏数据,劢态分配 最大存储:4096元素 最大空间:8KB 连续数据,劢态分配 最大存储:65536元素 最大空间:128KB0 码力 | 32 页 | 1.47 MB | 1 年前3
共 38 条
- 1
- 2
- 3
- 4













