DistSQL如何实现只分库不分表

DistSQL的简化写法

使用环境:

ShardingSphere-Proxy 5.1.2

场景、问题:

多租户分库不分表,ShardingSphere-Proxy配置如下:
【使用集群模式,在zookeeper中直接配置下面节点信息】
ShardingSphere-Proxy可以根据不同的tenant_code路由到不同的数据库

rules规则配置如下:

- !SHARDING
  tables:
    order_test:
      actualDataNodes: 
    user_test:
      actualDataNodes: 
  defaultDatabaseStrategy:
    standard:
      shardingColumn: tenant_code
      shardingAlgorithmName: database_inline
  shardingAlgorithms:
    database_inline:
      type: INLINE
      props:
        algorithm-expression: ds_${tenant_code}

dataSources数据源配置文件如下:

ds_abc:
  password: '123456'
  dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  url: jdbc:mysql://192.168.0.1:3306/ds_abc?serverTimezone=Asia/Shanghai
  username: root
ds_bcd:
  password: '123456'
  dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  url: jdbc:mysql://192.168.0.1:3306/ds_bcd?serverTimezone=Asia/Shanghai
  username: root

【问题】使用DistSQL如何简化配置?

已进行操作:

使用DistSQL进行配置:

create database ds;
use ds;

ADD RESOURCE ds_abc (
    HOST=192.168.0.1,
    PORT=3306,
    DB=ds_abc,
    USER=root,
    PASSWORD=123456
);

ADD RESOURCE ds_bcd (
    HOST=192.168.0.1,
    PORT=3306,
    DB=ds_bcd,
    USER=root,
    PASSWORD=123456
);

CREATE SHARDING ALGORITHM database_inline (
	TYPE(NAME=inline,PROPERTIES("algorithm-expression"="ds_${tenant_code}"))
);

CREATE DEFAULT SHARDING DATABASE STRATEGY (
	TYPE = standard,SHARDING_COLUMN=tenant_code,SHARDING_ALGORITHM=database_inline
);

CREATE SHARDING TABLE RULE order_test (
	datanodes("ds_${['abc','bcd']}.order_test")
)

CREATE SHARDING TABLE RULE user_test (
	datanodes("ds_${['abc','bcd']}.user_test")
)


【问题】如果需要动态配置大量的数据源和数据库表,DistSQL中的枚举方式怎么进行简化(下面的sql如何简化)?

CREATE SHARDING TABLE RULE user_test (
	datanodes("ds_${['abc','bcd']}.user_test")
)

现状:

没有找到合适的优化写法

京ICP备2021015875号