当前的规则:
分片算法,(仅仅是为了验证props的使用)
package com.standard;
import org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue;
import org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue;
import org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm;
import java.util.Collection;
import java.util.Properties;
/**
* @author liuweijia
* @email: weijialiu@hiretual.com
*/
public class TestSharding implements StandardShardingAlgorithm<String> {
private static final String PREFIX = "database_";
private Properties props = new Properties();
@Override
public String doSharding(Collection<String> collection, PreciseShardingValue<String> preciseShardingValue) {
System.out.println("========single sharding[Start]========");
System.out.println(props.toString());
if (preciseShardingValue != null) {
System.out.println("preciseShardingValue = " + preciseShardingValue.getValue());
String value = preciseShardingValue.getValue();
System.out.println("Will return \"team_" + value + "\"");
return PREFIX + "team_" + value;
} else {
System.out.println("preciseShardingValue is Null.");
System.out.println("Will Return \"team_default\"");
return PREFIX + "team_default";
}
}
@Override
public Collection<String> doSharding(Collection<String> collection, RangeShardingValue<String> rangeShardingValue) {
return null;
}
@Override
public void init() {
}
@Override
public String getType() {
return null;
}
}
执行的DistSQL:
mysql> ALTER SHARDING ALGORITHM database-sharding-method(TYPE(PROPERTIES("team_a"="team_a","team_b"="team_b","team_c"="team_c")));
ERROR 1235 (42000): This version of ShardingSphere-Proxy doesn't yet support this SQL. 'You have an error in your SQL syntax'