You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2020/02/07 14:26:37 UTC

[kylin] 42/44: Minor, add class TableDesc.TableProject to avoid the use of Pair

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

nic pushed a commit to branch 3.0.x
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 3b5584890a5f413a112292a5f2e940f8872f0efb
Author: nichunen <ni...@apache.org>
AuthorDate: Sat Feb 1 17:06:12 2020 +0800

    Minor, add class TableDesc.TableProject to avoid the use of Pair
---
 .../kylin/metadata/TableMetadataManager.java       |  14 +--
 .../org/apache/kylin/metadata/model/TableDesc.java |  31 ++++-
 .../apache/kylin/metadata/model/TableExtDesc.java  | 130 ++++++++++-----------
 .../org/apache/kylin/tool/CubeMigrationCLI.java    |   4 +-
 4 files changed, 96 insertions(+), 83 deletions(-)

diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
index ce3017f..688e377 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
@@ -35,7 +35,6 @@ import org.apache.kylin.common.persistence.Serializer;
 import org.apache.kylin.common.util.AutoReadWriteLock;
 import org.apache.kylin.common.util.AutoReadWriteLock.AutoLock;
 import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.cachesync.Broadcaster;
 import org.apache.kylin.metadata.cachesync.Broadcaster.Event;
@@ -43,6 +42,7 @@ import org.apache.kylin.metadata.cachesync.CachedCrudAssist;
 import org.apache.kylin.metadata.cachesync.CaseInsensitiveStringCache;
 import org.apache.kylin.metadata.model.ExternalFilterDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TableDesc.TableProject;
 import org.apache.kylin.metadata.model.TableExtDesc;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.metadata.project.ProjectManager;
@@ -118,7 +118,7 @@ public class TableMetadataManager {
                 TableDesc.class, srcTableMap) {
             @Override
             protected TableDesc initEntityAfterReload(TableDesc t, String resourceName) {
-                String prj = TableDesc.parseResourcePath(resourceName).getSecond();
+                String prj = TableDesc.parseResourcePath(resourceName).getProject();
                 t.init(config, prj);
                 return t;
             }
@@ -138,9 +138,9 @@ public class TableMetadataManager {
                     srcTableCrud.reloadQuietly(cacheKey);
             }
 
-            Pair<String, String> pair = TableDesc.parseResourcePath(cacheKey);
-            String table = pair.getFirst();
-            String prj = pair.getSecond();
+            TableProject tableProject = TableDesc.parseResourcePath(cacheKey);
+            String table = tableProject.getTable();
+            String prj = tableProject.getProject();
 
             if (prj == null) {
                 for (ProjectInstance p : ProjectManager.getInstance(config).findProjectsByTable(table)) {
@@ -299,7 +299,7 @@ public class TableMetadataManager {
                     t = convertOldTableExtToNewer(resourceName);
                 }
 
-                String prj = TableDesc.parseResourcePath(resourceName).getSecond();
+                String prj = TableDesc.parseResourcePath(resourceName).getProject();
                 t.init(prj);
                 return t;
             }
@@ -424,7 +424,7 @@ public class TableMetadataManager {
         String cardinality = attrs.get(MetadataConstants.TABLE_EXD_CARDINALITY);
 
         // parse table identity from file name
-        String tableIdentity = TableDesc.parseResourcePath(resourceName).getFirst();
+        String tableIdentity = TableDesc.parseResourcePath(resourceName).getTable();
         TableExtDesc result = new TableExtDesc();
         result.setIdentity(tableIdentity);
         result.setUuid(RandomUtil.randomUUID().toString());
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
index c1f08a9..e505a9f 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
@@ -50,6 +50,32 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware {
 
     private static final String TABLE_TYPE_VIRTUAL_VIEW = "VIRTUAL_VIEW";
 
+    public static class TableProject {
+       private String table;
+       private String project;
+
+        TableProject(String table, String project) {
+            this.table = table;
+            this.project = project;
+        }
+
+        public String getTable() {
+            return table;
+        }
+
+        public void setTable(String table) {
+            this.table = table;
+        }
+
+        public String getProject() {
+            return project;
+        }
+
+        public void setProject(String project) {
+            this.project = project;
+        }
+    }
+
     public static String concatRawResourcePath(String nameOnPath) {
         return ResourceStore.TABLE_RESOURCE_ROOT + "/" + nameOnPath + ".json";
     }
@@ -64,8 +90,7 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware {
         return concatRawResourcePath(makeResourceName(tableIdentity, prj));
     }
 
-    // returns <table, project>
-    public static Pair<String, String> parseResourcePath(String path) {
+    public static TableProject parseResourcePath(String path) {
         if (path.endsWith(".json"))
             path = path.substring(0, path.length() - ".json".length());
 
@@ -83,7 +108,7 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware {
             table = path;
             prj = null;
         }
-        return Pair.newPair(table, prj);
+        return new TableProject(table, prj);
     }
 
     // ============================================================================
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
index 7e9e8d0..8853908 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java
@@ -28,7 +28,6 @@ import java.util.Map;
 
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.common.util.Pair;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonBackReference;
@@ -39,34 +38,18 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
 public class TableExtDesc extends RootPersistentEntity {
 
-    public static String concatRawResourcePath(String nameOnPath) {
-        return ResourceStore.TABLE_EXD_RESOURCE_ROOT + "/" + nameOnPath + ".json";
-    }
-
-    public static String concatResourcePath(String tableIdentity, String prj) {
-        return concatRawResourcePath(TableDesc.makeResourceName(tableIdentity, prj));
-    }
-
-    // returns <table, project>
-    public static Pair<String, String> parseResourcePath(String path) {
-        return TableDesc.parseResourcePath(path);
-    }
-    
-    // ============================================================================
-
     @JsonProperty("table_name")
     private String tableIdentity;
     @JsonProperty("last_build_job_id")
     private String jodID;
-
     @JsonProperty("frequency")
     private int frequency;
+
+    // ============================================================================
     @JsonProperty("columns_stats")
     private List<ColumnStats> columnStats = new ArrayList<>();
-
     @JsonProperty("sample_rows")
     private List<String[]> sampleRows = new ArrayList<>();
-
     @JsonProperty("last_modified_time")
     private long lastModifiedTime;
     @JsonProperty("total_rows")
@@ -75,17 +58,22 @@ public class TableExtDesc extends RootPersistentEntity {
     private List<Long> mapRecords = new ArrayList<>();
     @JsonProperty("data_source_properties")
     private Map<String, String> dataSourceProps = new HashMap<>();
-
     private String project;
-
     public TableExtDesc() {
     }
 
+    public static String concatRawResourcePath(String nameOnPath) {
+        return ResourceStore.TABLE_EXD_RESOURCE_ROOT + "/" + nameOnPath + ".json";
+    }
+
+    public static String concatResourcePath(String tableIdentity, String prj) {
+        return concatRawResourcePath(TableDesc.makeResourceName(tableIdentity, prj));
+    }
     @Override
     public String resourceName() {
         return TableDesc.makeResourceName(getIdentity(), getProject());
     }
-    
+
     public String getResourcePath() {
         return concatResourcePath(getIdentity(), getProject());
     }
@@ -106,10 +94,18 @@ public class TableExtDesc extends RootPersistentEntity {
         return this.tableIdentity;
     }
 
+    public void setIdentity(String name) {
+        this.tableIdentity = name;
+    }
+
     public String getJodID() {
         return this.jodID;
     }
 
+    public void setJodID(String jobID) {
+        this.jodID = jobID;
+    }
+
     public void addDataSourceProp(String key, String value) {
         this.dataSourceProps.put(key, value);
     }
@@ -118,22 +114,22 @@ public class TableExtDesc extends RootPersistentEntity {
         return this.dataSourceProps;
     }
 
-    public void setSampleRows(List<String[]> sampleRows) {
-        this.sampleRows = sampleRows;
-    }
-
     public List<String[]> getSampleRows() {
         return this.sampleRows;
     }
 
-    public void setMapRecords(List<Long> mapRecords) {
-        this.mapRecords = mapRecords;
+    public void setSampleRows(List<String[]> sampleRows) {
+        this.sampleRows = sampleRows;
     }
 
     public List<Long> getMapRecords() {
         return this.mapRecords;
     }
 
+    public void setMapRecords(List<Long> mapRecords) {
+        this.mapRecords = mapRecords;
+    }
+
     public String getCardinality() {
 
         StringBuffer cardinality = new StringBuffer();
@@ -144,14 +140,6 @@ public class TableExtDesc extends RootPersistentEntity {
         return cardinality.toString();
     }
 
-    public void resetCardinality() {
-        int columnSize = this.columnStats.size();
-        this.columnStats.clear();
-        for (int i = 0; i < columnSize; i++) {
-            this.columnStats.add(new ColumnStats());
-        }
-    }
-
     public void setCardinality(String cardinality) {
         if (null == cardinality)
             return;
@@ -174,6 +162,14 @@ public class TableExtDesc extends RootPersistentEntity {
         }
     }
 
+    public void resetCardinality() {
+        int columnSize = this.columnStats.size();
+        this.columnStats.clear();
+        for (int i = 0; i < columnSize; i++) {
+            this.columnStats.add(new ColumnStats());
+        }
+    }
+
     public List<ColumnStats> getColumnStats() {
         return this.columnStats;
     }
@@ -183,20 +179,12 @@ public class TableExtDesc extends RootPersistentEntity {
         this.columnStats = columnStats;
     }
 
-    public void setTotalRows(long totalRows) {
-        this.totalRows = totalRows;
-    }
-
     public long getTotalRows() {
         return this.totalRows;
     }
 
-    public void setIdentity(String name) {
-        this.tableIdentity = name;
-    }
-
-    public void setJodID(String jobID) {
-        this.jodID = jobID;
+    public void setTotalRows(long totalRows) {
+        this.totalRows = totalRows;
     }
 
     public void init(String project) {
@@ -206,14 +194,14 @@ public class TableExtDesc extends RootPersistentEntity {
             this.tableIdentity = this.tableIdentity.toUpperCase(Locale.ROOT);
     }
 
-    public void setLastModifiedTime(long lastModifiedTime) {
-        this.lastModifiedTime = lastModifiedTime;
-    }
-
     public long getLastModifiedTime() {
         return this.lastModifiedTime;
     }
 
+    public void setLastModifiedTime(long lastModifiedTime) {
+        this.lastModifiedTime = lastModifiedTime;
+    }
+
     public boolean isPartitioned() {
         return this.dataSourceProps.get("partition_column") == null ? false
                 : !this.dataSourceProps.get("partition_column").isEmpty();
@@ -278,86 +266,86 @@ public class TableExtDesc extends RootPersistentEntity {
         @JsonProperty("data_skew_samples")
         private Map<String, Long> dataSkewSamples = new HashMap<>();
 
+        public ColumnStats() {
+        }
+
         @Override
         public int compareTo(ColumnStats o) {
             return 0;
         }
 
-        public ColumnStats() {
+        public String getExceedPrecisionMaxLengthValue() {
+            return this.exceedPrecisionMaxLengthValue;
         }
 
         public void setExceedPrecisionMaxLengthValue(String value) {
             this.exceedPrecisionMaxLengthValue = value;
         }
 
-        public String getExceedPrecisionMaxLengthValue() {
-            return this.exceedPrecisionMaxLengthValue;
+        public long getExceedPrecisionCount() {
+            return this.exceedPrecisionCount;
         }
 
         public void setExceedPrecisionCount(long exceedPrecisionCount) {
             this.exceedPrecisionCount = exceedPrecisionCount;
         }
 
-        public long getExceedPrecisionCount() {
-            return this.exceedPrecisionCount;
+        public String getColumnName() {
+            return this.columnName;
         }
 
         public void setColumnName(String columnName) {
             this.columnName = columnName;
         }
 
-        public String getColumnName() {
-            return this.columnName;
+        public String getMaxValue() {
+            return this.maxValue;
         }
 
         public void setMaxValue(String maxValue) {
             this.maxValue = maxValue;
         }
 
-        public String getMaxValue() {
-            return this.maxValue;
+        public String getMinValue() {
+            return this.minValue;
         }
 
         public void setMinValue(String minValue) {
             this.minValue = minValue;
         }
 
-        public String getMinValue() {
-            return this.minValue;
+        public String getMaxLengthValue() {
+            return this.maxLengthValue;
         }
 
         public void setMaxLengthValue(String maxLengthValue) {
             this.maxLengthValue = maxLengthValue;
         }
 
-        public String getMaxLengthValue() {
-            return this.maxLengthValue;
+        public String getMinLengthValue() {
+            return this.minLengthValue;
         }
 
         public void setMinLengthValue(String minLengthValue) {
             this.minLengthValue = minLengthValue;
         }
 
-        public String getMinLengthValue() {
-            return this.minLengthValue;
+        public long getCardinality() {
+            return this.cardinality;
         }
 
         public void setCardinality(long cardinality) {
             this.cardinality = cardinality;
         }
 
-        public long getCardinality() {
-            return this.cardinality;
+        public Map<String, Long> getDataSkewSamples() {
+            return this.dataSkewSamples;
         }
 
         public void setDataSkewSamples(Map<String, Long> dataSkewSamples) {
             this.dataSkewSamples = dataSkewSamples;
         }
 
-        public Map<String, Long> getDataSkewSamples() {
-            return this.dataSkewSamples;
-        }
-
         public void setColumnSamples(String max, String min, String maxLenValue, String minLenValue) {
             this.maxValue = max;
             this.minValue = min;
diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java
index 472be42..ce3b203 100644
--- a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java
+++ b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java
@@ -296,7 +296,7 @@ public class CubeMigrationCLI extends AbstractApplication {
             for (TableRef tableRef : tableRefs) {
                 String tableId = tableRef.getTableIdentity();
                 if (path.contains(tableId)) {
-                    String prj = TableDesc.parseResourcePath(path).getSecond();
+                    String prj = TableDesc.parseResourcePath(path).getProject();
                     if (prj == null && tableMap.get(tableId) == null)
                         tableMap.put(tableRef.getTableIdentity(), path);
 
@@ -635,7 +635,7 @@ public class CubeMigrationCLI extends AbstractApplication {
     
     private String renameTableWithinProject(String srcItem) {
         if (dstProject != null && srcItem.contains(ResourceStore.TABLE_RESOURCE_ROOT)) {
-            String tableIdentity = TableDesc.parseResourcePath(srcItem).getFirst();
+            String tableIdentity = TableDesc.parseResourcePath(srcItem).getTable();
             if (srcItem.contains(ResourceStore.TABLE_EXD_RESOURCE_ROOT))
                 return TableExtDesc.concatResourcePath(tableIdentity, dstProject);
             else