You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/01/13 06:31:10 UTC
kylin git commit: KYLIN-1312 Enhance DeployCoprocessorCLI to support
Cube names filter
Repository: kylin
Updated Branches:
refs/heads/2.0-rc 1d568c06c -> 74401bedf
KYLIN-1312 Enhance DeployCoprocessorCLI to support Cube names filter
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/74401bed
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/74401bed
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/74401bed
Branch: refs/heads/2.0-rc
Commit: 74401bedffec9de848298f36168cbf691df31638
Parents: 1d568c0
Author: lidongsjtu <do...@ebay.com>
Authored: Wed Jan 13 13:30:42 2016 +0800
Committer: lidongsjtu <do...@ebay.com>
Committed: Wed Jan 13 13:30:49 2016 +0800
----------------------------------------------------------------------
.../hbase/util/DeployCoprocessorCLI.java | 60 ++++++++++++++------
1 file changed, 43 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/74401bed/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
index 1cdb9e9..101abc2 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
@@ -79,13 +79,20 @@ public class DeployCoprocessorCLI {
List<String> tableNames = getHTableNames(kylinConfig);
logger.info("Identify tables " + tableNames);
-
- if (args.length == 1) {
- logger.info("Probe run, existing. Append argument 'all' or specific tables to execute.");
- System.exit(0);
+
+ if (args.length <= 1) {
+ printUsageAndExit();
}
-
- tableNames = filterTables(tableNames, Arrays.asList(args).subList(1, args.length));
+
+ String filterType = args[1].toLowerCase();
+ if (filterType.equals("-table")) {
+ tableNames = filterByTables(tableNames, Arrays.asList(args).subList(2, args.length));
+ } else if (filterType.equals("-cube")) {
+ tableNames = filterByCubes(tableNames, Arrays.asList(args).subList(2, args.length));
+ } else if (!filterType.equals("all")) {
+ printUsageAndExit();
+ }
+
logger.info("Will execute tables " + tableNames);
Set<String> oldJarPaths = getCoprocessorJarPaths(hbaseAdmin, tableNames);
@@ -105,19 +112,38 @@ public class DeployCoprocessorCLI {
logger.info("Active coprocessor jar: " + hdfsCoprocessorJar);
}
- private static List<String> filterTables(List<String> tableNames, List<String> list) {
+ private static void printUsageAndExit() {
+ logger.info("Probe run, exiting. Append argument 'all' or specific tables/cubes to execute.");
+ System.exit(0);
+ }
+
+ private static List<String> filterByCubes(List<String> allTableNames, List<String> cubeNames) {
+ CubeManager cubeManager = CubeManager.getInstance(KylinConfig.getInstanceFromEnv());
+ List<String> result = Lists.newArrayList();
+ for (String c : cubeNames) {
+ c = c.trim();
+ if (c.endsWith(","))
+ c = c.substring(0, c.length() - 1);
+
+ CubeInstance cubeInstance = cubeManager.getCube(c);
+ for (CubeSegment segment : cubeInstance.getSegments()) {
+ String tableName = segment.getStorageLocationIdentifier();
+ if (allTableNames.contains(tableName)) {
+ result.add(tableName);
+ }
+ }
+ }
+ return result;
+ }
+
+ private static List<String> filterByTables(List<String> allTableNames, List<String> tableNames) {
List<String> result = Lists.newArrayList();
- for (String t : list) {
+ for (String t : tableNames) {
t = t.trim();
if (t.endsWith(","))
t = t.substring(0, t.length() - 1);
- if (t.equals("all")) {
- result.addAll(tableNames);
- break;
- }
-
- if (tableNames.contains(t)) {
+ if (allTableNames.contains(t)) {
result.add(t);
}
}
@@ -312,9 +338,9 @@ public class DeployCoprocessorCLI {
}
String jarPath = valueMatcher.group(1).trim();
- if (StringUtils.isNotEmpty(jarPath)) {
- result.add(jarPath);
- }
+ if (StringUtils.isNotEmpty(jarPath)) {
+ result.add(jarPath);
+ }
}
}