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 <[email protected]> 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
