Hi, Eric
For your question, you can config the yaml like this:
shardingRule:
tables:
employee:
actualDataNodes: database${0..1}.employee
databaseStrategy:
inline:
shardingColumn: emp_id
algorithmExpression: database${emp_id % 2}
keyGenerator:
type: SNOWFLAKE
column: emp_id
computers:
actualDataNodes: database${0..1}.computers
databaseStrategy:
inline:
shardingColumn: serial_no
algorithmExpression: database${serial_no % 2}
keyGenerator:
type: SNOWFLAKE
column: serial_no
defaultDatabaseStrategy:
none:
defaultTableStrategy:
none:
------------------
Zhao Jun
Apache Sharding-Sphere & ServiceComb
> On May 26, 2019, at 11:40 PM, Eric <[email protected]> wrote:
>
> Hi John,
>
> Thank you very much for your help.
>
> Would you have more details about the rules behind org.apache.shardingsphere
> .example.algorithm.PreciseModuloShardingTableAlgorithmand and org.apache.
> shardingsphere.example.algorithm.RangeModuloShardingTableAlgorithm?
>
> Regards,
> Eric Poon
>
> On Sun, May 26, 2019 at 9:49 PM [email protected] <[email protected]>
> wrote:
>
>> There are tow different sharding strategies for databases and tables which
>> you can config.
>> FIY:
>>
>> https://github.com/apache/incubator-shardingsphere-example/blob/dev/sharding-jdbc-example/sharding-example/sharding-raw-jdbc-example/src/main/resources/META-INF/sharding-databases-tables-range.yaml
>> for
>> Sharding-JDBC, but Sharding-Proxy is similar.
>>
>> We will add using sharding with databases and tables together's document
>> later.
>>
>> ------------------
>>
>> Liang Zhang (John)
>> Apache ShardingSphere & Dubbo
>>
>>
>> Eric <[email protected]> 于2019年5月25日周六 上午5:58写道:
>>
>>> Hi,
>>>
>>> I read the documents that the sharding-proxy example uses user_id in the
>>> defaultDatabaseStrategy to decide which database the query routed to. If
>> I
>>> want to separate the data horizontally for all tables which each table
>> may
>>> have their own keys, how to configure the yaml file?
>>>
>>> For example I have database 0 and database 1 with all the tables
>> identical.
>>> I want the data separated in half bases on the tables' primary keys like
>>> the one below. How to write the sharding rules in the yaml file?
>>>
>>> database0.employee
>>> Primary Key: emp_id
>>> Sharding Rule: emp_id % 2 = 0
>>>
>>> database0.computers
>>> Primary Key: serial_no
>>> Sharding Rule: serial_no % 2 = 0
>>>
>>> database1.employee
>>> Primary Key: emp_id
>>> Sharding Rule: emp_id % 2 = 1
>>>
>>> database1.computers
>>> Primary key: serial_no
>>> Sharding Rule: serial_no % 2 =1
>>>
>>> Regards,
>>> Eric
>>>
>>