配置项说明 命名空间:http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding-5.0.0.xsd <sharding:rule /> 名称 类型 说明 id 属性 Spring Bean Id table-rules (?) 标签 分片表规则配置 auto-table-rules (?) 标签 自动化分片表规
配置项说明 spring.shardingsphere.datasource.names= # 省略数据源配置,请参考使用手册 spring.shardingsphere.rules.encrypt.tables.<table-name>.columns.<column-name>.cipher-column= # 加密列名称 spring.shardingsphere.rules.encryp
配置项说明 spring.shardingsphere.datasource.names= # 省略数据源配置,请参考使用手册 # 标准分片表配置 spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes= # 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用
配置项说明 dataSources: # 省略数据源配置,请参考使用手册 rules: - !ENCRYPT tables: <table-name> (+): # 加密表名称 columns: <column-name> (+): # 加密列名称 cipherColumn: # 密文列名称 assistedQuer
配置项说明 dataSources: # 省略数据源配置,请参考使用手册 rules: - !SHARDING tables: # 数据分片规则配置 <logic-table-name> (+): # 逻辑表名称 actualDataNodes (?): # 由数据源名 + 表名组成(参考Inline语法规则) databaseStrategy (?): #
配置入口 类名称:org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration 可配置属性: 名称 数据类型 说明 默认值 tables (+) Collection<EncryptTableRuleConfiguration> 加密表规则配置 encryptors (+) Map<String, ShardingSph
配置入口 类名称:org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration 可配置属性: 名称 数据类型 说明 默认值 tables (+) Collection<ShardingTableRuleConfiguration> 分片表规则列表 - autoTables (+) Collection<Shardin
数据分片是 Apache ShardingSphere 的基础能力,本节以数据分片的使用举例。 除数据分片之外,读写分离、数据加密、影子库压测等功能的使用方法完全一致,只要配置相应的规则即可。多规则可以叠加配置。 详情请参见配置手册。
使用实战 前置工作 启动MySQL服务 创建MySQL数据库(参考ShardingProxy数据源配置规则) 为ShardingProxy创建一个拥有创建权限的角色或者用户 启动Zookeeper服务 (为了持久化配置) 启动ShardingProxy 添加 mode 和 authentication 配置参数到 server.yaml (请参考相关example案例) 启动 ShardingPr
定义 SHOW ENCRYPT RULES [FROM schemaName] SHOW ENCRYPT TABLE RULE tableName [from schemaName] 支持查询所有的数据加密规则和指定逻辑表名查询 说明 列 说明 table 逻辑表名 logicColumn 逻辑列名 cipherColumn 密文列名 plainColumn 明文列名 encryptorTyp
定义 Sharding Table Rule SHOW SHARDING TABLE tableRule | RULES [FROM schemaName] SHOW SHARDING ALGORITHMS [FROM schemaName] tableRule: RULE tableName 支持查询所有数据分片规则和指定表查询 支持查询所有分片算法 Sharding Bindin
定义 CREATE ENCRYPT RULE encryptRuleDefinition [, encryptRuleDefinition] ... ALTER ENCRYPT RULE encryptRuleDefinition [, encryptRuleDefinition] ... DROP ENCRYPT RULE tableName [, tableName] ... encry
定义 Sharding Table Rule CREATE SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition] ... ALTER SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition]
背景 安全控制一直是治理的重要环节,数据加密属于安全控制的范畴。无论对互联网公司还是传统行业来说,数据安全一直是极为重视和敏感的话题。 数据加密是指对某些敏感信息通过加密规则进行数据的变形,实现敏感隐私数据的可靠保护。 涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据加密。 对于数据加密的需求,在现实的业务场景中一般分为两种情况:
背景 传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中式数据库成为系统的最大瓶颈。 从可用性的方面来讲,服务化的无状态型,能够达到较小成本的随