TeslaCN opened a new issue, #17543: URL: https://github.com/apache/shardingsphere/issues/17543
## Feature Request ### Is your feature request related to a problem? ```yaml rules: - !SHARDING bindingTables: - bmsql_warehouse, bmsql_customer defaultDatabaseStrategy: none: defaultTableStrategy: none: tables: bmsql_warehouse: actualDataNodes: ds_${0..1}.bmsql_warehouse databaseStrategy: standard: shardingColumn: w_id shardingAlgorithmName: mod bmsql_customer: actualDataNodes: ds_${0..1}.bmsql_customer databaseStrategy: standard: shardingColumn: c_w_id shardingAlgorithmName: mod shardingAlgorithms: mod: type: MOD props: sharding-count: 2 scalingName: bmsql_scaling scaling: scaling_name1: completionDetector: props: incremental-task-idle-seconds-threshold: '60' type: IDLE dataConsistencyChecker: props: chunk-size: '1000' type: DATA_MATCH ``` ```sql create table bmsql_warehouse ( w_id integer not null, w_ytd decimal(12,2), w_tax decimal(4,4), w_name varchar(10), w_street_1 varchar(20), w_street_2 varchar(20), w_city varchar(20), w_state char(2), w_zip char(9) ); create table bmsql_customer ( c_w_id integer not null, c_d_id integer not null, c_id integer not null, c_discount decimal(4,4), c_credit char(2), c_last varchar(16), c_first varchar(16), c_credit_lim decimal(12,2), c_balance decimal(12,2), c_ytd_payment decimal(12,2), c_payment_cnt integer, c_delivery_cnt integer, c_street_1 varchar(20), c_street_2 varchar(20), c_city varchar(20), c_state char(2), c_zip char(9), c_phone char(16), c_since timestamp, c_middle char(2), c_data varchar(500) ); alter table bmsql_warehouse add constraint bmsql_warehouse_pkey primary key (w_id); alter table bmsql_customer add constraint bmsql_customer_pkey primary key (c_w_id, c_d_id, c_id); create index bmsql_customer_idx1 on bmsql_customer (c_w_id, c_d_id, c_last, c_first); ``` ```sql ALTER SHARDING TABLE RULE bmsql_warehouse( RESOURCES(target_0, target_1, target_2), SHARDING_COLUMN=w_id, TYPE(NAME=MOD,PROPERTIES("sharding-count"=3)) ), bmsql_customer( RESOURCES(target_0, target_1, target_2), SHARDING_COLUMN=c_w_id, TYPE(NAME=MOD,PROPERTIES("sharding-count"=3)) ); ``` Error occurred: ``` [INFO ] 2022-05-11 11:25:01.553 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - queryTableDefinition, sql=SELECT * FROM pg_get_tabledef('public.bmsql_warehouse'::regclass::oid) [INFO ] 2022-05-11 11:25:01.556 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - getActualTableDefinitions, schemaName=public, dataNode=DataNode(dataSourceName=ds_0, tableName=bmsql_warehouse, schemaName=null), tableDefinition=SET search_path = public; CREATE TABLE bmsql_warehouse ( w_id integer NOT NULL, w_ytd numeric(12,2), w_tax numeric(4,4), w_name character varying(10), w_street_1 character varying(20), w_street_2 character varying(20), w_city character varying(20), w_state character(2), w_zip character(9) ) WITH (orientation=row, compression=no); ALTER TABLE bmsql_warehouse ADD CONSTRAINT bmsql_warehouse_pkey_bmsql_warehouse PRIMARY KEY (w_id); [INFO ] 2022-05-11 11:25:01.606 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - queryTableDefinition, sql=SELECT * FROM pg_get_tabledef('public.bmsql_customer'::regclass::oid) [INFO ] 2022-05-11 11:25:01.608 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - getActualTableDefinitions, schemaName=public, dataNode=DataNode(dataSourceName=ds_0, tableName=bmsql_customer, schemaName=null), tableDefinition=SET search_path = public; CREATE TABLE bmsql_customer ( c_w_id integer NOT NULL, c_d_id integer NOT NULL, c_id integer NOT NULL, c_discount numeric(4,4), c_credit character(2), c_last character varying(16), c_first character varying(16), c_credit_lim numeric(12,2), c_balance numeric(12,2), c_ytd_payment numeric(12,2), c_payment_cnt integer, c_delivery_cnt integer, c_street_1 character varying(20), c_street_2 character varying(20), c_city character varying(20), c_state character(2), c_zip character(9), c_phone character(16), c_since timestamp without time zone, c_middle character(2), c_data character varying(500) ) WITH (orientation=row, compression=no); CREATE INDEX bmsql_customer_idx1_bmsql_customer ON bmsql_customer USING btree (c_w_id, c_d_id, c_last, c_first) TABLESPACE pg_default; ALTER TABLE bmsql_customer ADD CONSTRAINT bmsql_customer_pkey_bmsql_customer PRIMARY KEY (c_w_id, c_d_id, c_id); [INFO ] 2022-05-11 11:25:01.616 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.p.d.AbstractDataSourcePreparer - execute target table sql: CREATE TABLE IF NOT EXISTS public.bmsql_warehouse ( w_id integer NOT NULL, w_ytd numeric(12,2), w_tax numeric(4,4), w_name character varying(10), w_street_1 character varying(20), w_street_2 character varying(20), w_city character varying(20), w_state character(2), w_zip character(9) ) [INFO ] 2022-05-11 11:25:01.967 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.p.d.AbstractDataSourcePreparer - execute target table sql: ALTER TABLE public.bmsql_warehouse ADD CONSTRAINT bmsql_warehouse_pkey_bmsql_warehouse PRIMARY KEY (w_id) [INFO ] 2022-05-11 11:25:02.027 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - create target table 'bmsql_warehouse' success [INFO ] 2022-05-11 11:25:02.028 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.p.d.AbstractDataSourcePreparer - execute target table sql: CREATE TABLE IF NOT EXISTS public.bmsql_customer ( c_w_id integer NOT NULL, c_d_id integer NOT NULL, c_id integer NOT NULL, c_discount numeric(4,4), c_credit character(2), c_last character varying(16), c_first character varying(16), c_credit_lim numeric(12,2), c_balance numeric(12,2), c_ytd_payment numeric(12,2), c_payment_cnt integer, c_delivery_cnt integer, c_street_1 character varying(20), c_street_2 character varying(20), c_city character varying(20), c_state character(2), c_zip character(9), c_phone character(16), c_since timestamp without time zone, c_middle character(2), c_data character varying(500) ) [INFO ] 2022-05-11 11:25:02.079 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.p.d.AbstractDataSourcePreparer - execute target table sql: ALTER TABLE public.bmsql_customer ADD CONSTRAINT bmsql_customer_pkey_bmsql_customer PRIMARY KEY (c_w_id, c_d_id, c_id) [INFO ] 2022-05-11 11:25:02.121 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.o.p.d.OpenGaussDataSourcePreparer - create target table 'bmsql_customer' success [INFO ] 2022-05-11 11:25:02.123 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.c.d.AbstractDataSourceChecker - checkEmpty, sql=SELECT * FROM public.bmsql_warehouse LIMIT 1 [INFO ] 2022-05-11 11:25:02.175 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.c.d.AbstractDataSourceChecker - checkEmpty, sql=SELECT * FROM public.bmsql_customer LIMIT 1 [INFO ] 2022-05-11 11:25:02.293 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.m.l.PipelineTableMetaDataLoader - loadTableMetaData, schemaNameFinal=public, tableNamePattern=bmsql_warehouse, result={bmsql_warehouse=PipelineTableMetaData(name=bmsql_warehouse, columnMetaDataMap={w_id=PipelineColumnMetaData(ordinalPosition=1, name=w_id, dataType=4, dataTypeName=int4, primaryKey=true), w_ytd=PipelineColumnMetaData(ordinalPosition=2, name=w_ytd, dataType=2, dataTypeName=numeric, primaryKey=false), w_tax=PipelineColumnMetaData(ordinalPosition=3, name=w_tax, dataType=2, dataTypeName=numeric, primaryKey=false), w_name=PipelineColumnMetaData(ordinalPosition=4, name=w_name, dataType=12, dataTypeName=varchar, primaryKey=false), w_street_1=PipelineColumnMetaData(ordinalPosition=5, name=w_street_1, dataType=12, dataTypeName=varchar, primaryKey=false), w_street_2=PipelineColumnMetaData(ordinalPosition=6, name=w_street_2, dataType=12, dataTypeName=varchar, primaryKe y=false), w_city=PipelineColumnMetaData(ordinalPosition=7, name=w_city, dataType=12, dataTypeName=varchar, primaryKey=false), w_state=PipelineColumnMetaData(ordinalPosition=8, name=w_state, dataType=1, dataTypeName=bpchar, primaryKey=false), w_zip=PipelineColumnMetaData(ordinalPosition=9, name=w_zip, dataType=1, dataTypeName=bpchar, primaryKey=false)}, columnNames=[w_id, w_ytd, w_tax, w_name, w_street_1, w_street_2, w_city, w_state, w_zip], primaryKeyColumns=[w_id])}, cost time=56 ms [INFO ] 2022-05-11 11:25:02.299 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.p.InventoryTaskSplitter - getPositionByPrimaryKeyRange, endId is 0, break, tableName=bmsql_warehouse, primaryKey=w_id, beginId=7 [INFO ] 2022-05-11 11:25:02.401 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.m.l.PipelineTableMetaDataLoader - loadTableMetaData, schemaNameFinal=public, tableNamePattern=bmsql_customer, result={bmsql_customer=PipelineTableMetaData(name=bmsql_customer, columnMetaDataMap={c_w_id=PipelineColumnMetaData(ordinalPosition=1, name=c_w_id, dataType=4, dataTypeName=int4, primaryKey=true), c_d_id=PipelineColumnMetaData(ordinalPosition=2, name=c_d_id, dataType=4, dataTypeName=int4, primaryKey=true), c_id=PipelineColumnMetaData(ordinalPosition=3, name=c_id, dataType=4, dataTypeName=int4, primaryKey=true), c_discount=PipelineColumnMetaData(ordinalPosition=4, name=c_discount, dataType=2, dataTypeName=numeric, primaryKey=false), c_credit=PipelineColumnMetaData(ordinalPosition=5, name=c_credit, dataType=1, dataTypeName=bpchar, primaryKey=false), c_last=PipelineColumnMetaData(ordinalPosition=6, name=c_last, dataType=12, dataTypeName=varchar, primaryKey=false), c_fi rst=PipelineColumnMetaData(ordinalPosition=7, name=c_first, dataType=12, dataTypeName=varchar, primaryKey=false), c_credit_lim=PipelineColumnMetaData(ordinalPosition=8, name=c_credit_lim, dataType=2, dataTypeName=numeric, primaryKey=false), c_balance=PipelineColumnMetaData(ordinalPosition=9, name=c_balance, dataType=2, dataTypeName=numeric, primaryKey=false), c_ytd_payment=PipelineColumnMetaData(ordinalPosition=10, name=c_ytd_payment, dataType=2, dataTypeName=numeric, primaryKey=false), c_payment_cnt=PipelineColumnMetaData(ordinalPosition=11, name=c_payment_cnt, dataType=4, dataTypeName=int4, primaryKey=false), c_delivery_cnt=PipelineColumnMetaData(ordinalPosition=12, name=c_delivery_cnt, dataType=4, dataTypeName=int4, primaryKey=false), c_street_1=PipelineColumnMetaData(ordinalPosition=13, name=c_street_1, dataType=12, dataTypeName=varchar, primaryKey=false), c_street_2=PipelineColumnMetaData(ordinalPosition=14, name=c_street_2, dataType=12, dataTypeName=varchar, primaryKey=false), c_city=PipelineColumnMetaData(ordinalPosition=15, name=c_city, dataType=12, dataTypeName=varchar, primaryKey=false), c_state=PipelineColumnMetaData(ordinalPosition=16, name=c_state, dataType=1, dataTypeName=bpchar, primaryKey=false), c_zip=PipelineColumnMetaData(ordinalPosition=17, name=c_zip, dataType=1, dataTypeName=bpchar, primaryKey=false), c_phone=PipelineColumnMetaData(ordinalPosition=18, name=c_phone, dataType=1, dataTypeName=bpchar, primaryKey=false), c_since=PipelineColumnMetaData(ordinalPosition=19, name=c_since, dataType=93, dataTypeName=timestamp, primaryKey=false), c_middle=PipelineColumnMetaData(ordinalPosition=20, name=c_middle, dataType=1, dataTypeName=bpchar, primaryKey=false), c_data=PipelineColumnMetaData(ordinalPosition=21, name=c_data, dataType=12, dataTypeName=varchar, primaryKey=false)}, columnNames=[c_w_id, c_d_id, c_id, c_discount, c_credit, c_last, c_first, c_credit_lim, c_balance, c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_street_1, c_street_2, c_cit y, c_state, c_zip, c_phone, c_since, c_middle, c_data], primaryKeyColumns=[c_w_id, c_d_id, c_id])}, cost time=101 ms [ERROR] 2022-05-11 11:25:02.402 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJob - job prepare failed, 0130317c30317c3054317c626d73716c5f7368617264696e67-0 org.apache.shardingsphere.data.pipeline.core.exception.PipelineJobCreationException: Can not split range for table bmsql_customer, reason: primary key is union primary at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.checkPrimaryKey(InventoryTaskSplitter.java:177) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.getInventoryPositions(InventoryTaskSplitter.java:154) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitByPrimaryKey(InventoryTaskSplitter.java:118) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitDumperConfig(InventoryTaskSplitter.java:90) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitInventoryData(InventoryTaskSplitter.java:79) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.initInventoryTasks(RuleAlteredJobPreparer.java:160) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.prepare(RuleAlteredJobPreparer.java:85) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJob.execute(RuleAlteredJob.java:51) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:33) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:29) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.process(ElasticJobExecutor.java:172) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.lambda$process$0(ElasticJobExecutor.java:153) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) [INFO ] 2022-05-11 11:25:02.403 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJobSchedulerCenter - remove and stop 0130317c30317c3054317c626d73716c5f7368617264696e67 [INFO ] 2022-05-11 11:25:02.403 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJobSchedulerCenter - schedulerMap is null, ignore [INFO ] 2022-05-11 11:25:02.424 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJobWorker - restoreSourceWriting, databaseName=bmsql_sharding [INFO ] 2022-05-11 11:25:02.424 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJobWorker - Source writing is still stopped on database 'bmsql_sharding', restore it now [ERROR] 2022-05-11 11:25:02.425 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.s.r.RuleAlteredJobWorker - restore source writing failed, databaseName=bmsql_sharding org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryException: java.lang.IllegalStateException: Not acquired at org.apache.shardingsphere.mode.repository.cluster.zookeeper.handler.CuratorZookeeperExceptionHandler.handleException(CuratorZookeeperExceptionHandler.java:53) at org.apache.shardingsphere.mode.repository.cluster.zookeeper.lock.ZookeeperInternalLockHolder$ZookeeperInternalLock.unlock(ZookeeperInternalLockHolder.java:117) at org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.global.GlobalLockRegistryService.releaseLock(GlobalLockRegistryService.java:46) at org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.global.ShardingSphereDistributeGlobalLock.releaseLock(ShardingSphereDistributeGlobalLock.java:139) at org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.global.general.ShardingSphereGeneralLock.releaseLock(ShardingSphereGeneralLock.java:75) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobWorker.restoreSourceWriting(RuleAlteredJobWorker.java:328) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobWorker.scalingReleaseDatabaseLevelLock(RuleAlteredJobWorker.java:313) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:144) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:67) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:108) at com.google.common.eventbus.EventBus.post(EventBus.java:212) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJob.execute(RuleAlteredJob.java:60) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:33) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:29) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.process(ElasticJobExecutor.java:172) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.lambda$process$0(ElasticJobExecutor.java:153) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.IllegalStateException: Not acquired at org.apache.curator.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:507) at org.apache.curator.framework.recipes.locks.InterProcessSemaphoreMutex.release(InterProcessSemaphoreMutex.java:75) at org.apache.shardingsphere.mode.repository.cluster.zookeeper.lock.ZookeeperInternalLockHolder$ZookeeperInternalLock.unlock(ZookeeperInternalLockHolder.java:113) ... 28 common frames omitted [INFO ] 2022-05-11 11:25:02.425 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.d.p.c.lock.PipelineSimpleLock - releaseLock, lockName=bmsql_sharding [ERROR] 2022-05-11 11:25:02.428 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-1] o.a.s.e.e.h.g.LogJobErrorHandler - Job '0130317c30317c3054317c626d73716c5f7368617264696e67' exception occur in job processing org.apache.shardingsphere.data.pipeline.core.exception.PipelineJobCreationException: Can not split range for table bmsql_customer, reason: primary key is union primary at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.checkPrimaryKey(InventoryTaskSplitter.java:177) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.getInventoryPositions(InventoryTaskSplitter.java:154) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitByPrimaryKey(InventoryTaskSplitter.java:118) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitDumperConfig(InventoryTaskSplitter.java:90) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitInventoryData(InventoryTaskSplitter.java:79) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.initInventoryTasks(RuleAlteredJobPreparer.java:160) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.prepare(RuleAlteredJobPreparer.java:85) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJob.execute(RuleAlteredJob.java:51) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:33) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:29) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.process(ElasticJobExecutor.java:172) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.lambda$process$0(ElasticJobExecutor.java:153) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) [INFO ] 2022-05-11 11:25:05.949 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.RuleAlteredJobPreparer - unlocked, lockName=prepare-0130317c30317c3054317c626d73716c5f7368617264696e67 [INFO ] 2022-05-11 11:25:06.015 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.c.m.l.PipelineTableMetaDataLoader - loadTableMetaData, schemaNameFinal=public, tableNamePattern=bmsql_warehouse, result={bmsql_warehouse=PipelineTableMetaData(name=bmsql_warehouse, columnMetaDataMap={w_id=PipelineColumnMetaData(ordinalPosition=1, name=w_id, dataType=4, dataTypeName=int4, primaryKey=true), w_ytd=PipelineColumnMetaData(ordinalPosition=2, name=w_ytd, dataType=2, dataTypeName=numeric, primaryKey=false), w_tax=PipelineColumnMetaData(ordinalPosition=3, name=w_tax, dataType=2, dataTypeName=numeric, primaryKey=false), w_name=PipelineColumnMetaData(ordinalPosition=4, name=w_name, dataType=12, dataTypeName=varchar, primaryKey=false), w_street_1=PipelineColumnMetaData(ordinalPosition=5, name=w_street_1, dataType=12, dataTypeName=varchar, primaryKey=false), w_street_2=PipelineColumnMetaData(ordinalPosition=6, name=w_street_2, dataType=12, dataTypeName=varchar, primaryKe y=false), w_city=PipelineColumnMetaData(ordinalPosition=7, name=w_city, dataType=12, dataTypeName=varchar, primaryKey=false), w_state=PipelineColumnMetaData(ordinalPosition=8, name=w_state, dataType=1, dataTypeName=bpchar, primaryKey=false), w_zip=PipelineColumnMetaData(ordinalPosition=9, name=w_zip, dataType=1, dataTypeName=bpchar, primaryKey=false)}, columnNames=[w_id, w_ytd, w_tax, w_name, w_street_1, w_street_2, w_city, w_state, w_zip], primaryKeyColumns=[w_id])}, cost time=46 ms [INFO ] 2022-05-11 11:25:06.018 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.p.InventoryTaskSplitter - getPositionByPrimaryKeyRange, endId is 0, break, tableName=bmsql_warehouse, primaryKey=w_id, beginId=6 [INFO ] 2022-05-11 11:25:06.097 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.c.m.l.PipelineTableMetaDataLoader - loadTableMetaData, schemaNameFinal=public, tableNamePattern=bmsql_customer, result={bmsql_customer=PipelineTableMetaData(name=bmsql_customer, columnMetaDataMap={c_w_id=PipelineColumnMetaData(ordinalPosition=1, name=c_w_id, dataType=4, dataTypeName=int4, primaryKey=true), c_d_id=PipelineColumnMetaData(ordinalPosition=2, name=c_d_id, dataType=4, dataTypeName=int4, primaryKey=true), c_id=PipelineColumnMetaData(ordinalPosition=3, name=c_id, dataType=4, dataTypeName=int4, primaryKey=true), c_discount=PipelineColumnMetaData(ordinalPosition=4, name=c_discount, dataType=2, dataTypeName=numeric, primaryKey=false), c_credit=PipelineColumnMetaData(ordinalPosition=5, name=c_credit, dataType=1, dataTypeName=bpchar, primaryKey=false), c_last=PipelineColumnMetaData(ordinalPosition=6, name=c_last, dataType=12, dataTypeName=varchar, primaryKey=false), c_fi rst=PipelineColumnMetaData(ordinalPosition=7, name=c_first, dataType=12, dataTypeName=varchar, primaryKey=false), c_credit_lim=PipelineColumnMetaData(ordinalPosition=8, name=c_credit_lim, dataType=2, dataTypeName=numeric, primaryKey=false), c_balance=PipelineColumnMetaData(ordinalPosition=9, name=c_balance, dataType=2, dataTypeName=numeric, primaryKey=false), c_ytd_payment=PipelineColumnMetaData(ordinalPosition=10, name=c_ytd_payment, dataType=2, dataTypeName=numeric, primaryKey=false), c_payment_cnt=PipelineColumnMetaData(ordinalPosition=11, name=c_payment_cnt, dataType=4, dataTypeName=int4, primaryKey=false), c_delivery_cnt=PipelineColumnMetaData(ordinalPosition=12, name=c_delivery_cnt, dataType=4, dataTypeName=int4, primaryKey=false), c_street_1=PipelineColumnMetaData(ordinalPosition=13, name=c_street_1, dataType=12, dataTypeName=varchar, primaryKey=false), c_street_2=PipelineColumnMetaData(ordinalPosition=14, name=c_street_2, dataType=12, dataTypeName=varchar, primaryKey=false), c_city=PipelineColumnMetaData(ordinalPosition=15, name=c_city, dataType=12, dataTypeName=varchar, primaryKey=false), c_state=PipelineColumnMetaData(ordinalPosition=16, name=c_state, dataType=1, dataTypeName=bpchar, primaryKey=false), c_zip=PipelineColumnMetaData(ordinalPosition=17, name=c_zip, dataType=1, dataTypeName=bpchar, primaryKey=false), c_phone=PipelineColumnMetaData(ordinalPosition=18, name=c_phone, dataType=1, dataTypeName=bpchar, primaryKey=false), c_since=PipelineColumnMetaData(ordinalPosition=19, name=c_since, dataType=93, dataTypeName=timestamp, primaryKey=false), c_middle=PipelineColumnMetaData(ordinalPosition=20, name=c_middle, dataType=1, dataTypeName=bpchar, primaryKey=false), c_data=PipelineColumnMetaData(ordinalPosition=21, name=c_data, dataType=12, dataTypeName=varchar, primaryKey=false)}, columnNames=[c_w_id, c_d_id, c_id, c_discount, c_credit, c_last, c_first, c_credit_lim, c_balance, c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_street_1, c_street_2, c_cit y, c_state, c_zip, c_phone, c_since, c_middle, c_data], primaryKeyColumns=[c_w_id, c_d_id, c_id])}, cost time=79 ms [ERROR] 2022-05-11 11:25:06.097 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.RuleAlteredJob - job prepare failed, 0130317c30317c3054317c626d73716c5f7368617264696e67-1 org.apache.shardingsphere.data.pipeline.core.exception.PipelineJobCreationException: Can not split range for table bmsql_customer, reason: primary key is union primary at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.checkPrimaryKey(InventoryTaskSplitter.java:177) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.getInventoryPositions(InventoryTaskSplitter.java:154) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitByPrimaryKey(InventoryTaskSplitter.java:118) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitDumperConfig(InventoryTaskSplitter.java:90) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitInventoryData(InventoryTaskSplitter.java:79) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.initInventoryTasks(RuleAlteredJobPreparer.java:160) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.prepare(RuleAlteredJobPreparer.java:85) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJob.execute(RuleAlteredJob.java:51) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:33) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:29) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.process(ElasticJobExecutor.java:172) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.lambda$process$0(ElasticJobExecutor.java:153) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) [INFO ] 2022-05-11 11:25:06.097 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.RuleAlteredJobSchedulerCenter - remove and stop 0130317c30317c3054317c626d73716c5f7368617264696e67 [INFO ] 2022-05-11 11:25:06.097 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.RuleAlteredJobSchedulerCenter - schedulerMap is null, ignore [INFO ] 2022-05-11 11:25:06.102 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.s.r.RuleAlteredJobWorker - restoreSourceWriting, databaseName=bmsql_sharding [INFO ] 2022-05-11 11:25:06.102 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.d.p.c.lock.PipelineSimpleLock - releaseLock, lockName=bmsql_sharding [ERROR] 2022-05-11 11:25:06.103 [elasticjob-0130317c30317c3054317c626d73716c5f7368617264696e67-2] o.a.s.e.e.h.g.LogJobErrorHandler - Job '0130317c30317c3054317c626d73716c5f7368617264696e67' exception occur in job processing org.apache.shardingsphere.data.pipeline.core.exception.PipelineJobCreationException: Can not split range for table bmsql_customer, reason: primary key is union primary at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.checkPrimaryKey(InventoryTaskSplitter.java:177) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.getInventoryPositions(InventoryTaskSplitter.java:154) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitByPrimaryKey(InventoryTaskSplitter.java:118) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitDumperConfig(InventoryTaskSplitter.java:90) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.prepare.InventoryTaskSplitter.splitInventoryData(InventoryTaskSplitter.java:79) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.initInventoryTasks(RuleAlteredJobPreparer.java:160) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJobPreparer.prepare(RuleAlteredJobPreparer.java:85) at org.apache.shardingsphere.data.pipeline.scenario.rulealtered.RuleAlteredJob.execute(RuleAlteredJob.java:51) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:33) at org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor.process(SimpleJobExecutor.java:29) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.process(ElasticJobExecutor.java:172) at org.apache.shardingsphere.elasticjob.executor.ElasticJobExecutor.lambda$process$0(ElasticJobExecutor.java:153) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) ``` ### Describe the feature you would like. Not urgent. Consider supporting table with union primary key. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@shardingsphere.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org