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

zhangyonglun 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 9417cec  Refactor schema.builder package (#8110)
9417cec is described below

commit 9417cec055ea14cc13df51123105b326c8d6e0f6
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Nov 10 13:09:47 2020 +0800

    Refactor schema.builder package (#8110)
    
    * Rename SchemaBuilder and TableMetaDataBuilder
    
    * Rename package to builder
    
    * Rename RuleBasedTableMetaDataBuilder
    
    * Rename RuleBasedTableAddressingMapperDecorator
    
    * Rename PhysicalLoader
    
    * Rename TableAddressingMapperLoader
    
    * Rename TableAddressingMapperBuilder
    
    * Rename schema.builder.loader package
---
 ...oader.java => EncryptTableMetaDataBuilder.java} | 10 +++---
 ...hema.builder.spi.RuleBasedTableMetaDataBuilder} |  2 +-
 ...t.java => EncryptTableMetaDataBuilderTest.java} | 12 +++----
 .../ShardingTableAddressingMapperDecorator.java    |  4 +--
 ...ader.java => ShardingTableMetaDataBuilder.java} | 12 +++----
 ...er.spi.RuleBasedTableAddressingMapperDecorator} |  0
 ...hema.builder.spi.RuleBasedTableMetaDataBuilder} |  2 +-
 .../SchemaBuilder.java}                            | 17 +++++----
 .../TableAddressingMapperBuilder.java}             | 40 +++++++++++++---------
 .../TableMetaDataBuilder.java}                     | 32 ++++++++---------
 .../loader/ColumnMetaDataLoader.java}              | 10 +++---
 .../loader/IndexMetaDataLoader.java}               |  7 ++--
 .../loader/SchemaMetaDataLoader.java}              |  8 ++---
 .../loader/TableMetaDataLoader.java}               | 14 ++++----
 .../adapter/MetaDataLoaderConnectionAdapter.java   |  4 +--
 .../dialect/DatabaseMetaDataDialectHandler.java    |  2 +-
 .../DatabaseMetaDataDialectHandlerFactory.java     |  2 +-
 .../impl/H2DatabaseMetaDataDialectHandler.java     |  4 +--
 .../MariaDBDatabaseMetaDataDialectHandler.java     |  4 +--
 .../impl/MySQLDatabaseMetaDataDialectHandler.java  |  4 +--
 .../impl/OracleDatabaseMetaDataDialectHandler.java |  4 +--
 .../PostgreSQLDatabaseMetaDataDialectHandler.java  |  4 +--
 .../impl/SQL92DatabaseMetaDataDialectHandler.java  |  4 +--
 .../SQLServerDatabaseMetaDataDialectHandler.java   |  4 +--
 .../RuleBasedTableAddressingMapperDecorator.java}  |  6 ++--
 .../spi/RuleBasedTableMetaDataBuilder.java}        | 16 ++++-----
 ...r.loader.dialect.DatabaseMetaDataDialectHandler | 24 +++++++++++++
 ...physical.dialect.DatabaseMetaDataDialectHandler | 24 -------------
 .../SchemaBuilderTest.java}                        |  8 ++---
 .../TableMetaDataBuilderTest.java}                 | 12 +++----
 .../physical/ColumnMetaDataLoaderTest.java}        |  7 ++--
 .../physical/IndexMetaDataLoaderTest.java}         |  7 ++--
 .../physical/SchemaMetaDataLoaderTest.java}        |  7 ++--
 .../physical/TableMetaDataLoaderTest.java}         |  9 ++---
 .../MetaDataLoaderConnectionAdapterTest.java       |  3 +-
 ...AbstractDatabaseMetaDataDialectHandlerTest.java |  4 ++-
 .../DatabaseMetaDataDialectHandlerFactoryTest.java |  3 +-
 .../DatabaseMetaDataDialectHandlerTest.java        |  4 ++-
 .../impl/H2DatabaseMetaDataDialectHandlerTest.java |  4 +--
 .../MariaDBDatabaseMetaDataDialectHandlerTest.java |  4 +--
 .../MySQLDatabaseMetaDataDialectHandlerTest.java   |  4 +--
 .../OracleDatabaseMetaDataDialectHandlerTest.java  |  4 +--
 ...stgreSQLDatabaseMetaDataDialectHandlerTest.java |  4 +--
 .../SQL92DatabaseMetaDataDialectHandlerTest.java   |  4 +--
 ...QLServerDatabaseMetaDataDialectHandlerTest.java |  4 +--
 ...java => CommonFixtureTableMetaDataBuilder.java} |  4 +--
 ...ainedFixtureRuleBasedTableMetaDataBuilder.java} |  4 +--
 ...hema.builder.spi.RuleBasedTableMetaDataBuilder} |  4 +--
 .../context/metadata/MetaDataContextsBuilder.java  |  4 +--
 .../driver/executor/AbstractStatementExecutor.java |  4 +--
 .../jdbc/JDBCDatabaseCommunicationEngine.java      |  8 ++---
 .../scaling/core/metadata/MetaDataManager.java     |  4 +--
 52 files changed, 208 insertions(+), 192 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoader.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilder.java
similarity index 89%
rename from 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoader.java
rename to 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilder.java
index 0c65e82..98fc95a 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoader.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilder.java
@@ -22,8 +22,8 @@ import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.PhysicalTableMetaDataLoader;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.TableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 
@@ -35,14 +35,14 @@ import java.util.Map;
 import java.util.Optional;
 
 /**
- * Meta data loader for encrypt.
+ * Table meta data builder for encrypt.
  */
-public final class EncryptMetaDataLoader implements 
ShardingSphereMetaDataLoader<EncryptRule> {
+public final class EncryptTableMetaDataBuilder implements 
RuleBasedTableMetaDataBuilder<EncryptRule> {
     
     @Override
     public Optional<TableMetaData> load(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final 
DataNodes dataNodes,
                                         final EncryptRule encryptRule, final 
ConfigurationProperties props) throws SQLException {
-        return encryptRule.findEncryptTable(tableName).isPresent() ? 
PhysicalTableMetaDataLoader.load(dataSourceMap.values().iterator().next(), 
tableName, databaseType) : Optional.empty();
+        return encryptRule.findEncryptTable(tableName).isPresent() ? 
TableMetaDataLoader.load(dataSourceMap.values().iterator().next(), tableName, 
databaseType) : Optional.empty();
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
similarity index 91%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
rename to 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
index ba955c8..5fcd35d 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.sharding.metadata.ShardingMetaDataLoader
+org.apache.shardingsphere.encrypt.metadata.EncryptTableMetaDataBuilder
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoaderTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilderTest.java
similarity index 89%
rename from 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoaderTest.java
rename to 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilderTest.java
index 0dad0ae..13ca393 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoaderTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptTableMetaDataBuilderTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.rule.EncryptTable;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
@@ -53,12 +53,12 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class EncryptMetaDataLoaderTest {
+public final class EncryptTableMetaDataBuilderTest {
     
     private static final String TABLE_NAME = "t_encrypt";
     
     static {
-        
ShardingSphereServiceLoader.register(ShardingSphereMetaDataLoader.class);
+        
ShardingSphereServiceLoader.register(RuleBasedTableMetaDataBuilder.class);
     }
     
     @Mock
@@ -97,7 +97,7 @@ public final class EncryptMetaDataLoaderTest {
     @Test
     public void assertLoadByExistedTable() throws SQLException {
         EncryptRule rule = createEncryptRule();
-        EncryptMetaDataLoader loader = (EncryptMetaDataLoader) 
OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(rule), 
ShardingSphereMetaDataLoader.class).get(rule);
+        EncryptTableMetaDataBuilder loader = (EncryptTableMetaDataBuilder) 
OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(rule), 
RuleBasedTableMetaDataBuilder.class).get(rule);
         Optional<TableMetaData> actual = loader.load(TABLE_NAME, databaseType, 
Collections.singletonMap("logic_db", dataSource), new 
DataNodes(Collections.singletonList(rule)), rule, props);
         assertTrue(actual.isPresent());
         assertThat(actual.get().getColumnMetaData(0).getName(), is("id"));
@@ -108,7 +108,7 @@ public final class EncryptMetaDataLoaderTest {
     @Test
     public void assertLoadByNotExistedTable() throws SQLException {
         EncryptRule rule = createEncryptRule();
-        EncryptMetaDataLoader loader = new EncryptMetaDataLoader();
+        EncryptTableMetaDataBuilder loader = new EncryptTableMetaDataBuilder();
         Optional<TableMetaData> actual = loader.load(
                 "not_existed_table", databaseType, 
Collections.singletonMap("logic_db", dataSource), new 
DataNodes(Collections.singletonList(rule)), rule, props);
         assertFalse(actual.isPresent());
@@ -117,7 +117,7 @@ public final class EncryptMetaDataLoaderTest {
     @Test
     public void assertDecorate() {
         EncryptRule rule = createEncryptRule();
-        EncryptMetaDataLoader loader = (EncryptMetaDataLoader) 
OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(rule), 
ShardingSphereMetaDataLoader.class).get(rule);
+        EncryptTableMetaDataBuilder loader = (EncryptTableMetaDataBuilder) 
OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(rule), 
RuleBasedTableMetaDataBuilder.class).get(rule);
         TableMetaData actual = loader.decorate("t_encrypt", 
createTableMetaData(), rule);
         assertThat(actual.getColumns().size(), is(2));
         assertTrue(actual.getColumns().containsKey("id"));
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
index d07ea2e..d27bf8f 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sharding.metadata;
 
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableAddressingMapperDecorator;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.TableRule;
@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
 /**
  * Table addressing mapper decorator of sharding.
  */
-public final class ShardingTableAddressingMapperDecorator implements 
TableAddressingMapperDecorator<ShardingRule> {
+public final class ShardingTableAddressingMapperDecorator implements 
RuleBasedTableAddressingMapperDecorator<ShardingRule> {
     
     @Override
     public void decorate(final ShardingRule rule, final Map<String, 
Collection<String>> tableAddressingMapper) {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataLoader.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilder.java
similarity index 94%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataLoader.java
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilder.java
index be7720e..48c34a1 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataLoader.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilder.java
@@ -25,8 +25,8 @@ import 
org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.PhysicalTableMetaDataLoader;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.TableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
@@ -53,9 +53,9 @@ import java.util.concurrent.TimeoutException;
 import java.util.stream.Collectors;
 
 /**
- * Meta data loader for sharding.
+ * Table meta data builder for sharding.
  */
-public final class ShardingMetaDataLoader implements 
ShardingSphereMetaDataLoader<ShardingRule> {
+public final class ShardingTableMetaDataBuilder implements 
RuleBasedTableMetaDataBuilder<ShardingRule> {
     
     private static final int CPU_CORES = 
Runtime.getRuntime().availableProcessors();
     
@@ -72,7 +72,7 @@ public final class ShardingMetaDataLoader implements 
ShardingSphereMetaDataLoade
         TableRule tableRule = rule.getTableRule(tableName);
         if (!isCheckingMetaData) {
             DataNode dataNode = 
dataNodes.getDataNodes(tableName).iterator().next();
-            return 
PhysicalTableMetaDataLoader.load(dataSourceMap.get(dataNode.getDataSourceName()),
 dataNode.getTableName(), databaseType);
+            return 
TableMetaDataLoader.load(dataSourceMap.get(dataNode.getDataSourceName()), 
dataNode.getTableName(), databaseType);
         }
         Map<String, TableMetaData> actualTableMetaDataMap = 
parallelLoadTables(databaseType, dataSourceMap, dataNodes, tableName, 
maxConnectionsSizePerQuery);
         if (actualTableMetaDataMap.isEmpty()) {
@@ -111,7 +111,7 @@ public final class ShardingMetaDataLoader implements 
ShardingSphereMetaDataLoade
     
     private Optional<TableMetaData> loadTableByDataNode(final DataNode 
dataNode, final DatabaseType databaseType, final Map<String, DataSource> 
dataSourceMap) {
         try {
-            return 
PhysicalTableMetaDataLoader.load(dataSourceMap.get(dataNode.getDataSourceName()),
 dataNode.getTableName(), databaseType);
+            return 
TableMetaDataLoader.load(dataSourceMap.get(dataNode.getDataSourceName()), 
dataNode.getTableName(), databaseType);
         } catch (final SQLException ex) {
             throw new IllegalStateException(String.format("SQLException for 
DataNode=%s and databaseType=%s", dataNode, databaseType.getName()), ex);
         }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableAddressingMapperDecorator
similarity index 100%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableAddressingMapperDecorator
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
similarity index 91%
rename from 
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
index dd69cf2..9a777a2 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.encrypt.metadata.EncryptMetaDataLoader
+org.apache.shardingsphere.sharding.metadata.ShardingTableMetaDataBuilder
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
similarity index 81%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
index 756d746..f47bb79 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
@@ -15,13 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader;
+package org.apache.shardingsphere.infra.metadata.schema.builder;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.addressing.TableAddressingMapperDataLoader;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -34,13 +33,13 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 /**
- * Schema loader.
+ * Schema builder.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class SchemaLoader {
+public final class SchemaBuilder {
     
     /**
-     * Load schema.
+     * Build ShardingSphere schema.
      * 
      * @param databaseType database type
      * @param dataSourceMap data source map
@@ -49,8 +48,8 @@ public final class SchemaLoader {
      * @return ShardingSphere schema
      * @throws SQLException SQL exception
      */
-    public static ShardingSphereSchema load(final DatabaseType databaseType, 
final Map<String, DataSource> dataSourceMap,
-                                            final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
+    public static ShardingSphereSchema build(final DatabaseType databaseType, 
final Map<String, DataSource> dataSourceMap,
+                                             final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
         ShardingSphereSchema result = loadSchema(databaseType, dataSourceMap, 
rules, props);
         setTableAddressingMapper(databaseType, dataSourceMap, rules, result);
         return result;
@@ -63,7 +62,7 @@ public final class SchemaLoader {
             if (rule instanceof TableContainedRule) {
                 for (String table : ((TableContainedRule) rule).getTables()) {
                     if (!result.containsTable(table)) {
-                        TableMetaDataLoader.load(table, databaseType, 
dataSourceMap, rules, props).ifPresent(optional -> result.put(table, optional));
+                        TableMetaDataBuilder.build(table, databaseType, 
dataSourceMap, rules, props).ifPresent(optional -> result.put(table, optional));
                     }
                 }
             }
@@ -73,7 +72,7 @@ public final class SchemaLoader {
     
     private static void setTableAddressingMapper(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap,
                                                  final 
Collection<ShardingSphereRule> rules, final ShardingSphereSchema schema) throws 
SQLException {
-        for (Entry<String, Collection<String>> entry : 
TableAddressingMapperDataLoader.load(databaseType, dataSourceMap, 
rules).entrySet()) {
+        for (Entry<String, Collection<String>> entry : 
TableAddressingMapperBuilder.build(databaseType, dataSourceMap, 
rules).entrySet()) {
             String tableName = entry.getKey();
             if (!schema.containsTable(tableName)) {
                 schema.put(tableName, new TableMetaData());
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableAddressingMapperBuilder.java
similarity index 58%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableAddressingMapperBuilder.java
index 1fdaa6b..1c75fec 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableAddressingMapperBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.addressing;
+package org.apache.shardingsphere.infra.metadata.schema.builder;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.PhysicalSchemaMetaDataLoader;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.SchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableAddressingMapperDecorator;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry;
@@ -35,34 +35,32 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 /**
- * Table addressing mapper loader.
+ * Table addressing mapper builder.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class TableAddressingMapperDataLoader {
+public final class TableAddressingMapperBuilder {
     
     static {
-        
ShardingSphereServiceLoader.register(TableAddressingMapperDecorator.class);
+        
ShardingSphereServiceLoader.register(RuleBasedTableAddressingMapperDecorator.class);
     }
     
     /**
-     * Load table addressing mapper with related data sources.
+     * Build table addressing mapper with related data sources.
      *
      * @param databaseType database type
      * @param dataSourceMap data source map
      * @param rules ShardingSphere rules
-     * @return table addressing mapper
+     * @return table addressing mapper with related data sources
      * @throws SQLException SQL exception
      */
-    @SuppressWarnings({"unchecked", "rawtypes"})
-    public static Map<String, Collection<String>> load(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap, final 
Collection<ShardingSphereRule> rules) throws SQLException {
-        Map<String, Collection<String>> result = initialize(databaseType, 
dataSourceMap);
-        for (Entry<ShardingSphereRule, TableAddressingMapperDecorator> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
TableAddressingMapperDecorator.class).entrySet()) {
-            entry.getValue().decorate(entry.getKey(), result);
-        }
+    public static Map<String, Collection<String>> build(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap, final 
Collection<ShardingSphereRule> rules) throws SQLException {
+        Map<String, Collection<String>> result = load(databaseType, 
dataSourceMap);
+        decorate(rules, result);
         return result;
     }
     
-    private static Map<String, Collection<String>> initialize(final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) throws 
SQLException {
+    @SuppressWarnings("CollectionWithoutInitialCapacity")
+    private static Map<String, Collection<String>> load(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap) throws SQLException {
         Map<String, Collection<String>> result = new HashMap<>();
         for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) {
             append(result, databaseType, entry.getKey(), entry.getValue());
@@ -70,13 +68,21 @@ public final class TableAddressingMapperDataLoader {
         return result;
     }
     
-    private static void append(final Map<String, Collection<String>> 
tableAddressingMapper, 
+    @SuppressWarnings("CollectionWithoutInitialCapacity")
+    private static void append(final Map<String, Collection<String>> 
tableAddressingMapper,
                                final DatabaseType databaseType, final String 
dataSourceName, final DataSource dataSource) throws SQLException {
-        for (String each : 
PhysicalSchemaMetaDataLoader.loadAllTableNames(dataSource, databaseType)) {
+        for (String each : SchemaMetaDataLoader.loadAllTableNames(dataSource, 
databaseType)) {
             if (!tableAddressingMapper.containsKey(each)) {
                 tableAddressingMapper.put(each, new LinkedHashSet<>());
             }
             tableAddressingMapper.get(each).add(dataSourceName);
         }
     }
+
+    @SuppressWarnings({"unchecked", "rawtypes"})
+    private static void decorate(final Collection<ShardingSphereRule> rules, 
final Map<String, Collection<String>> tableAddressingMapper) {
+        for (Entry<ShardingSphereRule, 
RuleBasedTableAddressingMapperDecorator> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
RuleBasedTableAddressingMapperDecorator.class).entrySet()) {
+            entry.getValue().decorate(entry.getKey(), tableAddressingMapper);
+        }
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilder.java
similarity index 62%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilder.java
index 43b4229..318a765 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilder.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader;
+package org.apache.shardingsphere.infra.metadata.schema.builder;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.type.TableContainedRule;
@@ -37,17 +37,17 @@ import java.util.Map.Entry;
 import java.util.Optional;
 
 /**
- * Table meta data loader.
+ * Table meta data builder.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class TableMetaDataLoader {
+public final class TableMetaDataBuilder {
     
     static {
-        
ShardingSphereServiceLoader.register(ShardingSphereMetaDataLoader.class);
+        
ShardingSphereServiceLoader.register(RuleBasedTableMetaDataBuilder.class);
     }
     
     /**
-     * Load table meta data.
+     * Build table meta data.
      *
      * @param tableName table name
      * @param databaseType database type
@@ -57,20 +57,20 @@ public final class TableMetaDataLoader {
      * @return table meta data
      * @throws SQLException SQL exception
      */
-    public static Optional<TableMetaData> load(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
-                                               final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
-        Optional<TableMetaData> tableMetaData = loadTableMetaData(tableName, 
databaseType, dataSourceMap, rules, props);
-        return tableMetaData.map(optional -> decorateTableMetaData(tableName, 
optional, rules));
+    public static Optional<TableMetaData> build(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
+                                                final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
+        Optional<TableMetaData> tableMetaData = load(tableName, databaseType, 
dataSourceMap, rules, props);
+        return tableMetaData.map(optional -> decorate(tableName, optional, 
rules));
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
-    private static Optional<TableMetaData> loadTableMetaData(final String 
tableName, final DatabaseType databaseType, final Map<String, DataSource> 
dataSourceMap,
-                                                             final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
+    private static Optional<TableMetaData> load(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
+                                                final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
         DataNodes dataNodes = new DataNodes(rules);
-        for (Entry<ShardingSphereRule, ShardingSphereMetaDataLoader> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
ShardingSphereMetaDataLoader.class).entrySet()) {
+        for (Entry<ShardingSphereRule, RuleBasedTableMetaDataBuilder> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
RuleBasedTableMetaDataBuilder.class).entrySet()) {
             if (entry.getKey() instanceof TableContainedRule) {
                 TableContainedRule rule = (TableContainedRule) entry.getKey();
-                ShardingSphereMetaDataLoader loader = entry.getValue();
+                RuleBasedTableMetaDataBuilder loader = entry.getValue();
                 Optional<TableMetaData> tableMetaData = loader.load(tableName, 
databaseType, dataSourceMap, dataNodes, rule, props);
                 if (tableMetaData.isPresent()) {
                     return tableMetaData;
@@ -81,9 +81,9 @@ public final class TableMetaDataLoader {
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
-    private static TableMetaData decorateTableMetaData(final String tableName, 
final TableMetaData tableMetaData, final Collection<ShardingSphereRule> rules) {
+    private static TableMetaData decorate(final String tableName, final 
TableMetaData tableMetaData, final Collection<ShardingSphereRule> rules) {
         TableMetaData result = null;
-        for (Entry<ShardingSphereRule, ShardingSphereMetaDataLoader> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
ShardingSphereMetaDataLoader.class).entrySet()) {
+        for (Entry<ShardingSphereRule, RuleBasedTableMetaDataBuilder> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
RuleBasedTableMetaDataBuilder.class).entrySet()) {
             if (entry.getKey() instanceof TableContainedRule) {
                 result = entry.getValue().decorate(tableName, null == result ? 
tableMetaData : result, (TableContainedRule) entry.getKey());
             }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
similarity index 92%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
index 2476599..22a1310 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
@@ -36,10 +36,10 @@ import java.util.List;
 import java.util.Objects;
 
 /**
- * Physical column meta data loader.
+ * Column meta data loader.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class PhysicalColumnMetaDataLoader {
+public final class ColumnMetaDataLoader {
     
     private static final String COLUMN_NAME = "COLUMN_NAME";
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/IndexMetaDataLoader.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/IndexMetaDataLoader.java
index a32acdb..39a01cc 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/IndexMetaDataLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -28,10 +28,10 @@ import java.util.Collection;
 import java.util.HashSet;
 
 /**
- * Physical index meta data loader.
+ * Index meta data loader.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class PhysicalIndexMetaDataLoader {
+public final class IndexMetaDataLoader {
     
     private static final String INDEX_NAME = "INDEX_NAME";
     
@@ -44,6 +44,7 @@ public final class PhysicalIndexMetaDataLoader {
      * @return index meta data list
      * @throws SQLException SQL exception
      */
+    @SuppressWarnings("CollectionWithoutInitialCapacity")
     public static Collection<IndexMetaData> load(final Connection connection, 
final String table) throws SQLException {
         Collection<IndexMetaData> result = new HashSet<>();
         try (ResultSet resultSet = 
connection.getMetaData().getIndexInfo(connection.getCatalog(), 
connection.getSchema(), table, false, false)) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/SchemaMetaDataLoader.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/SchemaMetaDataLoader.java
index d2e4e42..39764f0 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/SchemaMetaDataLoader.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter.MetaDataLoaderConnectionAdapter;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.adapter.MetaDataLoaderConnectionAdapter;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
@@ -33,11 +33,11 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Physical schema meta data loader.
+ * Schema meta data loader.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 @Slf4j(topic = "ShardingSphere-metadata")
-public final class PhysicalSchemaMetaDataLoader {
+public final class SchemaMetaDataLoader {
     
     private static final String TABLE_TYPE = "TABLE";
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/TableMetaDataLoader.java
similarity index 82%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/TableMetaDataLoader.java
index 9c82292..5267571 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/TableMetaDataLoader.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter.MetaDataLoaderConnectionAdapter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.adapter.MetaDataLoaderConnectionAdapter;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 
 import javax.sql.DataSource;
@@ -31,10 +31,10 @@ import java.sql.SQLException;
 import java.util.Optional;
 
 /**
- * Physical table meta data loader.
+ * Table meta data loader.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class PhysicalTableMetaDataLoader {
+public final class TableMetaDataLoader {
     
     /**
      * Load table meta data.
@@ -49,8 +49,8 @@ public final class PhysicalTableMetaDataLoader {
         try (MetaDataLoaderConnectionAdapter connectionAdapter = new 
MetaDataLoaderConnectionAdapter(databaseType, dataSource.getConnection())) {
             String formattedTableNamePattern = 
formatTableNamePattern(tableNamePattern, databaseType);
             return isTableExist(connectionAdapter, formattedTableNamePattern)
-                    ? Optional.of(new 
TableMetaData(PhysicalColumnMetaDataLoader.load(
-                            connectionAdapter, formattedTableNamePattern, 
databaseType), PhysicalIndexMetaDataLoader.load(connectionAdapter, 
formattedTableNamePattern)))
+                    ? Optional.of(new TableMetaData(ColumnMetaDataLoader.load(
+                            connectionAdapter, formattedTableNamePattern, 
databaseType), IndexMetaDataLoader.load(connectionAdapter, 
formattedTableNamePattern)))
                     : Optional.empty();
         }
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/adapter/MetaDataLoaderConnectionAdapter.java
similarity index 98%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/adapter/MetaDataLoaderConnectionAdapter.java
index fe2e256..e8c4c2d 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/adapter/MetaDataLoaderConnectionAdapter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader.adapter;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 
 import java.sql.Array;
 import java.sql.Blob;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandler.java
similarity index 95%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandler.java
index bf68422..def41c4 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandler.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect;
 
 import org.apache.shardingsphere.infra.spi.typed.TypedSPI;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandlerFactory.java
similarity index 96%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandlerFactory.java
index 9a9cb91..d2d895c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/DatabaseMetaDataDialectHandlerFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
+package org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/H2DatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/H2DatabaseMetaDataDialectHandler.java
index f74057d..824bd5a 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/H2DatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
index 90915f2..1965864 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
index 9020b53..565c6f2 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
index cc13687..95fe0a6 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.sql.Connection;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
index efd8d78..9b4e368 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
index 73518cd..ade45c5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
index 90bd517..1f09b71 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl;
 
 import lombok.Getter;
 import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Properties;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableAddressingMapperDecorator.java
similarity index 84%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableAddressingMapperDecorator.java
index 18e0705..fcd2aad 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableAddressingMapperDecorator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.spi;
+package org.apache.shardingsphere.infra.metadata.schema.builder.spi;
 
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.ordered.OrderedSPI;
@@ -24,11 +24,11 @@ import java.util.Collection;
 import java.util.Map;
 
 /**
- * Table addressing mapper decorator.
+ * Table addressing mapper decorator with related rule.
  * 
  * @param <T> type of ShardingSphere rule
  */
-public interface TableAddressingMapperDecorator<T extends ShardingSphereRule> 
extends OrderedSPI<T> {
+public interface RuleBasedTableAddressingMapperDecorator<T extends 
ShardingSphereRule> extends OrderedSPI<T> {
     
     /**
      * Decorate table addressing mapper with data source names.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableMetaDataBuilder.java
similarity index 82%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableMetaDataBuilder.java
index 898bdcd..6717db3 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/spi/RuleBasedTableMetaDataBuilder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.spi;
+package org.apache.shardingsphere.infra.metadata.schema.builder.spi;
 
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -30,11 +30,11 @@ import java.util.Map;
 import java.util.Optional;
 
 /**
- * ShardingSphere meta data loader.
+ * Table meta data builder with related rule.
  * 
- * @param <T> type of base rule
+ * @param <T> type of ShardingSphere rule
  */
-public interface ShardingSphereMetaDataLoader<T extends TableContainedRule> 
extends OrderedSPI<T> {
+public interface RuleBasedTableMetaDataBuilder<T extends TableContainedRule> 
extends OrderedSPI<T> {
     
     /**
      * Load table meta data.
@@ -43,9 +43,9 @@ public interface ShardingSphereMetaDataLoader<T extends 
TableContainedRule> exte
      * @param databaseType database type
      * @param dataSourceMap data source map
      * @param dataNodes data nodes
-     * @param rule rule
+     * @param rule ShardingSphere rule
      * @param props configuration properties
-     * @return meta data
+     * @return table meta data
      * @throws SQLException SQL exception
      */
     Optional<TableMetaData> load(String tableName, DatabaseType databaseType, 
Map<String, DataSource> dataSourceMap, DataNodes dataNodes, T rule, 
ConfigurationProperties props) throws SQLException;
@@ -54,8 +54,8 @@ public interface ShardingSphereMetaDataLoader<T extends 
TableContainedRule> exte
      * Decorate table meta data.
      *
      * @param tableName table name
-     * @param tableMetaData table meta data
-     * @param rule rule
+     * @param tableMetaData table meta data to be decorated
+     * @param rule ShardingSphere rule
      * @return decorated table meta data
      */
     TableMetaData decorate(String tableName, TableMetaData tableMetaData, T 
rule);
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler
new file mode 100644
index 0000000..a70fa95
--- /dev/null
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.H2DatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.MariaDBDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.MySQLDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.OracleDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.PostgreSQLDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.SQL92DatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.impl.SQLServerDatabaseMetaDataDialectHandler
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
deleted file mode 100644
index c46c114..0000000
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.H2DatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.MariaDBDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.MySQLDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.OracleDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.PostgreSQLDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.SQL92DatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.SQLServerDatabaseMetaDataDialectHandler
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilderTest.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilderTest.java
index 653bc23..895df7a 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader;
+package org.apache.shardingsphere.infra.metadata.schema.builder;
 
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class SchemaLoaderTest {
+public final class SchemaBuilderTest {
     
     @Mock
     private DatabaseType databaseType;
@@ -50,8 +50,8 @@ public final class SchemaLoaderTest {
     private ConfigurationProperties props;
     
     @Test
-    public void assertLoadFullDatabases() throws SQLException {
-        ShardingSphereSchema actual = SchemaLoader.load(
+    public void assertBuild() throws SQLException {
+        ShardingSphereSchema actual = SchemaBuilder.build(
                 databaseType, Collections.singletonMap("logic_db", 
dataSource), Arrays.asList(new CommonFixtureRule(), new 
DataNodeContainedFixtureRule()), props);
         assertSchema(actual);
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilderTest.java
similarity index 84%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilderTest.java
index 6538a8e..6d6c380 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/TableMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/TableMetaDataBuilderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader;
+package org.apache.shardingsphere.infra.metadata.schema.builder;
 
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -36,7 +36,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class TableMetaDataLoaderTest {
+public final class TableMetaDataBuilderTest {
     
     @Mock
     private DatabaseType databaseType;
@@ -48,14 +48,14 @@ public final class TableMetaDataLoaderTest {
     private ConfigurationProperties props;
     
     @Test
-    public void assertLoadWithExistedTableName() throws SQLException {
-        assertTrue(TableMetaDataLoader.load("data_node_routed_table_0", 
+    public void assertBuildWithExistedTableName() throws SQLException {
+        assertTrue(TableMetaDataBuilder.build("data_node_routed_table_0", 
                 databaseType, Collections.singletonMap("logic_db", 
dataSource), Arrays.asList(new CommonFixtureRule(), new 
DataNodeContainedFixtureRule()), props).isPresent());
     }
     
     @Test
-    public void assertLoadWithNotExistedTableName() throws SQLException {
-        assertFalse(TableMetaDataLoader.load("invalid_table", 
+    public void assertBuildWithNotExistedTableName() throws SQLException {
+        assertFalse(TableMetaDataBuilder.build("invalid_table", 
                 databaseType, Collections.singletonMap("logic_db", 
dataSource), Arrays.asList(new CommonFixtureRule(), new 
DataNodeContainedFixtureRule()), props).isPresent());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/ColumnMetaDataLoaderTest.java
similarity index 92%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/ColumnMetaDataLoaderTest.java
index f27fa65..f8a4218 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/ColumnMetaDataLoaderTest.java
@@ -15,9 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.physical;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.ColumnMetaDataLoader;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.junit.Before;
 import org.junit.Test;
@@ -41,7 +42,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class PhysicalColumnMetaDataLoaderTest {
+public final class ColumnMetaDataLoaderTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Connection connection;
@@ -79,7 +80,7 @@ public final class PhysicalColumnMetaDataLoaderTest {
     
     @Test
     public void assertLoad() throws SQLException {
-        Collection<ColumnMetaData> actual = 
PhysicalColumnMetaDataLoader.load(connection, "tbl", mock(DatabaseType.class));
+        Collection<ColumnMetaData> actual = 
ColumnMetaDataLoader.load(connection, "tbl", mock(DatabaseType.class));
         assertThat(actual.size(), is(2));
         Iterator<ColumnMetaData> columnMetaDataIterator = actual.iterator();
         assertColumnMetaData(columnMetaDataIterator.next(), "pk_col", 
Types.INTEGER, "INT", true, true);
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/IndexMetaDataLoaderTest.java
similarity index 88%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/IndexMetaDataLoaderTest.java
index bd150c4..199cc00 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/IndexMetaDataLoaderTest.java
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.physical;
 
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.IndexMetaDataLoader;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,11 +35,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class PhysicalIndexMetaDataLoaderTest {
+public final class IndexMetaDataLoaderTest {
     
     @Test
     public void assertLoad() throws SQLException {
-        Collection<IndexMetaData> actual = 
PhysicalIndexMetaDataLoader.load(mockConnection(), "tbl");
+        Collection<IndexMetaData> actual = 
IndexMetaDataLoader.load(mockConnection(), "tbl");
         assertThat(actual.size(), is(1));
         IndexMetaData indexMetaData = actual.iterator().next();
         assertThat(indexMetaData.getName(), is("my_index"));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/SchemaMetaDataLoaderTest.java
similarity index 86%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/SchemaMetaDataLoaderTest.java
index 8674df5..8779608 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/SchemaMetaDataLoaderTest.java
@@ -15,9 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.physical;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.SchemaMetaDataLoader;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -36,7 +37,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class PhysicalSchemaMetaDataLoaderTest {
+public final class SchemaMetaDataLoaderTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private DataSource dataSource;
@@ -57,6 +58,6 @@ public final class PhysicalSchemaMetaDataLoaderTest {
     
     @Test
     public void assertLoadAllTableNames() throws SQLException {
-        assertThat(PhysicalSchemaMetaDataLoader.loadAllTableNames(dataSource, 
mock(DatabaseType.class)), is(Collections.singletonList("tbl")));
+        assertThat(SchemaMetaDataLoader.loadAllTableNames(dataSource, 
mock(DatabaseType.class)), is(Collections.singletonList("tbl")));
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/TableMetaDataLoaderTest.java
similarity index 92%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/TableMetaDataLoaderTest.java
index b26314c..f563586 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/TableMetaDataLoaderTest.java
@@ -15,9 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
+package org.apache.shardingsphere.infra.metadata.schema.builder.physical;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.TableMetaDataLoader;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
@@ -45,7 +46,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class PhysicalTableMetaDataLoaderTest {
+public final class TableMetaDataLoaderTest {
     
     private static final String TEST_CATALOG = "catalog";
     
@@ -101,7 +102,7 @@ public final class PhysicalTableMetaDataLoaderTest {
     
     @Test
     public void assertLoadWithExistedTable() throws SQLException {
-        Optional<TableMetaData> actual = 
PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE, 
mock(DatabaseType.class));
+        Optional<TableMetaData> actual = TableMetaDataLoader.load(dataSource, 
TEST_TABLE, mock(DatabaseType.class));
         assertTrue(actual.isPresent());
         Map<String, ColumnMetaData> columnMetaDataMap = 
actual.get().getColumns();
         assertThat(columnMetaDataMap.size(), is(2));
@@ -124,6 +125,6 @@ public final class PhysicalTableMetaDataLoaderTest {
     public void assertLoadWithNotExistedTable() throws SQLException {
         when(dataSource.getConnection().getMetaData().getTables(TEST_CATALOG, 
null, TEST_TABLE, null)).thenReturn(tableNotExistResultSet);
         when(tableNotExistResultSet.next()).thenReturn(false);
-        assertFalse(PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE, 
mock(DatabaseType.class)).isPresent());
+        assertFalse(TableMetaDataLoader.load(dataSource, TEST_TABLE, 
mock(DatabaseType.class)).isPresent());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
similarity index 95%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
index dad7975..1253754 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
@@ -15,10 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.adapter;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.adapter.MetaDataLoaderConnectionAdapter;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
similarity index 89%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
index 6afb89d..f112d59 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,12 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect;
 
 import lombok.Getter;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
similarity index 87%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
index 056dc2c..436fe3e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
@@ -15,9 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
index 94c90a0..b596344 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -25,6 +25,8 @@ import 
org.apache.shardingsphere.infra.database.type.dialect.OracleDatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
 import org.apache.shardingsphere.infra.database.type.dialect.SQL92DatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.SQLServerDatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandler;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.DatabaseMetaDataDialectHandlerFactory;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
index 9ee7d7a..73649b5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
index be5225a..5fa1974 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import 
org.apache.shardingsphere.infra.database.type.dialect.MariaDBDatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
index 3d3a9f6..e797061 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
index a0ddbb3..28eca84 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import 
org.apache.shardingsphere.infra.database.type.dialect.OracleDatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
index 0a9c94e..0b7f144 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
index b16212b..cd06d03 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import org.apache.shardingsphere.infra.database.type.dialect.SQL92DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
index eb9d89f..716aeb5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
+package 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.impl;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.SQLServerDatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Before;
 import org.junit.Test;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureLogicMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureTableMetaDataBuilder.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureLogicMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureTableMetaDataBuilder.java
index 58517bc..1ded7f5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureLogicMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/CommonFixtureTableMetaDataBuilder.java
@@ -21,14 +21,14 @@ import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
 import 
org.apache.shardingsphere.infra.metadata.schema.fixture.rule.CommonFixtureRule;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 
 import javax.sql.DataSource;
 import java.util.Map;
 import java.util.Optional;
 
-public final class CommonFixtureLogicMetaDataLoader implements 
ShardingSphereMetaDataLoader<CommonFixtureRule> {
+public final class CommonFixtureTableMetaDataBuilder implements 
RuleBasedTableMetaDataBuilder<CommonFixtureRule> {
     
     @Override
     public Optional<TableMetaData> load(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureLogicMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureRuleBasedTableMetaDataBuilder.java
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureLogicMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureRuleBasedTableMetaDataBuilder.java
index a0d901a..6705cea 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureLogicMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/fixture/loader/DataNodeContainedFixtureRuleBasedTableMetaDataBuilder.java
@@ -21,7 +21,7 @@ import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNodes;
 import 
org.apache.shardingsphere.infra.metadata.schema.fixture.rule.DataNodeContainedFixtureRule;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 
@@ -30,7 +30,7 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.Optional;
 
-public final class DataNodeContainedFixtureLogicMetaDataLoader implements 
ShardingSphereMetaDataLoader<DataNodeContainedFixtureRule> {
+public final class DataNodeContainedFixtureRuleBasedTableMetaDataBuilder 
implements RuleBasedTableMetaDataBuilder<DataNodeContainedFixtureRule> {
     
     @Override
     public Optional<TableMetaData> load(final String tableName, final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
similarity index 91%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
index 0ddcff9..48af6a4 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.ShardingSphereMetaDataLoader
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
@@ -15,5 +15,5 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.metadata.schema.fixture.loader.CommonFixtureLogicMetaDataLoader
-org.apache.shardingsphere.infra.metadata.schema.fixture.loader.DataNodeContainedFixtureLogicMetaDataLoader
+org.apache.shardingsphere.infra.metadata.schema.fixture.loader.CommonFixtureTableMetaDataBuilder
+org.apache.shardingsphere.infra.metadata.schema.fixture.loader.DataNodeContainedFixtureRuleBasedTableMetaDataBuilder
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
index f844d4b..a3316cf 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
@@ -31,7 +31,7 @@ import 
org.apache.shardingsphere.infra.metadata.resource.CachedDatabaseMetaData;
 import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData;
 import 
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.loader.SchemaLoader;
+import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.builder.ShardingSphereRulesBuilder;
@@ -131,7 +131,7 @@ public final class MetaDataContextsBuilder {
     
     private ShardingSphereSchema buildSchema(final String schemaName, final 
Map<String, DataSource> dataSourceMap, final Collection<ShardingSphereRule> 
rules) throws SQLException {
         long start = System.currentTimeMillis();
-        ShardingSphereSchema result = SchemaLoader.load(databaseType, 
dataSourceMap, rules, props);
+        ShardingSphereSchema result = SchemaBuilder.build(databaseType, 
dataSourceMap, rules, props);
         log.info("Load meta data for schema {} finished, cost {} 
milliseconds.", schemaName, System.currentTimeMillis() - start);
         return result;
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
index d653217..2ab84a6 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.StatementExec
 import 
org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.executor.SQLExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.executor.SQLExecutorCallback;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.TableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
 import 
org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategyFactory;
@@ -84,7 +84,7 @@ public abstract class AbstractStatementExecutor {
         if (refreshStrategy.isPresent()) {
             Collection<String> routeDataSourceNames = 
routeUnits.stream().map(RouteUnit::getDataSourceMapper).map(RouteMapper::getLogicName).collect(Collectors.toList());
             refreshStrategy.get().refreshMetaData(metaData.getSchema(), 
metaDataContexts.getDatabaseType(), routeDataSourceNames, sqlStatement, 
-                tableName -> TableMetaDataLoader.load(tableName, 
metaDataContexts.getDatabaseType(), dataSourceMap, 
metaData.getRuleMetaData().getRules(), metaDataContexts.getProps()));
+                tableName -> TableMetaDataBuilder.build(tableName, 
metaDataContexts.getDatabaseType(), dataSourceMap, 
metaData.getRuleMetaData().getRules(), metaDataContexts.getProps()));
             notifyPersistSchema(DefaultSchema.LOGIC_NAME, 
metaData.getSchema());
         }
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index 95f49a9..7bded78 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -31,7 +31,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.raw.execute.result.query.Que
 import org.apache.shardingsphere.infra.merge.MergeEngine;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.TableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
 import 
org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategyFactory;
@@ -105,13 +105,13 @@ public final class JDBCDatabaseCommunicationEngine 
implements DatabaseCommunicat
         Optional<MetaDataRefreshStrategy> refreshStrategy = 
MetaDataRefreshStrategyFactory.newInstance(sqlStatement);
         if (refreshStrategy.isPresent()) {
             refreshStrategy.get().refreshMetaData(
-                    metaData.getSchema(), 
ProxyContext.getInstance().getMetaDataContexts().getDatabaseType(), 
routeDataSourceNames, sqlStatement, this::loadTableMetaData);
+                    metaData.getSchema(), 
ProxyContext.getInstance().getMetaDataContexts().getDatabaseType(), 
routeDataSourceNames, sqlStatement, this::buildTableMetaData);
             GovernanceEventBus.getInstance().post(new 
SchemaPersistEvent(metaData.getName(), metaData.getSchema()));
         }
     }
     
-    private Optional<TableMetaData> loadTableMetaData(final String tableName) 
throws SQLException {
-        return TableMetaDataLoader.load(tableName, 
ProxyContext.getInstance().getMetaDataContexts().getDatabaseType(), 
+    private Optional<TableMetaData> buildTableMetaData(final String tableName) 
throws SQLException {
+        return TableMetaDataBuilder.build(tableName, 
ProxyContext.getInstance().getMetaDataContexts().getDatabaseType(), 
                 metaData.getResource().getDataSources(), 
metaData.getRuleMetaData().getRules(), 
ProxyContext.getInstance().getMetaDataContexts().getProps());
     }
     
diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/metadata/MetaDataManager.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/metadata/MetaDataManager.java
index 1ea16ec..b914b4f 100755
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/metadata/MetaDataManager.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/metadata/MetaDataManager.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.scaling.core.metadata;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.PhysicalTableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.builder.loader.TableMetaDataLoader;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
@@ -46,7 +46,7 @@ public final class MetaDataManager {
     public TableMetaData getTableMetaData(final String tableName) {
         if (!tableMetaDataMap.containsKey(tableName)) {
             try {
-                PhysicalTableMetaDataLoader.load(dataSource, tableName, 
DatabaseTypeRegistry.getActualDatabaseType("MySQL")).ifPresent(tableMetaData -> 
tableMetaDataMap.put(tableName, tableMetaData));
+                TableMetaDataLoader.load(dataSource, tableName, 
DatabaseTypeRegistry.getActualDatabaseType("MySQL")).ifPresent(tableMetaData -> 
tableMetaDataMap.put(tableName, tableMetaData));
             } catch (final SQLException ex) {
                 throw new RuntimeException(String.format("Load metaData for 
table %s failed", tableName), ex);
             }

Reply via email to