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