This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 3dca1f64c20 Add DatabaseTypedSPI (#26892)
3dca1f64c20 is described below

commit 3dca1f64c20f8704c18b9bdb6dbdd01185bf59f4
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jul 11 07:06:26 2023 +0800

    Add DatabaseTypedSPI (#26892)
---
 .../loader/datatype/DialectDataTypeLoader.java     |  4 ++--
 .../datatype/dialect/MySQLDataTypeLoader.java      |  2 +-
 .../datatype/dialect/OracleDataTypeLoader.java     |  2 +-
 .../DatabaseTypedSPI.java}                         | 25 +++++++++++----------
 .../infra/spi/DatabaseTypedSPILoader.java          |  9 ++++----
 .../infra/spi/DatabaseTypedSPILoaderTest.java      | 16 ++++++-------
 .../infra/spi/fixture/DatabaseTypedSPIFixture.java |  4 ++--
 .../fixture/impl/FooDatabaseTypedSPIFixture.java   |  2 +-
 .../spi/check/datasource/DataSourceChecker.java    |  4 ++--
 .../datasource/JdbcQueryPropertiesExtension.java   |  4 ++--
 .../spi/ddlgenerator/CreateTableSQLGenerator.java  |  4 ++--
 .../spi/ingest/dumper/ColumnValueReader.java       |  4 ++--
 .../ingest/dumper/IncrementalDumperCreator.java    |  4 ++--
 .../spi/ingest/position/PositionInitializer.java   |  4 ++--
 .../spi/sqlbuilder/PipelineSQLBuilder.java         |  7 ++----
 .../datasource/H2JdbcQueryPropertiesExtension.java |  2 +-
 .../sqlbuilder/AbstractPipelineSQLBuilder.java     |  4 +---
 .../preparer/datasource/DataSourcePreparer.java    |  4 ++--
 .../checker/AbstractDataSourceChecker.java         |  7 ------
 .../datasource/checker/BasicDataSourceChecker.java |  2 +-
 .../position/FixturePositionInitializer.java       |  2 +-
 .../sqlbuilder/FixturePipelineSQLBuilder.java      |  2 +-
 .../common/sqlbuilder/H2PipelineSQLBuilder.java    |  2 +-
 .../datasource/AbstractDataSourceCheckerTest.java  |  8 +++----
 .../datasource/AbstractDataSourcePreparerTest.java |  5 +++++
 .../pipeline/h2/H2IncrementalDumperCreator.java    |  2 +-
 .../mysql/MySQLIncrementalDumperCreator.java       |  2 +-
 .../check/datasource/MySQLDataSourceChecker.java   |  2 +-
 .../MySQLJdbcQueryPropertiesExtension.java         |  2 +-
 .../ddlgenerator/MySQLCreateTableSQLGenerator.java |  2 +-
 .../mysql/ingest/MySQLColumnValueReader.java       |  2 +-
 .../mysql/ingest/MySQLPositionInitializer.java     |  2 +-
 .../datasource/MySQLDataSourcePreparer.java        |  2 +-
 .../mysql/sqlbuilder/MySQLPipelineSQLBuilder.java  |  2 +-
 .../MySQLJdbcQueryPropertiesExtensionTest.java     | 26 ++++++++++++----------
 .../OpenGaussIncrementalDumperCreator.java         |  2 +-
 .../datasource/OpenGaussDataSourceChecker.java     |  2 +-
 .../OpenGaussJdbcQueryPropertiesExtension.java     |  2 +-
 .../OpenGaussCreateTableSQLGenerator.java          |  2 +-
 .../ingest/OpenGaussPositionInitializer.java       |  2 +-
 .../ingest/wal/OpenGaussColumnValueReader.java     |  2 +-
 .../datasource/OpenGaussDataSourcePreparer.java    |  2 +-
 .../sqlbuilder/OpenGaussPipelineSQLBuilder.java    |  2 +-
 .../OpenGaussJdbcQueryPropertiesExtensionTest.java | 10 +++++----
 .../PostgreSQLIncrementalDumperCreator.java        |  2 +-
 .../datasource/PostgreSQLDataSourceChecker.java    |  2 +-
 .../PostgreSQLJdbcQueryPropertiesExtension.java    |  2 +-
 .../PostgreSQLCreateTableSQLGenerator.java         |  2 +-
 .../ingest/PostgreSQLColumnValueReader.java        |  2 +-
 .../ingest/PostgreSQLPositionInitializer.java      |  2 +-
 .../datasource/PostgreSQLDataSourcePreparer.java   |  2 +-
 .../sqlbuilder/PostgreSQLPipelineSQLBuilder.java   |  2 +-
 ...PostgreSQLJdbcQueryPropertiesExtensionTest.java |  8 ++++---
 .../executor/GlobalClockTransactionExecutor.java   |  4 ++--
 .../OpenGaussGlobalClockTransactionExecutor.java   |  2 +-
 .../createtable/CreateTableSQLGeneratorIT.java     |  6 ++---
 test/it/pipeline/pom.xml                           |  5 +++++
 .../core/fixture/FixtureColumnValueReader.java     |  2 +-
 .../core/fixture/FixtureDataSourceChecker.java     |  2 +-
 .../fixture/FixtureIncrementalDumperCreator.java   |  2 +-
 .../core/fixture/H2CreateTableSQLGenerator.java    |  5 ++---
 .../core/fixture/H2DataSourcePreparer.java         |  2 +-
 .../core/fixture/H2PipelineSQLBuilder.java         |  2 +-
 .../core/fixture/H2PositionInitializer.java        |  2 +-
 64 files changed, 132 insertions(+), 129 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
index 8cee6a38786..33ea47d065a 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
@@ -17,8 +17,8 @@
 
 package 
org.apache.shardingsphere.infra.metadata.database.schema.loader.datatype;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.sql.SQLException;
 import java.util.Map;
@@ -27,7 +27,7 @@ import java.util.Map;
  * Dialect data type loader.
  */
 @SingletonSPI
-public interface DialectDataTypeLoader extends TypedSPI {
+public interface DialectDataTypeLoader extends DatabaseTypedSPI {
     
     /**
      * Load data type.
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/MySQLDataTypeLoader.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/MySQLDataTypeLoader.java
index 5446274515d..c6a5e7378dd 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/MySQLDataTypeLoader.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/MySQLDataTypeLoader.java
@@ -46,7 +46,7 @@ public final class MySQLDataTypeLoader implements 
DialectDataTypeLoader {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/OracleDataTypeLoader.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/OracleDataTypeLoader.java
index 2d43396579e..49e56b44cdd 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/OracleDataTypeLoader.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/dialect/OracleDataTypeLoader.java
@@ -35,7 +35,7 @@ public final class OracleDataTypeLoader implements 
DialectDataTypeLoader {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "Oracle";
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPI.java
similarity index 65%
copy from 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
copy to 
infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPI.java
index 8cee6a38786..f849b86a4c1 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/datatype/DialectDataTypeLoader.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPI.java
@@ -15,25 +15,26 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.database.schema.loader.datatype;
+package org.apache.shardingsphere.infra.spi;
 
-import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
-
-import java.sql.SQLException;
-import java.util.Map;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 
 /**
- * Dialect data type loader.
+ * Database typed SPI.
  */
-@SingletonSPI
-public interface DialectDataTypeLoader extends TypedSPI {
+public interface DatabaseTypedSPI extends TypedSPI {
     
     /**
-     * Load data type.
+     * Get database type.
      *
-     * @return data type map
-     * @throws SQLException SQL exception
+     * @return database type
      */
-    Map<String, Integer> load() throws SQLException;
+    String getDatabaseType();
+    
+    @Override
+    default DatabaseType getType() {
+        return TypedSPILoader.getService(DatabaseType.class, 
getDatabaseType());
+    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoader.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoader.java
index 56c98f36bbc..cabb5d8468b 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoader.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoader.java
@@ -22,7 +22,6 @@ import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.BranchDatabaseType;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.util.spi.exception.ServiceProviderNotFoundServerException;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 
 import java.util.Optional;
@@ -41,13 +40,13 @@ public final class DatabaseTypedSPILoader {
      * @param <T> SPI class type
      * @return found service
      */
-    public static <T extends TypedSPI> Optional<T> findService(final Class<T> 
spiClass, final DatabaseType databaseType) {
-        Optional<T> result = TypedSPILoader.findService(spiClass, 
databaseType.getType());
+    public static <T extends DatabaseTypedSPI> Optional<T> findService(final 
Class<T> spiClass, final DatabaseType databaseType) {
+        Optional<T> result = TypedSPILoader.findService(spiClass, 
databaseType);
         if (result.isPresent()) {
             return result;
         }
         if (databaseType instanceof BranchDatabaseType) {
-            return TypedSPILoader.findService(spiClass, ((BranchDatabaseType) 
databaseType).getTrunkDatabaseType().getType());
+            return TypedSPILoader.findService(spiClass, ((BranchDatabaseType) 
databaseType).getTrunkDatabaseType());
         }
         return result;
     }
@@ -60,7 +59,7 @@ public final class DatabaseTypedSPILoader {
      * @param <T> SPI class type
      * @return found service
      */
-    public static <T extends TypedSPI> T getService(final Class<T> spiClass, 
final DatabaseType databaseType) {
+    public static <T extends DatabaseTypedSPI> T getService(final Class<T> 
spiClass, final DatabaseType databaseType) {
         return findService(spiClass, databaseType).orElseThrow(() -> new 
ServiceProviderNotFoundServerException(spiClass, databaseType.getType()));
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoaderTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoaderTest.java
index cd182bc35a0..8c76e5fbcde 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoaderTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/DatabaseTypedSPILoaderTest.java
@@ -17,11 +17,10 @@
 
 package org.apache.shardingsphere.infra.spi;
 
-import 
org.apache.shardingsphere.infra.database.type.dialect.MariaDBDatabaseType;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
-import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.fixture.DatabaseTypedSPIFixture;
 import 
org.apache.shardingsphere.infra.util.spi.exception.ServiceProviderNotFoundServerException;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@@ -33,26 +32,27 @@ class DatabaseTypedSPILoaderTest {
     
     @Test
     void assertFindServiceWithTrunkDatabaseType() {
-        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
new MySQLDatabaseType()).isPresent());
+        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL")).isPresent());
     }
     
     @Test
     void assertFindServiceWithBranchDatabaseType() {
-        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
new MariaDBDatabaseType()).isPresent());
+        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "MariaDB")).isPresent());
     }
     
     @Test
     void assertFindServiceWithUnregisteredDatabaseType() {
-        
assertFalse(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
new PostgreSQLDatabaseType()).isPresent());
+        
assertFalse(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")).isPresent());
     }
     
     @Test
     void assertGetServiceWithRegisteredDatabaseType() {
-        assertDoesNotThrow(() -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, new 
MySQLDatabaseType()));
+        assertDoesNotThrow(() -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
     }
     
     @Test
     void assertGetServiceWithUnregisteredDatabaseType() {
-        assertThrows(ServiceProviderNotFoundServerException.class, () -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, new 
PostgreSQLDatabaseType()));
+        assertThrows(ServiceProviderNotFoundServerException.class,
+                () -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")));
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/DatabaseTypedSPIFixture.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/DatabaseTypedSPIFixture.java
index eefabb86218..92e09882e42 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/DatabaseTypedSPIFixture.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/DatabaseTypedSPIFixture.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.spi.fixture;
 
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 
-public interface DatabaseTypedSPIFixture extends TypedSPI {
+public interface DatabaseTypedSPIFixture extends DatabaseTypedSPI {
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/impl/FooDatabaseTypedSPIFixture.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/impl/FooDatabaseTypedSPIFixture.java
index c3da9f81ddf..616dcde6e4a 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/impl/FooDatabaseTypedSPIFixture.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/spi/fixture/impl/FooDatabaseTypedSPIFixture.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.infra.spi.fixture.DatabaseTypedSPIFixture;
 public final class FooDatabaseTypedSPIFixture implements 
DatabaseTypedSPIFixture {
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/datasource/DataSourceChecker.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/datasource/DataSourceChecker.java
index 7f2ba48c3c1..1052c4e98c9 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/datasource/DataSourceChecker.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/datasource/DataSourceChecker.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.data.pipeline.spi.check.datasource;
 
 import 
org.apache.shardingsphere.data.pipeline.api.config.TableNameSchemaNameMapping;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import javax.sql.DataSource;
 import java.util.Collection;
@@ -28,7 +28,7 @@ import java.util.Collection;
  * Data source checker.
  */
 @SingletonSPI
-public interface DataSourceChecker extends TypedSPI {
+public interface DataSourceChecker extends DatabaseTypedSPI {
     
     /**
      * Check data source connections.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/datasource/JdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/datasource/JdbcQueryPropertiesExtension.java
index fe8eca84bca..28597a80edf 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/datasource/JdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/datasource/JdbcQueryPropertiesExtension.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.data.pipeline.spi.datasource;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.Properties;
 
@@ -26,7 +26,7 @@ import java.util.Properties;
  * JDBC query properties extension.
  */
 @SingletonSPI
-public interface JdbcQueryPropertiesExtension extends TypedSPI {
+public interface JdbcQueryPropertiesExtension extends DatabaseTypedSPI {
     
     /**
      * Extend query properties.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ddlgenerator/CreateTableSQLGenerator.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ddlgenerator/CreateTableSQLGenerator.java
index f234f3a36e7..61b4bc39393 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ddlgenerator/CreateTableSQLGenerator.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ddlgenerator/CreateTableSQLGenerator.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.data.pipeline.spi.ddlgenerator;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
@@ -28,7 +28,7 @@ import java.util.Collection;
  * Create table SQL generator.
  */
 @SingletonSPI
-public interface CreateTableSQLGenerator extends TypedSPI {
+public interface CreateTableSQLGenerator extends DatabaseTypedSPI {
     
     /**
     * Generate create table SQLs.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/ColumnValueReader.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/ColumnValueReader.java
index 1c5861cbfad..0fa56e5fdc7 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/ColumnValueReader.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/ColumnValueReader.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.data.pipeline.spi.ingest.dumper;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
@@ -28,7 +28,7 @@ import java.sql.SQLException;
  * Column value reader.
  */
 @SingletonSPI
-public interface ColumnValueReader extends TypedSPI {
+public interface ColumnValueReader extends DatabaseTypedSPI {
     
     /**
      * Read column value.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/IncrementalDumperCreator.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/IncrementalDumperCreator.java
index a2abf411610..64c6ce273a7 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/IncrementalDumperCreator.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/dumper/IncrementalDumperCreator.java
@@ -22,14 +22,14 @@ import 
org.apache.shardingsphere.data.pipeline.api.ingest.channel.PipelineChanne
 import 
org.apache.shardingsphere.data.pipeline.api.ingest.dumper.IncrementalDumper;
 import 
org.apache.shardingsphere.data.pipeline.api.ingest.position.IngestPosition;
 import 
org.apache.shardingsphere.data.pipeline.api.metadata.loader.PipelineTableMetaDataLoader;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Incremental dumper creator.
  */
 @SingletonSPI
-public interface IncrementalDumperCreator extends TypedSPI {
+public interface IncrementalDumperCreator extends DatabaseTypedSPI {
     
     /**
      * Create incremental dumper.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/position/PositionInitializer.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/position/PositionInitializer.java
index d038bbd4ac3..c448ad43c40 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/position/PositionInitializer.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/position/PositionInitializer.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.data.pipeline.spi.ingest.position;
 
 import 
org.apache.shardingsphere.data.pipeline.api.ingest.position.IngestPosition;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
@@ -28,7 +28,7 @@ import java.sql.SQLException;
  * Position initializer.
  */
 @SingletonSPI
-public interface PositionInitializer extends TypedSPI {
+public interface PositionInitializer extends DatabaseTypedSPI {
     
     /**
      * Init position by data source.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/PipelineSQLBuilder.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/PipelineSQLBuilder.java
index 743410b9bd6..646f1dc907a 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/PipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/PipelineSQLBuilder.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.data.pipeline.spi.sqlbuilder;
 
 import org.apache.shardingsphere.data.pipeline.api.ingest.record.Column;
 import org.apache.shardingsphere.data.pipeline.api.ingest.record.DataRecord;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 
 import java.util.Collection;
 import java.util.List;
@@ -28,7 +28,7 @@ import java.util.Optional;
 /**
  * Pipeline SQL builder.
  */
-public interface PipelineSQLBuilder extends TypedSPI {
+public interface PipelineSQLBuilder extends DatabaseTypedSPI {
     
     /**
      * Build create schema SQL.
@@ -189,7 +189,4 @@ public interface PipelineSQLBuilder extends TypedSPI {
     default Optional<String> buildCRC32SQL(final String schemaName, final 
String tableName, final String column) {
         return Optional.empty();
     }
-    
-    @Override
-    String getType();
 }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/datasource/H2JdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/datasource/H2JdbcQueryPropertiesExtension.java
index 3c018f31532..b00fa5ef812 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/datasource/H2JdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/datasource/H2JdbcQueryPropertiesExtension.java
@@ -33,7 +33,7 @@ public final class H2JdbcQueryPropertiesExtension implements 
JdbcQueryProperties
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/AbstractPipelineSQLBuilder.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/AbstractPipelineSQLBuilder.java
index cf20d2b5d16..0c6d23c5262 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/AbstractPipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/AbstractPipelineSQLBuilder.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.data.pipeline.api.ingest.record.Column;
 import org.apache.shardingsphere.data.pipeline.api.ingest.record.DataRecord;
 import 
org.apache.shardingsphere.data.pipeline.common.ingest.record.RecordUtils;
 import 
org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -107,7 +105,7 @@ public abstract class AbstractPipelineSQLBuilder implements 
PipelineSQLBuilder {
     
     protected final String getQualifiedTableName(final String schemaName, 
final String tableName) {
         StringBuilder result = new StringBuilder();
-        if (TypedSPILoader.getService(DatabaseType.class, 
getType()).isSchemaAvailable() && !Strings.isNullOrEmpty(schemaName)) {
+        if (getType().isSchemaAvailable() && 
!Strings.isNullOrEmpty(schemaName)) {
             result.append(quote(schemaName)).append('.');
         }
         result.append(quote(tableName));
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/DataSourcePreparer.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/DataSourcePreparer.java
index ffaa144b947..9f8136c17ab 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/DataSourcePreparer.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/DataSourcePreparer.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.data.pipeline.core.preparer.datasource;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.sql.SQLException;
 
@@ -26,7 +26,7 @@ import java.sql.SQLException;
  * Data source preparer.
  */
 @SingletonSPI
-public interface DataSourcePreparer extends TypedSPI {
+public interface DataSourcePreparer extends DatabaseTypedSPI {
     
     /**
      * Prepare target schemas.
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/AbstractDataSourceChecker.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/AbstractDataSourceChecker.java
index fc15ab9890a..0dc919fa28a 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/AbstractDataSourceChecker.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/AbstractDataSourceChecker.java
@@ -76,11 +76,4 @@ public abstract class AbstractDataSourceChecker implements 
DataSourceChecker {
             return !resultSet.next();
         }
     }
-    
-    protected abstract String getDatabaseType();
-    
-    @Override
-    public String getType() {
-        return getDatabaseType();
-    }
 }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/BasicDataSourceChecker.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/BasicDataSourceChecker.java
index 6ace7ce02d4..f00e9ea561d 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/BasicDataSourceChecker.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/checker/BasicDataSourceChecker.java
@@ -39,7 +39,7 @@ public final class BasicDataSourceChecker extends 
AbstractDataSourceChecker {
     }
     
     @Override
-    protected String getDatabaseType() {
+    public String getDatabaseType() {
         return databaseType;
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/ingest/position/FixturePositionInitializer.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/ingest/position/FixturePositionInitializer.java
index 94b1eb69e79..3d3da5ea236 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/ingest/position/FixturePositionInitializer.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/ingest/position/FixturePositionInitializer.java
@@ -34,7 +34,7 @@ public final class FixturePositionInitializer implements 
PositionInitializer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/FixturePipelineSQLBuilder.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/FixturePipelineSQLBuilder.java
index 98c3e23348f..58a5f586a30 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/FixturePipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/FixturePipelineSQLBuilder.java
@@ -104,7 +104,7 @@ public final class FixturePipelineSQLBuilder implements 
PipelineSQLBuilder {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "FIXTURE";
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/H2PipelineSQLBuilder.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/H2PipelineSQLBuilder.java
index d8217185dba..7cb22c98bc4 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/H2PipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/H2PipelineSQLBuilder.java
@@ -42,7 +42,7 @@ public final class H2PipelineSQLBuilder extends 
AbstractPipelineSQLBuilder {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourceCheckerTest.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourceCheckerTest.java
index df0947eef9e..25209cd1af4 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourceCheckerTest.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourceCheckerTest.java
@@ -64,16 +64,16 @@ class AbstractDataSourceCheckerTest {
         dataSourceChecker = new AbstractDataSourceChecker() {
             
             @Override
-            protected String getDatabaseType() {
-                return "H2";
+            public void checkPrivilege(final Collection<? extends DataSource> 
dataSources) {
             }
             
             @Override
-            public void checkPrivilege(final Collection<? extends DataSource> 
dataSources) {
+            public void checkVariable(final Collection<? extends DataSource> 
dataSources) {
             }
             
             @Override
-            public void checkVariable(final Collection<? extends DataSource> 
dataSources) {
+            public String getDatabaseType() {
+                return "H2";
             }
         };
         dataSources = new LinkedList<>();
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourcePreparerTest.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourcePreparerTest.java
index 5805fd8f4ef..05081717dd1 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourcePreparerTest.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/preparer/datasource/AbstractDataSourcePreparerTest.java
@@ -42,6 +42,11 @@ class AbstractDataSourcePreparerTest {
         @Override
         public void prepareTargetTables(final PrepareTargetTablesParameter 
param) {
         }
+        
+        @Override
+        public String getDatabaseType() {
+            return "FIXTURE";
+        }
     };
     
     @Test
diff --git 
a/kernel/data-pipeline/dialect/h2/src/main/java/org/apache/shardingsphere/data/pipeline/h2/H2IncrementalDumperCreator.java
 
b/kernel/data-pipeline/dialect/h2/src/main/java/org/apache/shardingsphere/data/pipeline/h2/H2IncrementalDumperCreator.java
index 282d37bcb26..d732e1ee4cc 100644
--- 
a/kernel/data-pipeline/dialect/h2/src/main/java/org/apache/shardingsphere/data/pipeline/h2/H2IncrementalDumperCreator.java
+++ 
b/kernel/data-pipeline/dialect/h2/src/main/java/org/apache/shardingsphere/data/pipeline/h2/H2IncrementalDumperCreator.java
@@ -41,7 +41,7 @@ public final class H2IncrementalDumperCreator implements 
IncrementalDumperCreato
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/MySQLIncrementalDumperCreator.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/MySQLIncrementalDumperCreator.java
index b27d1ba2653..98660a98b67 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/MySQLIncrementalDumperCreator.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/MySQLIncrementalDumperCreator.java
@@ -37,7 +37,7 @@ public final class MySQLIncrementalDumperCreator implements 
IncrementalDumperCre
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/check/datasource/MySQLDataSourceChecker.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/check/datasource/MySQLDataSourceChecker.java
index 673efb35f49..b03acf9fb4d 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/check/datasource/MySQLDataSourceChecker.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/check/datasource/MySQLDataSourceChecker.java
@@ -114,7 +114,7 @@ public final class MySQLDataSourceChecker extends 
AbstractDataSourceChecker {
     }
     
     @Override
-    protected String getDatabaseType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
index ffd56b8812e..037beacb115 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
@@ -78,7 +78,7 @@ public final class MySQLJdbcQueryPropertiesExtension 
implements JdbcQueryPropert
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ddlgenerator/MySQLCreateTableSQLGenerator.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ddlgenerator/MySQLCreateTableSQLGenerator.java
index 9f3d225dacb..3bbeeb484af 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ddlgenerator/MySQLCreateTableSQLGenerator.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ddlgenerator/MySQLCreateTableSQLGenerator.java
@@ -51,7 +51,7 @@ public final class MySQLCreateTableSQLGenerator implements 
CreateTableSQLGenerat
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLColumnValueReader.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLColumnValueReader.java
index cbfc9d4fee3..7fe1dd5c6f2 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLColumnValueReader.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLColumnValueReader.java
@@ -43,7 +43,7 @@ public final class MySQLColumnValueReader extends 
AbstractColumnValueReader {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLPositionInitializer.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLPositionInitializer.java
index 50dd4a2b688..50aec801c9a 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLPositionInitializer.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLPositionInitializer.java
@@ -67,7 +67,7 @@ public final class MySQLPositionInitializer implements 
PositionInitializer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/prepare/datasource/MySQLDataSourcePreparer.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/prepare/datasource/MySQLDataSourcePreparer.java
index 8624e0521d0..24f967a3302 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/prepare/datasource/MySQLDataSourcePreparer.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/prepare/datasource/MySQLDataSourcePreparer.java
@@ -42,7 +42,7 @@ public final class MySQLDataSourcePreparer extends 
AbstractDataSourcePreparer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
index 00205d9190d..c25ffd99ce6 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
@@ -98,7 +98,7 @@ public final class MySQLPipelineSQLBuilder extends 
AbstractPipelineSQLBuilder {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "MySQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtensionTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtensionTest.java
index fecc23e9ba4..f014124ac78 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtensionTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtensionTest.java
@@ -18,13 +18,15 @@
 package org.apache.shardingsphere.data.pipeline.mysql.datasource;
 
 import 
org.apache.shardingsphere.data.pipeline.spi.datasource.JdbcQueryPropertiesExtension;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
 import java.util.Optional;
 import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -33,7 +35,7 @@ class MySQLJdbcQueryPropertiesExtensionTest {
     
     @Test
     void assertExtendQueryProperties() {
-        Optional<JdbcQueryPropertiesExtension> extension = 
TypedSPILoader.findService(JdbcQueryPropertiesExtension.class, "MySQL");
+        Optional<JdbcQueryPropertiesExtension> extension = 
DatabaseTypedSPILoader.findService(JdbcQueryPropertiesExtension.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
         assertTrue(extension.isPresent());
         assertExtension(extension.get());
         Properties props = new Properties();
@@ -47,18 +49,18 @@ class MySQLJdbcQueryPropertiesExtensionTest {
     
     private void assertExtension(final JdbcQueryPropertiesExtension actual) {
         assertThat(actual, 
instanceOf(MySQLJdbcQueryPropertiesExtension.class));
-        assertThat(actual.getType(), equalTo("MySQL"));
+        assertThat(actual.getType(), 
is(TypedSPILoader.getService(DatabaseType.class, "MySQL")));
     }
     
     private void assertQueryProperties(final Properties actual, final String 
expectedNetTimeoutForStreamingResults) {
-        assertThat(actual.size(), equalTo(8));
-        assertThat(actual.getProperty("useSSL"), 
equalTo(Boolean.FALSE.toString()));
-        assertThat(actual.getProperty("useServerPrepStmts"), 
equalTo(Boolean.FALSE.toString()));
-        assertThat(actual.getProperty("rewriteBatchedStatements"), 
equalTo(Boolean.TRUE.toString()));
-        assertThat(actual.getProperty("yearIsDateType"), 
equalTo(Boolean.FALSE.toString()));
-        assertThat(actual.getProperty("zeroDateTimeBehavior"), 
equalTo("convertToNull"));
-        assertThat(actual.getProperty("noDatetimeStringSync"), 
equalTo(Boolean.TRUE.toString()));
-        assertThat(actual.getProperty("jdbcCompliantTruncation"), 
equalTo(Boolean.FALSE.toString()));
-        assertThat(actual.getProperty("netTimeoutForStreamingResults"), 
equalTo(expectedNetTimeoutForStreamingResults));
+        assertThat(actual.size(), is(8));
+        assertThat(actual.getProperty("useSSL"), is(Boolean.FALSE.toString()));
+        assertThat(actual.getProperty("useServerPrepStmts"), 
is(Boolean.FALSE.toString()));
+        assertThat(actual.getProperty("rewriteBatchedStatements"), 
is(Boolean.TRUE.toString()));
+        assertThat(actual.getProperty("yearIsDateType"), 
is(Boolean.FALSE.toString()));
+        assertThat(actual.getProperty("zeroDateTimeBehavior"), 
is("convertToNull"));
+        assertThat(actual.getProperty("noDatetimeStringSync"), 
is(Boolean.TRUE.toString()));
+        assertThat(actual.getProperty("jdbcCompliantTruncation"), 
is(Boolean.FALSE.toString()));
+        assertThat(actual.getProperty("netTimeoutForStreamingResults"), 
is(expectedNetTimeoutForStreamingResults));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/OpenGaussIncrementalDumperCreator.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/OpenGaussIncrementalDumperCreator.java
index 3f4b84805c7..fc016ed683a 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/OpenGaussIncrementalDumperCreator.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/OpenGaussIncrementalDumperCreator.java
@@ -37,7 +37,7 @@ public final class OpenGaussIncrementalDumperCreator 
implements IncrementalDumpe
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/check/datasource/OpenGaussDataSourceChecker.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/check/datasource/OpenGaussDataSourceChecker.java
index 3a2e97568da..e80cf8c5b3f 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/check/datasource/OpenGaussDataSourceChecker.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/check/datasource/OpenGaussDataSourceChecker.java
@@ -69,7 +69,7 @@ public final class OpenGaussDataSourceChecker extends 
AbstractDataSourceChecker
     }
     
     @Override
-    protected String getDatabaseType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtension.java
index dde1a6136bb..2269e8c4c91 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtension.java
@@ -39,7 +39,7 @@ public final class OpenGaussJdbcQueryPropertiesExtension 
implements JdbcQueryPro
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ddlgenerator/OpenGaussCreateTableSQLGenerator.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ddlgenerator/OpenGaussCreateTableSQLGenerator.java
index c5583e0f49b..6de596ef92e 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ddlgenerator/OpenGaussCreateTableSQLGenerator.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ddlgenerator/OpenGaussCreateTableSQLGenerator.java
@@ -54,7 +54,7 @@ public final class OpenGaussCreateTableSQLGenerator 
implements CreateTableSQLGen
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/OpenGaussPositionInitializer.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/OpenGaussPositionInitializer.java
index 396722399d0..fa4a1379969 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/OpenGaussPositionInitializer.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/OpenGaussPositionInitializer.java
@@ -146,7 +146,7 @@ public final class OpenGaussPositionInitializer implements 
PositionInitializer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/OpenGaussColumnValueReader.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/OpenGaussColumnValueReader.java
index b1137625450..31d1f512701 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/OpenGaussColumnValueReader.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/OpenGaussColumnValueReader.java
@@ -66,7 +66,7 @@ public final class OpenGaussColumnValueReader extends 
AbstractColumnValueReader
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
index 8a3a40cdbd0..ba9679fbb2b 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
@@ -77,7 +77,7 @@ public final class OpenGaussDataSourcePreparer extends 
AbstractDataSourcePrepare
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
index e7230ce145d..4e0fc38ab09 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
@@ -97,7 +97,7 @@ public final class OpenGaussPipelineSQLBuilder extends 
AbstractPipelineSQLBuilde
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtensionTest.java
 
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtensionTest.java
index 253e7375dcc..f052d144b4a 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtensionTest.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/datasource/OpenGaussJdbcQueryPropertiesExtensionTest.java
@@ -18,13 +18,15 @@
 package org.apache.shardingsphere.data.pipeline.opengauss.datasource;
 
 import 
org.apache.shardingsphere.data.pipeline.spi.datasource.JdbcQueryPropertiesExtension;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
 import java.util.Optional;
 import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -33,16 +35,16 @@ class OpenGaussJdbcQueryPropertiesExtensionTest {
     
     @Test
     void assertExtendQueryProperties() {
-        Optional<JdbcQueryPropertiesExtension> extension = 
TypedSPILoader.findService(JdbcQueryPropertiesExtension.class, "openGauss");
+        Optional<JdbcQueryPropertiesExtension> extension = 
DatabaseTypedSPILoader.findService(JdbcQueryPropertiesExtension.class, 
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
         assertTrue(extension.isPresent());
         assertExtension(extension.get());
     }
     
     private void assertExtension(final JdbcQueryPropertiesExtension actual) {
         assertThat(actual, 
instanceOf(OpenGaussJdbcQueryPropertiesExtension.class));
-        assertThat(actual.getType(), equalTo("openGauss"));
+        assertThat(actual.getType(), 
is(TypedSPILoader.getService(DatabaseType.class, "openGauss")));
         Properties props = new Properties();
         actual.extendQueryProperties(props);
-        assertThat(props.size(), equalTo(2));
+        assertThat(props.size(), is(2));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/PostgreSQLIncrementalDumperCreator.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/PostgreSQLIncrementalDumperCreator.java
index 03f75393fb1..4b51cb7668d 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/PostgreSQLIncrementalDumperCreator.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/PostgreSQLIncrementalDumperCreator.java
@@ -37,7 +37,7 @@ public final class PostgreSQLIncrementalDumperCreator 
implements IncrementalDump
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/check/datasource/PostgreSQLDataSourceChecker.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/check/datasource/PostgreSQLDataSourceChecker.java
index ad619b3edaa..2a397371035 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/check/datasource/PostgreSQLDataSourceChecker.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/check/datasource/PostgreSQLDataSourceChecker.java
@@ -71,7 +71,7 @@ public final class PostgreSQLDataSourceChecker extends 
AbstractDataSourceChecker
     }
     
     @Override
-    protected String getDatabaseType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtension.java
index ec27ddbd4ff..c5f6baac62c 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtension.java
@@ -38,7 +38,7 @@ public final class PostgreSQLJdbcQueryPropertiesExtension 
implements JdbcQueryPr
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
index 8de9ef2a364..a1e38cd5f5a 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
@@ -84,7 +84,7 @@ public final class PostgreSQLCreateTableSQLGenerator 
implements CreateTableSQLGe
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLColumnValueReader.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLColumnValueReader.java
index a46560050dd..8bc1b84efef 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLColumnValueReader.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLColumnValueReader.java
@@ -60,7 +60,7 @@ public final class PostgreSQLColumnValueReader extends 
AbstractColumnValueReader
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLPositionInitializer.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLPositionInitializer.java
index bf4cbfd71af..c13647687ff 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLPositionInitializer.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/PostgreSQLPositionInitializer.java
@@ -137,7 +137,7 @@ public final class PostgreSQLPositionInitializer implements 
PositionInitializer
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
index 9485d89e6ac..abd17f3a8cd 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
@@ -47,7 +47,7 @@ public final class PostgreSQLDataSourcePreparer extends 
AbstractDataSourcePrepar
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
index 4eb01238bf4..6a24ed29d86 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
@@ -99,7 +99,7 @@ public final class PostgreSQLPipelineSQLBuilder extends 
AbstractPipelineSQLBuild
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "PostgreSQL";
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtensionTest.java
 
b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtensionTest.java
index 27b0ee947da..56fdefdbba3 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtensionTest.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/datasource/PostgreSQLJdbcQueryPropertiesExtensionTest.java
@@ -18,14 +18,16 @@
 package org.apache.shardingsphere.data.pipeline.postgresql.datasource;
 
 import 
org.apache.shardingsphere.data.pipeline.spi.datasource.JdbcQueryPropertiesExtension;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
 import java.util.Optional;
 import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -34,14 +36,14 @@ class PostgreSQLJdbcQueryPropertiesExtensionTest {
     
     @Test
     void assertExtendQueryProperties() {
-        Optional<JdbcQueryPropertiesExtension> extension = 
TypedSPILoader.findService(JdbcQueryPropertiesExtension.class, "PostgreSQL");
+        Optional<JdbcQueryPropertiesExtension> extension = 
DatabaseTypedSPILoader.findService(JdbcQueryPropertiesExtension.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
         assertTrue(extension.isPresent());
         assertExtension(extension.get());
     }
     
     private void assertExtension(final JdbcQueryPropertiesExtension actual) {
         assertThat(actual, 
instanceOf(PostgreSQLJdbcQueryPropertiesExtension.class));
-        assertThat(actual.getType(), equalTo("PostgreSQL"));
+        assertThat(actual.getType(), 
is(TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")));
         Properties props = new Properties();
         actual.extendQueryProperties(props);
         assertFalse(props.isEmpty());
diff --git 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/GlobalClockTransactionExecutor.java
 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/GlobalClockTransactionExecutor.java
index 54bc170fea9..a86ec4a27bb 100644
--- 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/GlobalClockTransactionExecutor.java
+++ 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/GlobalClockTransactionExecutor.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.globalclock.core.executor;
 
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.sql.Connection;
 import java.sql.SQLException;
@@ -28,7 +28,7 @@ import java.util.Collection;
  * Global clock transaction executor.
  */
 @SingletonSPI
-public interface GlobalClockTransactionExecutor extends TypedSPI {
+public interface GlobalClockTransactionExecutor extends DatabaseTypedSPI {
     
     /**
      * Send snapshot timestamp.
diff --git 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/OpenGaussGlobalClockTransactionExecutor.java
 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/OpenGaussGlobalClockTransactionExecutor.java
index c5420cdb6ac..b5df300f77f 100644
--- 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/OpenGaussGlobalClockTransactionExecutor.java
+++ 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/executor/OpenGaussGlobalClockTransactionExecutor.java
@@ -48,7 +48,7 @@ public final class OpenGaussGlobalClockTransactionExecutor 
implements GlobalCloc
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "openGauss";
     }
 }
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
index efd58f2e287..25ad1fd70bc 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/createtable/CreateTableSQLGeneratorIT.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.OpenGaussDatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
+import org.apache.shardingsphere.infra.spi.DatabaseTypedSPILoader;
 import 
org.apache.shardingsphere.test.e2e.data.pipeline.entity.CreateTableSQLGeneratorAssertionEntity;
 import 
org.apache.shardingsphere.test.e2e.data.pipeline.entity.CreateTableSQLGeneratorAssertionsRootEntity;
 import 
org.apache.shardingsphere.test.e2e.data.pipeline.entity.CreateTableSQLGeneratorOutputEntity;
@@ -92,8 +92,8 @@ class CreateTableSQLGeneratorIT {
             int majorVersion = 
connection.getMetaData().getDatabaseMajorVersion();
             for (CreateTableSQLGeneratorAssertionEntity each : 
rootEntity.getAssertions()) {
                 statement.execute(each.getInput().getSql());
-                Collection<String> actualDDLs = TypedSPILoader.getService(
-                        CreateTableSQLGenerator.class, 
testParam.getDatabaseType().getType()).generate(dataSource, DEFAULT_SCHEMA, 
each.getInput().getTable());
+                Collection<String> actualDDLs = 
DatabaseTypedSPILoader.getService(
+                        CreateTableSQLGenerator.class, 
testParam.getDatabaseType()).generate(dataSource, DEFAULT_SCHEMA, 
each.getInput().getTable());
                 assertSQL(actualDDLs, getVersionOutput(each.getOutputs(), 
majorVersion));
             }
         }
diff --git a/test/it/pipeline/pom.xml b/test/it/pipeline/pom.xml
index d668f131c5e..3475c9c06de 100644
--- a/test/it/pipeline/pom.xml
+++ b/test/it/pipeline/pom.xml
@@ -42,6 +42,11 @@
             <artifactId>shardingsphere-data-pipeline-opengauss</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-data-pipeline-h2</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             
<artifactId>shardingsphere-data-pipeline-scenario-migration</artifactId>
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureColumnValueReader.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureColumnValueReader.java
index b786f146575..e0c50eb3dfe 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureColumnValueReader.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureColumnValueReader.java
@@ -34,7 +34,7 @@ public final class FixtureColumnValueReader extends 
AbstractColumnValueReader {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureDataSourceChecker.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureDataSourceChecker.java
index bab376756f5..c912f36169f 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureDataSourceChecker.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureDataSourceChecker.java
@@ -42,7 +42,7 @@ public final class FixtureDataSourceChecker implements 
DataSourceChecker {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureIncrementalDumperCreator.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureIncrementalDumperCreator.java
index fd9441b1b56..8abb8b49287 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureIncrementalDumperCreator.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/FixtureIncrementalDumperCreator.java
@@ -36,7 +36,7 @@ public final class FixtureIncrementalDumperCreator implements 
IncrementalDumperC
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "Fixture";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2CreateTableSQLGenerator.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2CreateTableSQLGenerator.java
index e9128c7deba..06c04a91813 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2CreateTableSQLGenerator.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2CreateTableSQLGenerator.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.data.pipeline.spi.ddlgenerator.CreateTableSQLGe
 import 
org.apache.shardingsphere.test.it.data.pipeline.core.util.PipelineContextUtils;
 
 import javax.sql.DataSource;
-import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Collections;
 
@@ -32,7 +31,7 @@ import java.util.Collections;
 public final class H2CreateTableSQLGenerator implements 
CreateTableSQLGenerator {
     
     @Override
-    public Collection<String> generate(final DataSource dataSource, final 
String schemaName, final String tableName) throws SQLException {
+    public Collection<String> generate(final DataSource dataSource, final 
String schemaName, final String tableName) {
         if ("t_order".equalsIgnoreCase(tableName)) {
             return 
Collections.singletonList(PipelineContextUtils.getCreateOrderTableSchema());
         }
@@ -40,7 +39,7 @@ public final class H2CreateTableSQLGenerator implements 
CreateTableSQLGenerator
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2DataSourcePreparer.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2DataSourcePreparer.java
index de95b2c6615..820803b38b0 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2DataSourcePreparer.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2DataSourcePreparer.java
@@ -42,7 +42,7 @@ public final class H2DataSourcePreparer extends 
AbstractDataSourcePreparer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
index 80502e4d15b..b3d36544b6d 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
@@ -44,7 +44,7 @@ public final class H2PipelineSQLBuilder extends 
AbstractPipelineSQLBuilder {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PositionInitializer.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PositionInitializer.java
index 1e0634a4462..8c0fa4ba5f9 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PositionInitializer.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PositionInitializer.java
@@ -35,7 +35,7 @@ public final class H2PositionInitializer implements 
PositionInitializer {
     }
     
     @Override
-    public String getType() {
+    public String getDatabaseType() {
         return "H2";
     }
 }

Reply via email to