kylin git commit: minor, sub_query/query02.sql fix CI
Repository: kylin Updated Branches: refs/heads/master 911bdd00a -> f2377db9f minor, sub_query/query02.sql fix CI Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/f2377db9 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/f2377db9 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/f2377db9 Branch: refs/heads/master Commit: f2377db9ff2687098c0bd8a805449547b7dcd436 Parents: 911bdd0 Author: Li YangAuthored: Fri Dec 16 15:53:30 2016 +0800 Committer: Li Yang Committed: Fri Dec 16 15:53:30 2016 +0800 -- .../org/apache/kylin/dimension/DimensionEncodingFactory.java | 2 +- .../java/org/apache/kylin/metadata/model/DataModelDesc.java | 4 ++-- kylin-it/src/test/resources/query/sql_subquery/query02.sql | 8 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java index 4954ead..3eddba7 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java @@ -71,7 +71,7 @@ public abstract class DimensionEncodingFactory { if (factoryMap == null) initFactoryMap(); -Map result = Maps.newHashMap(); +Map result = Maps.newTreeMap(); for (Pair p : factoryMap.keySet()) { if (result.containsKey(p.getFirst())) { if (result.get(p.getFirst()) > p.getSecond()) { http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java index 0b494e3..571b196 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java @@ -393,7 +393,7 @@ public class DataModelDesc extends RootPersistentEntity { col = findColumn(pks[i]); } if (col == null || col.getTableRef().equals(dimTable) == false) { -throw new IllegalStateException("Can't find column " + pks[i] + " in table " + dimTable.getTableIdentity()); +throw new IllegalStateException("Can't find PK column " + pks[i] + " in table " + dimTable); } pks[i] = col.getIdentity(); pkCols[i] = col; @@ -406,7 +406,7 @@ public class DataModelDesc extends RootPersistentEntity { for (int i = 0; i < fks.length; i++) { TblColRef col = findColumn(fks[i]); if (col == null) { -throw new IllegalStateException("Can't find column " + fks[i] + " in table " + this.getRootFactTable()); +throw new IllegalStateException("Can't find FK column " + fks[i]); } fks[i] = col.getIdentity(); fkCols[i] = col; http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/kylin-it/src/test/resources/query/sql_subquery/query02.sql -- diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql b/kylin-it/src/test/resources/query/sql_subquery/query02.sql index e6751b7..b0dcf73 100644 --- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql +++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql @@ -25,7 +25,11 @@ FROM test_cal_dt.week_beg_dt ,test_kylin_fact.price from test_kylin_fact - inner join edw.test_cal_dt as test_cal_dt -on test_kylin_fact.cal_dt = test_cal_dt.cal_dt +inner JOIN edw.test_cal_dt as test_cal_dt + ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt +inner JOIN test_category_groupings + ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id AND test_kylin_fact.lstg_site_id = test_category_groupings.site_id +inner JOIN edw.test_sites as test_sites + ON test_kylin_fact.lstg_site_id = test_sites.site_id inner join edw.test_cal_dt as test_cal_dt ) t group by week_beg_dt
[3/3] kylin git commit: KYLIN-1672 support kylin on cdh 5.7
KYLIN-1672 support kylin on cdh 5.7 Signed-off-by: Li YangProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/f11fecb5 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/f11fecb5 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/f11fecb5 Branch: refs/heads/yang22-cdh5.7 Commit: f11fecb5ce23b7c6b9f931636ebc735ff464386b Parents: c33fa8c Author: Lynne Jiang Authored: Mon May 16 03:33:27 2016 -0700 Committer: Billy Liu Committed: Fri Dec 16 15:25:22 2016 +0800 -- dev-support/test_all_against_hdp_2_2_4_2_2.sh | 0 .../kylin/engine/mr/steps/MockupMapContext.java | 15 +- examples/test_case_data/sandbox/core-site.xml | 146 +++--- examples/test_case_data/sandbox/hbase-site.xml | 162 ++ examples/test_case_data/sandbox/hdfs-site.xml | 259 ++ examples/test_case_data/sandbox/mapred-site.xml | 398 ++- examples/test_case_data/sandbox/yarn-site.xml | 496 ++- pom.xml | 16 +- server/pom.xml | 36 ++ .../storage/hbase/steps/MockupMapContext.java | 19 +- tool/pom.xml| 12 + 11 files changed, 428 insertions(+), 1131 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/dev-support/test_all_against_hdp_2_2_4_2_2.sh -- diff --git a/dev-support/test_all_against_hdp_2_2_4_2_2.sh b/dev-support/test_all_against_hdp_2_2_4_2_2.sh old mode 100644 new mode 100755 http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java -- diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java index 847071d..9900465 100644 --- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java +++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java @@ -77,6 +77,7 @@ public class MockupMapContext { outKV[0] = key; outKV[1] = value; } + } @Override @@ -99,6 +100,7 @@ public class MockupMapContext { throw new NotImplementedException(); } + @Override public float getProgress() { throw new NotImplementedException(); @@ -195,17 +197,17 @@ public class MockupMapContext { } @Override -public RawComparator getSortComparator() { +public boolean userClassesTakesPrecedence() { throw new NotImplementedException(); } @Override -public String getJar() { +public RawComparator getSortComparator() { throw new NotImplementedException(); } @Override -public RawComparator getGroupingComparator() { +public String getJar() { throw new NotImplementedException(); } @@ -221,7 +223,7 @@ public class MockupMapContext { @Override public boolean getProfileEnabled() { -throw new NotImplementedException(); +return false; } @Override @@ -308,6 +310,11 @@ public class MockupMapContext { public RawComparator getCombinerKeyGroupingComparator() { throw new NotImplementedException(); } + +@Override +public RawComparator getGroupingComparator() { +return null; +} }); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/examples/test_case_data/sandbox/core-site.xml -- diff --git a/examples/test_case_data/sandbox/core-site.xml b/examples/test_case_data/sandbox/core-site.xml index 9aa588c..6162406 100644 --- a/examples/test_case_data/sandbox/core-site.xml +++ b/examples/test_case_data/sandbox/core-site.xml @@ -14,152 +14,146 @@ See the License for the specific language governing permissions and limitations under the License. --> + - fs.defaultFS -hdfs://sandbox.hortonworks.com:8020 -true +hdfs://quickstart.cloudera:8020 - fs.trash.interval -360 +1 - - ha.failover-controller.active-standby-elector.zk.op.retries -120 +io.compression.codecs +
[2/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c33fa8c9 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c33fa8c9 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c33fa8c9 Branch: refs/heads/yang22-cdh5.7 Commit: c33fa8c9d45bbf306c032a3406d463028864c824 Parents: ed497fe Author: shaofengshiAuthored: Wed Mar 23 17:07:05 2016 +0800 Committer: Billy Liu Committed: Fri Dec 16 15:23:43 2016 +0800 -- examples/test_case_data/sandbox/hbase-site.xml | 19 +--- .../kylin/provision/BuildCubeWithEngine.java| 12 +-- pom.xml | 12 +-- .../kylin/rest/security/AclHBaseStorage.java| 4 +- .../rest/security/MockAclHBaseStorage.java | 8 +- .../apache/kylin/rest/security/MockHTable.java | 95 .../rest/security/RealAclHBaseStorage.java | 9 +- .../apache/kylin/rest/service/AclService.java | 25 +++--- .../apache/kylin/rest/service/CubeService.java | 35 +++- .../apache/kylin/rest/service/QueryService.java | 24 +++-- .../apache/kylin/rest/service/UserService.java | 17 ++-- .../kylin/storage/hbase/HBaseConnection.java| 44 - .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++ .../kylin/storage/hbase/HBaseStorage.java | 3 +- .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++--- .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +-- .../storage/hbase/cube/v1/CubeStorageQuery.java | 4 +- .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++- .../cube/v1/SerializedHBaseTupleIterator.java | 4 +- .../observer/AggregateRegionObserver.java | 4 +- .../observer/AggregationScanner.java| 14 ++- .../observer/ObserverAggregationCache.java | 10 ++- .../coprocessor/observer/ObserverEnabler.java | 4 +- .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +-- .../storage/hbase/cube/v2/CubeHBaseScanRPC.java | 9 +- .../coprocessor/endpoint/CubeVisitService.java | 4 +- .../storage/hbase/steps/CubeHTableUtil.java | 16 ++-- .../storage/hbase/steps/DeprecatedGCStep.java | 23 ++--- .../storage/hbase/steps/HBaseCuboidWriter.java | 7 +- .../kylin/storage/hbase/steps/MergeGCStep.java | 23 ++--- .../storage/hbase/util/CleanHtableCLI.java | 12 +-- .../storage/hbase/util/CubeMigrationCLI.java| 36 .../hbase/util/CubeMigrationCheckCLI.java | 17 ++-- .../hbase/util/DeployCoprocessorCLI.java| 27 +++--- .../hbase/util/ExtendCubeToHybridCLI.java | 8 +- .../hbase/util/GridTableHBaseBenchmark.java | 34 +++ .../kylin/storage/hbase/util/HBaseClean.java| 18 ++-- .../hbase/util/HBaseRegionSizeCalculator.java | 35 .../kylin/storage/hbase/util/HBaseUsage.java| 9 +- .../storage/hbase/util/HbaseStreamingInput.java | 30 +++ .../hbase/util/HtableAlterMetadataCLI.java | 9 +- .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++-- .../kylin/storage/hbase/util/PingHBaseCLI.java | 15 ++-- .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +-- .../storage/hbase/util/StorageCleanupJob.java | 20 +++-- .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++-- .../observer/AggregateRegionObserverTest.java | 26 ++ .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java | 5 +- .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++-- .../kylin/tool/ExtendCubeToHybridCLI.java | 8 +- 50 files changed, 417 insertions(+), 472 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/examples/test_case_data/sandbox/hbase-site.xml -- diff --git a/examples/test_case_data/sandbox/hbase-site.xml b/examples/test_case_data/sandbox/hbase-site.xml index 46d5345..734908e 100644 --- a/examples/test_case_data/sandbox/hbase-site.xml +++ b/examples/test_case_data/sandbox/hbase-site.xml @@ -190,22 +190,5 @@ zookeeper.znode.parent /hbase-unsecure - -hbase.client.pause -100 -General client pause value. Used mostly as value to wait -before running a retry of a failed get, region lookup, etc. -See hbase.client.retries.number for description of how we backoff from -this initial pause amount and how this pause works w/ retries. - - -hbase.client.retries.number -5 -Maximum retries. Used as maximum for all retryable -operations such as the getting of a cell's value, starting a row update, -etc. Retry interval is a rough function based on hbase.client.pause. At -first we retry at this interval but then with backoff, we pretty quickly reach -
[1/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API [Forced Update!]
Repository: kylin Updated Branches: refs/heads/yang22-cdh5.7 b8c3a69fb -> f11fecb5c (forced update) http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java index a150607..56f867a 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java @@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util; import java.io.IOException; import org.apache.commons.cli.Options; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.AbstractApplication; import org.apache.kylin.common.util.OptionsHelper; import org.apache.kylin.metadata.realization.IRealizationConstants; @@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication { protected static final Logger logger = LoggerFactory.getLogger(CleanHtableCLI.class); private void clean() throws IOException { -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -HBaseAdmin hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()); +Admin hbaseAdmin = conn.getAdmin(); for (HTableDescriptor descriptor : hbaseAdmin.listTables()) { String name = descriptor.getNameAsString().toLowerCase(); @@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication { System.out.println(); descriptor.setValue(IRealizationConstants.HTableOwner, "dl-ebay-ky...@ebay.com"); -hbaseAdmin.modifyTable(descriptor.getNameAsString(), descriptor); + hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), descriptor); } } hbaseAdmin.close(); http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java index 2e682b1..f47bf31 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java @@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.Table; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.JsonSerializer; import org.apache.kylin.common.persistence.RawResource; @@ -88,7 +89,7 @@ public class CubeMigrationCLI { private static ResourceStore srcStore; private static ResourceStore dstStore; private static FileSystem hdfsFS; -private static HBaseAdmin hbaseAdmin; +private static Admin hbaseAdmin; public static final String ACL_INFO_FAMILY = "i"; private static final String ACL_TABLE_NAME = "_acl"; @@ -133,8 +134,8 @@ public class CubeMigrationCLI { checkAndGetHbaseUrl(); -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(srcConfig.getStorageUrl()); +hbaseAdmin = conn.getAdmin(); hdfsFS = FileSystem.get(new Configuration()); @@ -232,6 +233,7 @@ public class CubeMigrationCLI { operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] { item, cube.getName() })); } } + private static void addCubeAndModelIntoProject(CubeInstance srcCube, String cubeName, String projectName) throws IOException { String projectResPath =
[2/2] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c33fa8c9 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c33fa8c9 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c33fa8c9 Branch: refs/heads/yang22-hbase1.x Commit: c33fa8c9d45bbf306c032a3406d463028864c824 Parents: ed497fe Author: shaofengshiAuthored: Wed Mar 23 17:07:05 2016 +0800 Committer: Billy Liu Committed: Fri Dec 16 15:23:43 2016 +0800 -- examples/test_case_data/sandbox/hbase-site.xml | 19 +--- .../kylin/provision/BuildCubeWithEngine.java| 12 +-- pom.xml | 12 +-- .../kylin/rest/security/AclHBaseStorage.java| 4 +- .../rest/security/MockAclHBaseStorage.java | 8 +- .../apache/kylin/rest/security/MockHTable.java | 95 .../rest/security/RealAclHBaseStorage.java | 9 +- .../apache/kylin/rest/service/AclService.java | 25 +++--- .../apache/kylin/rest/service/CubeService.java | 35 +++- .../apache/kylin/rest/service/QueryService.java | 24 +++-- .../apache/kylin/rest/service/UserService.java | 17 ++-- .../kylin/storage/hbase/HBaseConnection.java| 44 - .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++ .../kylin/storage/hbase/HBaseStorage.java | 3 +- .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++--- .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +-- .../storage/hbase/cube/v1/CubeStorageQuery.java | 4 +- .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++- .../cube/v1/SerializedHBaseTupleIterator.java | 4 +- .../observer/AggregateRegionObserver.java | 4 +- .../observer/AggregationScanner.java| 14 ++- .../observer/ObserverAggregationCache.java | 10 ++- .../coprocessor/observer/ObserverEnabler.java | 4 +- .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +-- .../storage/hbase/cube/v2/CubeHBaseScanRPC.java | 9 +- .../coprocessor/endpoint/CubeVisitService.java | 4 +- .../storage/hbase/steps/CubeHTableUtil.java | 16 ++-- .../storage/hbase/steps/DeprecatedGCStep.java | 23 ++--- .../storage/hbase/steps/HBaseCuboidWriter.java | 7 +- .../kylin/storage/hbase/steps/MergeGCStep.java | 23 ++--- .../storage/hbase/util/CleanHtableCLI.java | 12 +-- .../storage/hbase/util/CubeMigrationCLI.java| 36 .../hbase/util/CubeMigrationCheckCLI.java | 17 ++-- .../hbase/util/DeployCoprocessorCLI.java| 27 +++--- .../hbase/util/ExtendCubeToHybridCLI.java | 8 +- .../hbase/util/GridTableHBaseBenchmark.java | 34 +++ .../kylin/storage/hbase/util/HBaseClean.java| 18 ++-- .../hbase/util/HBaseRegionSizeCalculator.java | 35 .../kylin/storage/hbase/util/HBaseUsage.java| 9 +- .../storage/hbase/util/HbaseStreamingInput.java | 30 +++ .../hbase/util/HtableAlterMetadataCLI.java | 9 +- .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++-- .../kylin/storage/hbase/util/PingHBaseCLI.java | 15 ++-- .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +-- .../storage/hbase/util/StorageCleanupJob.java | 20 +++-- .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++-- .../observer/AggregateRegionObserverTest.java | 26 ++ .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java | 5 +- .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++-- .../kylin/tool/ExtendCubeToHybridCLI.java | 8 +- 50 files changed, 417 insertions(+), 472 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/examples/test_case_data/sandbox/hbase-site.xml -- diff --git a/examples/test_case_data/sandbox/hbase-site.xml b/examples/test_case_data/sandbox/hbase-site.xml index 46d5345..734908e 100644 --- a/examples/test_case_data/sandbox/hbase-site.xml +++ b/examples/test_case_data/sandbox/hbase-site.xml @@ -190,22 +190,5 @@ zookeeper.znode.parent /hbase-unsecure - -hbase.client.pause -100 -General client pause value. Used mostly as value to wait -before running a retry of a failed get, region lookup, etc. -See hbase.client.retries.number for description of how we backoff from -this initial pause amount and how this pause works w/ retries. - - -hbase.client.retries.number -5 -Maximum retries. Used as maximum for all retryable -operations such as the getting of a cell's value, starting a row update, -etc. Retry interval is a rough function based on hbase.client.pause. At -first we retry at this interval but then with backoff, we pretty quickly reach -
[1/2] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API [Forced Update!]
Repository: kylin Updated Branches: refs/heads/yang22-hbase1.x 8705eea69 -> c33fa8c9d (forced update) http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java index a150607..56f867a 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java @@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util; import java.io.IOException; import org.apache.commons.cli.Options; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.AbstractApplication; import org.apache.kylin.common.util.OptionsHelper; import org.apache.kylin.metadata.realization.IRealizationConstants; @@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication { protected static final Logger logger = LoggerFactory.getLogger(CleanHtableCLI.class); private void clean() throws IOException { -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -HBaseAdmin hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()); +Admin hbaseAdmin = conn.getAdmin(); for (HTableDescriptor descriptor : hbaseAdmin.listTables()) { String name = descriptor.getNameAsString().toLowerCase(); @@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication { System.out.println(); descriptor.setValue(IRealizationConstants.HTableOwner, "dl-ebay-ky...@ebay.com"); -hbaseAdmin.modifyTable(descriptor.getNameAsString(), descriptor); + hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), descriptor); } } hbaseAdmin.close(); http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java index 2e682b1..f47bf31 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java @@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.Table; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.JsonSerializer; import org.apache.kylin.common.persistence.RawResource; @@ -88,7 +89,7 @@ public class CubeMigrationCLI { private static ResourceStore srcStore; private static ResourceStore dstStore; private static FileSystem hdfsFS; -private static HBaseAdmin hbaseAdmin; +private static Admin hbaseAdmin; public static final String ACL_INFO_FAMILY = "i"; private static final String ACL_TABLE_NAME = "_acl"; @@ -133,8 +134,8 @@ public class CubeMigrationCLI { checkAndGetHbaseUrl(); -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(srcConfig.getStorageUrl()); +hbaseAdmin = conn.getAdmin(); hdfsFS = FileSystem.get(new Configuration()); @@ -232,6 +233,7 @@ public class CubeMigrationCLI { operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] { item, cube.getName() })); } } + private static void addCubeAndModelIntoProject(CubeInstance srcCube, String cubeName, String projectName) throws IOException { String projectResPath =
[2/4] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java index a150607..56f867a 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java @@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util; import java.io.IOException; import org.apache.commons.cli.Options; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.AbstractApplication; import org.apache.kylin.common.util.OptionsHelper; import org.apache.kylin.metadata.realization.IRealizationConstants; @@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication { protected static final Logger logger = LoggerFactory.getLogger(CleanHtableCLI.class); private void clean() throws IOException { -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -HBaseAdmin hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()); +Admin hbaseAdmin = conn.getAdmin(); for (HTableDescriptor descriptor : hbaseAdmin.listTables()) { String name = descriptor.getNameAsString().toLowerCase(); @@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication { System.out.println(); descriptor.setValue(IRealizationConstants.HTableOwner, "dl-ebay-ky...@ebay.com"); -hbaseAdmin.modifyTable(descriptor.getNameAsString(), descriptor); + hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), descriptor); } } hbaseAdmin.close(); http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java index 2e682b1..f47bf31 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java @@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.Table; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.JsonSerializer; import org.apache.kylin.common.persistence.RawResource; @@ -88,7 +89,7 @@ public class CubeMigrationCLI { private static ResourceStore srcStore; private static ResourceStore dstStore; private static FileSystem hdfsFS; -private static HBaseAdmin hbaseAdmin; +private static Admin hbaseAdmin; public static final String ACL_INFO_FAMILY = "i"; private static final String ACL_TABLE_NAME = "_acl"; @@ -133,8 +134,8 @@ public class CubeMigrationCLI { checkAndGetHbaseUrl(); -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(srcConfig.getStorageUrl()); +hbaseAdmin = conn.getAdmin(); hdfsFS = FileSystem.get(new Configuration()); @@ -232,6 +233,7 @@ public class CubeMigrationCLI { operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] { item, cube.getName() })); } } + private static void addCubeAndModelIntoProject(CubeInstance srcCube, String cubeName, String projectName) throws IOException { String projectResPath = ProjectInstance.concatResourcePath(projectName); if (!dstStore.exists(projectResPath)) @@ -325,8 +327,8 @@ public class
[3/4] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/8705eea6 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/8705eea6 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/8705eea6 Branch: refs/heads/yang22-cdh5.7 Commit: 8705eea69207da1bdc16b677f8b9e94595221f49 Parents: ed497fe Author: shaofengshiAuthored: Wed Mar 23 17:07:05 2016 +0800 Committer: lidongsjtu Committed: Fri Dec 16 12:29:27 2016 +0800 -- examples/test_case_data/sandbox/hbase-site.xml | 19 +--- .../kylin/provision/BuildCubeWithEngine.java| 12 +-- pom.xml | 12 +-- .../kylin/rest/security/AclHBaseStorage.java| 4 +- .../rest/security/MockAclHBaseStorage.java | 8 +- .../apache/kylin/rest/security/MockHTable.java | 95 .../rest/security/RealAclHBaseStorage.java | 9 +- .../apache/kylin/rest/service/AclService.java | 25 +++--- .../apache/kylin/rest/service/CubeService.java | 35 +++- .../apache/kylin/rest/service/QueryService.java | 24 +++-- .../apache/kylin/rest/service/UserService.java | 17 ++-- .../kylin/storage/hbase/HBaseConnection.java| 44 - .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++ .../kylin/storage/hbase/HBaseStorage.java | 3 +- .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++--- .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +-- .../storage/hbase/cube/v1/CubeStorageQuery.java | 4 +- .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++- .../cube/v1/SerializedHBaseTupleIterator.java | 4 +- .../observer/AggregateRegionObserver.java | 4 +- .../observer/AggregationScanner.java| 14 ++- .../observer/ObserverAggregationCache.java | 10 ++- .../coprocessor/observer/ObserverEnabler.java | 4 +- .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +-- .../storage/hbase/cube/v2/CubeHBaseScanRPC.java | 9 +- .../coprocessor/endpoint/CubeVisitService.java | 4 +- .../storage/hbase/steps/CubeHTableUtil.java | 16 ++-- .../storage/hbase/steps/DeprecatedGCStep.java | 23 ++--- .../storage/hbase/steps/HBaseCuboidWriter.java | 7 +- .../kylin/storage/hbase/steps/MergeGCStep.java | 23 ++--- .../storage/hbase/util/CleanHtableCLI.java | 12 +-- .../storage/hbase/util/CubeMigrationCLI.java| 36 .../hbase/util/CubeMigrationCheckCLI.java | 17 ++-- .../hbase/util/DeployCoprocessorCLI.java| 27 +++--- .../hbase/util/ExtendCubeToHybridCLI.java | 8 +- .../hbase/util/GridTableHBaseBenchmark.java | 34 +++ .../kylin/storage/hbase/util/HBaseClean.java| 18 ++-- .../hbase/util/HBaseRegionSizeCalculator.java | 35 .../kylin/storage/hbase/util/HBaseUsage.java| 9 +- .../storage/hbase/util/HbaseStreamingInput.java | 30 +++ .../hbase/util/HtableAlterMetadataCLI.java | 9 +- .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++-- .../kylin/storage/hbase/util/PingHBaseCLI.java | 15 ++-- .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +-- .../storage/hbase/util/StorageCleanupJob.java | 20 +++-- .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++-- .../observer/AggregateRegionObserverTest.java | 26 ++ .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java | 5 +- .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++-- .../kylin/tool/ExtendCubeToHybridCLI.java | 8 +- 50 files changed, 417 insertions(+), 472 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/examples/test_case_data/sandbox/hbase-site.xml -- diff --git a/examples/test_case_data/sandbox/hbase-site.xml b/examples/test_case_data/sandbox/hbase-site.xml index 46d5345..734908e 100644 --- a/examples/test_case_data/sandbox/hbase-site.xml +++ b/examples/test_case_data/sandbox/hbase-site.xml @@ -190,22 +190,5 @@ zookeeper.znode.parent /hbase-unsecure - -hbase.client.pause -100 -General client pause value. Used mostly as value to wait -before running a retry of a failed get, region lookup, etc. -See hbase.client.retries.number for description of how we backoff from -this initial pause amount and how this pause works w/ retries. - - -hbase.client.retries.number -5 -Maximum retries. Used as maximum for all retryable -operations such as the getting of a cell's value, starting a row update, -etc. Retry interval is a rough function based on hbase.client.pause. At -first we retry at this interval but then with backoff, we pretty quickly reach -
[1/4] kylin git commit: KYLIN-2277 return correct columns for select * [Forced Update!]
Repository: kylin Updated Branches: refs/heads/yang22-cdh5.7 7a6f03d13 -> b8c3a69fb (forced update) KYLIN-2277 return correct columns for select * Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ed497fe7 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ed497fe7 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ed497fe7 Branch: refs/heads/yang22-cdh5.7 Commit: ed497fe73bddffaf9373599c216400b323242833 Parents: 75ded9b Author: Yang LiAuthored: Tue Dec 13 23:45:55 2016 +0800 Committer: Yang Li Committed: Wed Dec 14 21:29:50 2016 +0800 -- .../calcite/sql2rel/SqlToRelConverter.java | 62 +++- .../kylin/metadata/model/FunctionDesc.java | 4 +- .../apache/kylin/query/ITKylinQueryTest.java| 6 ++ .../org/apache/kylin/query/KylinTestBase.java | 21 +++ .../resources/query/sql_timeout/query01.sql | 2 +- 5 files changed, 91 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/ed497fe7/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java -- diff --git a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java index d223cdf..cf36f61 100644 --- a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java +++ b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java @@ -67,6 +67,7 @@ import org.apache.calcite.rel.stream.Delta; import org.apache.calcite.rel.stream.LogicalDelta; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.rel.type.RelDataTypeFactory.FieldInfoBuilder; import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexCall; @@ -194,6 +195,7 @@ import static org.apache.calcite.util.Static.RESOURCE; * - getInSubqueryThreshold(), was `20`, now `Integer.MAX_VALUE` * - isTrimUnusedFields(), override to false * - AggConverter.translateAgg(...), skip column reading for COUNT(COL), for https://jirap.corp.ebay.com/browse/KYLIN-104 + * - convertQuery(), call hackSelectStar() at the end */ /** @@ -529,6 +531,8 @@ public class SqlToRelConverter { *the query will be part of a view. */ public RelRoot convertQuery(SqlNode query, final boolean needsValidation, final boolean top) { +SqlNode origQuery = query; /* OVERRIDE POINT */ + if (needsValidation) { query = validator.validate(query); } @@ -553,7 +557,63 @@ public class SqlToRelConverter { } final RelDataType validatedRowType = validator.getValidatedNodeType(query); -return RelRoot.of(result, validatedRowType, query.getKind()).withCollation(collation); +return hackSelectStar(origQuery, RelRoot.of(result, validatedRowType, query.getKind()).withCollation(collation)); +} + +/* OVERRIDE POINT */ +private RelRoot hackSelectStar(SqlNode query, RelRoot root) { +/* + * Rel tree is like: + * + * LogicalSort (optional) + *|- LogicalProject + *|- OLAPTableScan + */ +LogicalProject rootPrj = null; +LogicalSort rootSort = null; +if (root.rel instanceof LogicalProject) { +rootPrj = (LogicalProject) root.rel; +} else if (root.rel instanceof LogicalSort && root.rel.getInput(0) instanceof LogicalProject) { +rootPrj = (LogicalProject) root.rel.getInput(0); +rootSort = (LogicalSort) root.rel; +} else { +return root; +} + +if (!rootPrj.getInput().getClass().getSimpleName().equals("OLAPTableScan")) +return root; + +RelNode scan = rootPrj.getInput(); +if (rootPrj.getRowType().getFieldCount() < scan.getRowType().getFieldCount()) +return root; + +RelDataType inType = rootPrj.getRowType(); +List inFields = inType.getFieldNames(); +List projExp = new ArrayList<>(); +List > projFields = new ArrayList<>(); +FieldInfoBuilder projTypeBuilder = getCluster().getTypeFactory().builder(); +FieldInfoBuilder validTypeBuilder = getCluster().getTypeFactory().builder(); +for (int i = 0; i < inFields.size(); i++) { +if (!inFields.get(i).startsWith("_KY_")) { +projExp.add(rootPrj.getProjects().get(i)); +projFields.add(Pair.of(projFields.size(), inFields.get(i))); +
[3/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/8705eea6 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/8705eea6 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/8705eea6 Branch: refs/heads/yang22-hbase1.x Commit: 8705eea69207da1bdc16b677f8b9e94595221f49 Parents: ed497fe Author: shaofengshiAuthored: Wed Mar 23 17:07:05 2016 +0800 Committer: lidongsjtu Committed: Fri Dec 16 12:29:27 2016 +0800 -- examples/test_case_data/sandbox/hbase-site.xml | 19 +--- .../kylin/provision/BuildCubeWithEngine.java| 12 +-- pom.xml | 12 +-- .../kylin/rest/security/AclHBaseStorage.java| 4 +- .../rest/security/MockAclHBaseStorage.java | 8 +- .../apache/kylin/rest/security/MockHTable.java | 95 .../rest/security/RealAclHBaseStorage.java | 9 +- .../apache/kylin/rest/service/AclService.java | 25 +++--- .../apache/kylin/rest/service/CubeService.java | 35 +++- .../apache/kylin/rest/service/QueryService.java | 24 +++-- .../apache/kylin/rest/service/UserService.java | 17 ++-- .../kylin/storage/hbase/HBaseConnection.java| 44 - .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++ .../kylin/storage/hbase/HBaseStorage.java | 3 +- .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++--- .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +-- .../storage/hbase/cube/v1/CubeStorageQuery.java | 4 +- .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++- .../cube/v1/SerializedHBaseTupleIterator.java | 4 +- .../observer/AggregateRegionObserver.java | 4 +- .../observer/AggregationScanner.java| 14 ++- .../observer/ObserverAggregationCache.java | 10 ++- .../coprocessor/observer/ObserverEnabler.java | 4 +- .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +-- .../storage/hbase/cube/v2/CubeHBaseScanRPC.java | 9 +- .../coprocessor/endpoint/CubeVisitService.java | 4 +- .../storage/hbase/steps/CubeHTableUtil.java | 16 ++-- .../storage/hbase/steps/DeprecatedGCStep.java | 23 ++--- .../storage/hbase/steps/HBaseCuboidWriter.java | 7 +- .../kylin/storage/hbase/steps/MergeGCStep.java | 23 ++--- .../storage/hbase/util/CleanHtableCLI.java | 12 +-- .../storage/hbase/util/CubeMigrationCLI.java| 36 .../hbase/util/CubeMigrationCheckCLI.java | 17 ++-- .../hbase/util/DeployCoprocessorCLI.java| 27 +++--- .../hbase/util/ExtendCubeToHybridCLI.java | 8 +- .../hbase/util/GridTableHBaseBenchmark.java | 34 +++ .../kylin/storage/hbase/util/HBaseClean.java| 18 ++-- .../hbase/util/HBaseRegionSizeCalculator.java | 35 .../kylin/storage/hbase/util/HBaseUsage.java| 9 +- .../storage/hbase/util/HbaseStreamingInput.java | 30 +++ .../hbase/util/HtableAlterMetadataCLI.java | 9 +- .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++-- .../kylin/storage/hbase/util/PingHBaseCLI.java | 15 ++-- .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +-- .../storage/hbase/util/StorageCleanupJob.java | 20 +++-- .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++-- .../observer/AggregateRegionObserverTest.java | 26 ++ .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java | 5 +- .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++-- .../kylin/tool/ExtendCubeToHybridCLI.java | 8 +- 50 files changed, 417 insertions(+), 472 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/examples/test_case_data/sandbox/hbase-site.xml -- diff --git a/examples/test_case_data/sandbox/hbase-site.xml b/examples/test_case_data/sandbox/hbase-site.xml index 46d5345..734908e 100644 --- a/examples/test_case_data/sandbox/hbase-site.xml +++ b/examples/test_case_data/sandbox/hbase-site.xml @@ -190,22 +190,5 @@ zookeeper.znode.parent /hbase-unsecure - -hbase.client.pause -100 -General client pause value. Used mostly as value to wait -before running a retry of a failed get, region lookup, etc. -See hbase.client.retries.number for description of how we backoff from -this initial pause amount and how this pause works w/ retries. - - -hbase.client.retries.number -5 -Maximum retries. Used as maximum for all retryable -operations such as the getting of a cell's value, starting a row update, -etc. Retry interval is a rough function based on hbase.client.pause. At -first we retry at this interval but then with backoff, we pretty quickly reach -
[1/3] kylin git commit: KYLIN-2277 return correct columns for select * [Forced Update!]
Repository: kylin Updated Branches: refs/heads/yang22-hbase1.x 6317d2dce -> 8705eea69 (forced update) KYLIN-2277 return correct columns for select * Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ed497fe7 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ed497fe7 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ed497fe7 Branch: refs/heads/yang22-hbase1.x Commit: ed497fe73bddffaf9373599c216400b323242833 Parents: 75ded9b Author: Yang LiAuthored: Tue Dec 13 23:45:55 2016 +0800 Committer: Yang Li Committed: Wed Dec 14 21:29:50 2016 +0800 -- .../calcite/sql2rel/SqlToRelConverter.java | 62 +++- .../kylin/metadata/model/FunctionDesc.java | 4 +- .../apache/kylin/query/ITKylinQueryTest.java| 6 ++ .../org/apache/kylin/query/KylinTestBase.java | 21 +++ .../resources/query/sql_timeout/query01.sql | 2 +- 5 files changed, 91 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/ed497fe7/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java -- diff --git a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java index d223cdf..cf36f61 100644 --- a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java +++ b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java @@ -67,6 +67,7 @@ import org.apache.calcite.rel.stream.Delta; import org.apache.calcite.rel.stream.LogicalDelta; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.rel.type.RelDataTypeFactory.FieldInfoBuilder; import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexCall; @@ -194,6 +195,7 @@ import static org.apache.calcite.util.Static.RESOURCE; * - getInSubqueryThreshold(), was `20`, now `Integer.MAX_VALUE` * - isTrimUnusedFields(), override to false * - AggConverter.translateAgg(...), skip column reading for COUNT(COL), for https://jirap.corp.ebay.com/browse/KYLIN-104 + * - convertQuery(), call hackSelectStar() at the end */ /** @@ -529,6 +531,8 @@ public class SqlToRelConverter { *the query will be part of a view. */ public RelRoot convertQuery(SqlNode query, final boolean needsValidation, final boolean top) { +SqlNode origQuery = query; /* OVERRIDE POINT */ + if (needsValidation) { query = validator.validate(query); } @@ -553,7 +557,63 @@ public class SqlToRelConverter { } final RelDataType validatedRowType = validator.getValidatedNodeType(query); -return RelRoot.of(result, validatedRowType, query.getKind()).withCollation(collation); +return hackSelectStar(origQuery, RelRoot.of(result, validatedRowType, query.getKind()).withCollation(collation)); +} + +/* OVERRIDE POINT */ +private RelRoot hackSelectStar(SqlNode query, RelRoot root) { +/* + * Rel tree is like: + * + * LogicalSort (optional) + *|- LogicalProject + *|- OLAPTableScan + */ +LogicalProject rootPrj = null; +LogicalSort rootSort = null; +if (root.rel instanceof LogicalProject) { +rootPrj = (LogicalProject) root.rel; +} else if (root.rel instanceof LogicalSort && root.rel.getInput(0) instanceof LogicalProject) { +rootPrj = (LogicalProject) root.rel.getInput(0); +rootSort = (LogicalSort) root.rel; +} else { +return root; +} + +if (!rootPrj.getInput().getClass().getSimpleName().equals("OLAPTableScan")) +return root; + +RelNode scan = rootPrj.getInput(); +if (rootPrj.getRowType().getFieldCount() < scan.getRowType().getFieldCount()) +return root; + +RelDataType inType = rootPrj.getRowType(); +List inFields = inType.getFieldNames(); +List projExp = new ArrayList<>(); +List > projFields = new ArrayList<>(); +FieldInfoBuilder projTypeBuilder = getCluster().getTypeFactory().builder(); +FieldInfoBuilder validTypeBuilder = getCluster().getTypeFactory().builder(); +for (int i = 0; i < inFields.size(); i++) { +if (!inFields.get(i).startsWith("_KY_")) { +projExp.add(rootPrj.getProjects().get(i)); +projFields.add(Pair.of(projFields.size(), inFields.get(i))); +
[2/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API
http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java index a150607..56f867a 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java @@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util; import java.io.IOException; import org.apache.commons.cli.Options; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.AbstractApplication; import org.apache.kylin.common.util.OptionsHelper; import org.apache.kylin.metadata.realization.IRealizationConstants; @@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication { protected static final Logger logger = LoggerFactory.getLogger(CleanHtableCLI.class); private void clean() throws IOException { -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -HBaseAdmin hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()); +Admin hbaseAdmin = conn.getAdmin(); for (HTableDescriptor descriptor : hbaseAdmin.listTables()) { String name = descriptor.getNameAsString().toLowerCase(); @@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication { System.out.println(); descriptor.setValue(IRealizationConstants.HTableOwner, "dl-ebay-ky...@ebay.com"); -hbaseAdmin.modifyTable(descriptor.getNameAsString(), descriptor); + hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), descriptor); } } hbaseAdmin.close(); http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java -- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java index 2e682b1..f47bf31 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java @@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.Table; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.JsonSerializer; import org.apache.kylin.common.persistence.RawResource; @@ -88,7 +89,7 @@ public class CubeMigrationCLI { private static ResourceStore srcStore; private static ResourceStore dstStore; private static FileSystem hdfsFS; -private static HBaseAdmin hbaseAdmin; +private static Admin hbaseAdmin; public static final String ACL_INFO_FAMILY = "i"; private static final String ACL_TABLE_NAME = "_acl"; @@ -133,8 +134,8 @@ public class CubeMigrationCLI { checkAndGetHbaseUrl(); -Configuration conf = HBaseConnection.getCurrentHBaseConfiguration(); -hbaseAdmin = new HBaseAdmin(conf); +Connection conn = HBaseConnection.get(srcConfig.getStorageUrl()); +hbaseAdmin = conn.getAdmin(); hdfsFS = FileSystem.get(new Configuration()); @@ -232,6 +233,7 @@ public class CubeMigrationCLI { operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] { item, cube.getName() })); } } + private static void addCubeAndModelIntoProject(CubeInstance srcCube, String cubeName, String projectName) throws IOException { String projectResPath = ProjectInstance.concatResourcePath(projectName); if (!dstStore.exists(projectResPath)) @@ -325,8 +327,8 @@ public class
kylin git commit: KYLIN-2180: refactor ProjectRequest
Repository: kylin Updated Branches: refs/heads/master 3003d9fba -> 911bdd00a KYLIN-2180: refactor ProjectRequest Signed-off-by: Li YangProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/911bdd00 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/911bdd00 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/911bdd00 Branch: refs/heads/master Commit: 911bdd00afb9176af594fe97cbc0a639f376da2d Parents: 3003d9f Author: kangkaisen Authored: Sun Dec 11 17:17:40 2016 +0800 Committer: Li Yang Committed: Fri Dec 16 11:18:15 2016 +0800 -- .../rest/controller/ProjectController.java | 48 ++ .../rest/request/CreateProjectRequest.java | 57 .../kylin/rest/request/ProjectRequest.java | 47 + .../rest/request/UpdateProjectRequest.java | 66 --- .../kylin/rest/service/ProjectService.java | 23 +++ .../rest/controller/ProjectControllerTest.java | 69 webapp/app/js/controllers/page.js | 27 +++- 7 files changed, 143 insertions(+), 194 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/911bdd00/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java -- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java index 05af82c..a6edece 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java @@ -24,13 +24,13 @@ import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.kylin.common.persistence.AclEntity; +import org.apache.kylin.common.util.JsonUtil; import org.apache.kylin.cube.CubeInstance; import org.apache.kylin.metadata.project.ProjectInstance; import org.apache.kylin.rest.constant.Constant; import org.apache.kylin.rest.exception.BadRequestException; import org.apache.kylin.rest.exception.InternalErrorException; -import org.apache.kylin.rest.request.CreateProjectRequest; -import org.apache.kylin.rest.request.UpdateProjectRequest; +import org.apache.kylin.rest.request.ProjectRequest; import org.apache.kylin.rest.service.AccessService; import org.apache.kylin.rest.service.CubeService; import org.apache.kylin.rest.service.ProjectService; @@ -198,19 +198,22 @@ public class ProjectController extends BasicController { @RequestMapping(value = "", method = { RequestMethod.POST }) @ResponseBody -public ProjectInstance saveProject(@RequestBody CreateProjectRequest projectRequest) { -if (StringUtils.isEmpty(projectRequest.getName())) { -logger.info("Project name should not be empty."); -throw new BadRequestException("Project name should not be empty."); + +public ProjectInstance saveProject(@RequestBody ProjectRequest projectRequest) { +ProjectInstance projectDesc = deserializeProjectDesc(projectRequest); + +if (StringUtils.isEmpty(projectDesc.getName())) { +throw new InternalErrorException("A project name must be given to create a project"); } -if (!StringUtils.containsOnly(projectRequest.getName(), VALID_PROJECTNAME)) { -logger.info("Invalid Project name {}, only letters, numbers and underline supported.", projectRequest.getName()); + +if (!StringUtils.containsOnly(projectDesc.getName(), VALID_PROJECTNAME)) { +logger.info("Invalid Project name {}, only letters, numbers and underline supported.", projectDesc.getName()); throw new BadRequestException("Invalid Project name, only letters, numbers and underline supported."); } ProjectInstance createdProj = null; try { -createdProj = projectService.createProject(projectRequest); +createdProj = projectService.createProject(projectDesc); } catch (Exception e) { logger.error("Failed to deal with the request.", e); throw new InternalErrorException(e.getLocalizedMessage()); @@ -221,15 +224,22 @@ public class ProjectController extends BasicController { @RequestMapping(value = "", method = { RequestMethod.PUT }) @ResponseBody -public ProjectInstance updateProject(@RequestBody UpdateProjectRequest projectRequest) { -if (StringUtils.isEmpty(projectRequest.getFormerProjectName())) { +public ProjectInstance updateProject(@RequestBody ProjectRequest projectRequest) { +String formerProjectName = projectRequest.getFormerProjectName(); +
kylin git commit: KYLIN-2006 howto_use_distributed_scheduler
Repository: kylin Updated Branches: refs/heads/document b570e -> 1cc818aca KYLIN-2006 howto_use_distributed_scheduler Signed-off-by: Li YangProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1cc818ac Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1cc818ac Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1cc818ac Branch: refs/heads/document Commit: 1cc818aca6e25a10ba718cc55135f0c4e1e341ff Parents: b570ebb Author: kangkaisen Authored: Fri Dec 2 19:11:24 2016 +0800 Committer: Li Yang Committed: Fri Dec 16 10:24:49 2016 +0800 -- website/_data/docs.yml | 1 + .../howto/howto_use_distributed_scheduler.md| 16 2 files changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/1cc818ac/website/_data/docs.yml -- diff --git a/website/_data/docs.yml b/website/_data/docs.yml index 5e5de00..e0f0c0d 100644 --- a/website/_data/docs.yml +++ b/website/_data/docs.yml @@ -57,3 +57,4 @@ - howto/howto_jdbc - howto/howto_upgrade - howto/howto_ldap_and_sso + - howto/howto_use_distributed_scheduler http://git-wip-us.apache.org/repos/asf/kylin/blob/1cc818ac/website/_docs16/howto/howto_use_distributed_scheduler.md -- diff --git a/website/_docs16/howto/howto_use_distributed_scheduler.md b/website/_docs16/howto/howto_use_distributed_scheduler.md new file mode 100644 index 000..6d92584 --- /dev/null +++ b/website/_docs16/howto/howto_use_distributed_scheduler.md @@ -0,0 +1,16 @@ +--- +layout: docs16 +title: Use distributed job scheduler +categories: howto +permalink: /docs16/howto/howto_use_distributed_scheduler.html +--- + +Since Kylin 1.6.1, Kylin support distributed job scheduler. +Which is more extensible, available and reliable than default job scheduler. +To enable the distributed job scheduler, you need to set or update three configs in the kylin.properties: + +``` +1. kylin.job.scheduler.default=2 +2. kylin.job.lock=org.apache.kylin.storage.hbase.util.ZookeeperDistributedJobLock +3. add all job servers and query servers to the kylin.server.cluster-servers +```
kylin git commit: halfway
Repository: kylin Updated Branches: refs/heads/KYLIN-2283 c1cd0ab69 -> aab00c0d1 halfway Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/aab00c0d Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/aab00c0d Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/aab00c0d Branch: refs/heads/KYLIN-2283 Commit: aab00c0d1d55023f053a84021cc1575a2df0a114 Parents: c1cd0ab Author: Yang LiAuthored: Fri Dec 16 06:24:31 2016 +0800 Committer: Yang Li Committed: Fri Dec 16 06:24:31 2016 +0800 -- .../kylin/source/datagen/ColumnGenConfig.java | 30 ++- .../kylin/source/datagen/ColumnGenerator.java | 202 ++- 2 files changed, 222 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/aab00c0d/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java index 91f5366..f174eef 100644 --- a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java +++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java @@ -19,30 +19,34 @@ package org.apache.kylin.source.datagen; import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Set; import org.apache.kylin.metadata.model.ColumnDesc; public class ColumnGenConfig { +public static final String $RANDOM = "${RANDOM}"; + // discrete values +boolean isDiscrete; List values; // random boolean isRandom; -int randCardinality; +String randFormat; +int randStart; +int randEnd; // ID boolean isID; int idStart; -// null handling +// general +int cardinality; boolean genNull; double genNullPct; +boolean order; public ColumnGenConfig(ColumnDesc col) { init(col.getName(), col.getDataGen()); @@ -53,17 +57,25 @@ public class ColumnGenConfig { Map config = Util.parseEqualCommaPairs(dataGen, "values"); values = Arrays.asList(Util.parseString(config, "values", "").split("|")); +if (values.size() == 1 && values.get(0).isEmpty()) +values.set(0, $RANDOM); if ("ID".equals(values.get(0))) { isID = true; idStart = (values.size() > 1) ? Integer.parseInt(values.get(1)) : 0; -} else { +} else if (values.get(0).contains($RANDOM)) { isRandom = true; -randCardinality = Util.parseInt(config, "cardinality", guessCardinality(col)); +randFormat = values.get(0); +randStart = (values.size() > 1) ? Integer.parseInt(values.get(1)) : 0; +randEnd = (values.size() > 2) ? Integer.parseInt(values.get(2)) : 0; +} else { +isDiscrete = true; } -genNull = Util.parseBoolean(config, "genNull", guessGenNull(col)); -genNullPct = Util.parseDouble(config, "genNullPct", 0.01); +cardinality = Util.parseInt(config, "card", guessCardinality(col)); +genNull = Util.parseBoolean(config, "null", guessGenNull(col)); +genNullPct = Util.parseDouble(config, "nullPct", 0.01); +order = Util.parseBoolean(config, "order", false); } private int guessCardinality(String col) { http://git-wip-us.apache.org/repos/asf/kylin/blob/aab00c0d/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java index c4c4fe7..409a1e9 100644 --- a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java +++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java @@ -18,24 +18,224 @@ package org.apache.kylin.source.datagen; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; +import java.util.List; +import java.util.Random; +import java.util.TreeSet; +import org.apache.kylin.metadata.datatype.DataType; import org.apache.kylin.metadata.model.ColumnDesc; public class ColumnGenerator { +final private ColumnGenConfig conf; final private ColumnDesc targetCol; final private int targetRows; final private ModelDataGenerator
kylin git commit: minor, fix NPE in OLAPTable
Repository: kylin Updated Branches: refs/heads/master 1c2c43cb8 -> 3003d9fba minor, fix NPE in OLAPTable Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/3003d9fb Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/3003d9fb Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/3003d9fb Branch: refs/heads/master Commit: 3003d9fba7c0b20a74785cbc431f9e708e775418 Parents: 1c2c43c Author: Yang LiAuthored: Fri Dec 16 07:57:33 2016 +0800 Committer: Yang Li Committed: Fri Dec 16 07:57:33 2016 +0800 -- .../java/org/apache/kylin/query/schema/OLAPTable.java | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/3003d9fb/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java -- diff --git a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java index 06ffdba..c33c4ed 100644 --- a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java +++ b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java @@ -43,13 +43,13 @@ import org.apache.calcite.schema.impl.AbstractTableQueryable; import org.apache.calcite.sql.type.SqlTypeName; import org.apache.calcite.sql.type.SqlTypeUtil; import org.apache.calcite.util.ImmutableBitSet; -import org.apache.kylin.metadata.MetadataManager; import org.apache.kylin.metadata.datatype.DataType; import org.apache.kylin.metadata.model.ColumnDesc; import org.apache.kylin.metadata.model.DataModelDesc; import org.apache.kylin.metadata.model.FunctionDesc; import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TableDesc; +import org.apache.kylin.metadata.model.TblColRef; import org.apache.kylin.metadata.project.ProjectManager; import org.apache.kylin.metadata.realization.IRealization; import org.apache.kylin.metadata.realization.RealizationType; @@ -198,14 +198,13 @@ public class OLAPTable extends AbstractQueryableTable implements TranslatableTab } } //2. All integer measures in non-cube realizations -MetadataManager metadataManager = MetadataManager.getInstance(olapSchema.getConfig()); for (IRealization realization : mgr.listAllRealizations(olapSchema.getProjectName())) { if (realization.getType() == RealizationType.INVERTED_INDEX && realization.getModel().isFactTable(sourceTable.getIdentity())) { -DataModelDesc dataModelDesc = realization.getModel(); -for (String metricColumn : dataModelDesc.getMetrics()) { -ColumnDesc columnDesc = metadataManager.getColumnDesc(dataModelDesc.getRootFactTable().getTableIdentity() + "." + metricColumn); -if (columnDesc.getType().isIntegerFamily() && !columnDesc.getType().isBigInt()) -updateColumns.add(columnDesc); +DataModelDesc model = realization.getModel(); +for (String metricColumn : model.getMetrics()) { +TblColRef col = model.findColumn(metricColumn); +if (col.getType().isIntegerFamily() && !col.getType().isBigInt()) +updateColumns.add(col.getColumnDesc()); } } }
[kylin] Git Push Summary
Repository: kylin Updated Branches: refs/heads/KYLIN-2277 [deleted] e73b4f097
kylin git commit: KYLIN-2131, load kafka config from kylin-kafka-consumer.properties
Repository: kylin Updated Branches: refs/heads/KYLIN-2131 [created] cedcca6e4 KYLIN-2131, load kafka config from kylin-kafka-consumer.properties Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/cedcca6e Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/cedcca6e Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/cedcca6e Branch: refs/heads/KYLIN-2131 Commit: cedcca6e42f9a38d8771c25e53bab5d64ef0de5a Parents: 1c2c43c Author: Billy LiuAuthored: Thu Dec 15 19:18:32 2016 +0800 Committer: Billy Liu Committed: Thu Dec 15 19:18:32 2016 +0800 -- .../kylin/job/streaming/Kafka10DataLoader.java | 34 - build/conf/kylin-kafka-consumer.properties | 19 +++ .../localmeta/kylin-kafka-consumer.properties | 19 +++ .../sandbox/kylin-kafka-consumer.properties | 19 +++ .../apache/kylin/source/kafka/KafkaSource.java | 5 +- .../source/kafka/config/KafkaClusterConfig.java | 8 -- .../kylin/source/kafka/config/KafkaConfig.java | 11 -- .../kafka/config/KafkaConsumerProperties.java | 126 +++ .../source/kafka/hadoop/KafkaFlatTableJob.java | 7 +- .../source/kafka/hadoop/KafkaInputFormat.java | 7 +- .../kafka/hadoop/KafkaInputRecordReader.java| 18 +-- .../kylin/source/kafka/util/KafkaClient.java| 43 ++- .../config/KafkaConsumerPropertiesTest.java | 31 + webapp/app/js/model/streamingModel.js | 2 - .../partials/cubeDesigner/streamingConfig.html | 33 + 15 files changed, 280 insertions(+), 102 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/cedcca6e/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java -- diff --git a/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java b/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java index 8c548be..c7a487a 100644 --- a/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java +++ b/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java @@ -19,6 +19,7 @@ package org.apache.kylin.job.streaming; import java.util.List; +import java.util.Map; import java.util.Properties; import javax.annotation.Nullable; @@ -35,8 +36,6 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Function; import com.google.common.collect.Collections2; -import org.apache.kylin.source.kafka.util.KafkaClient; - /** * Load prepared data into kafka(for test use) */ @@ -60,10 +59,7 @@ public class Kafka10DataLoader extends StreamDataLoader { } }), ","); -Properties props = new Properties(); -props.put("acks", "1"); -props.put("retry.backoff.ms", "1000"); -KafkaProducer producer = KafkaClient.getKafkaProducer(brokerList, props); +KafkaProducer producer = getKafkaProducer(brokerList, null); for (int i = 0; i < messages.size(); i++) { ProducerRecord keyedMessage = new ProducerRecord (clusterConfig.getTopic(), String.valueOf(i), messages.get(i)); @@ -73,4 +69,30 @@ public class Kafka10DataLoader extends StreamDataLoader { producer.close(); } +public static KafkaProducer getKafkaProducer(String brokers, Properties properties) { +Properties props = constructDefaultKafkaProducerProperties(brokers, properties); +KafkaProducer producer = new KafkaProducer (props); +return producer; +} + +private static Properties constructDefaultKafkaProducerProperties(String brokers, Properties properties) { +Properties props = new Properties(); +props.put("retry.backoff.ms", "1000"); +props.put("bootstrap.servers", brokers); +props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); +props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); +props.put("acks", "1"); +props.put("buffer.memory", 33554432); +props.put("retries", 0); +props.put("batch.size", 16384); +props.put("linger.ms", 50); +props.put("request.timeout.ms", "3"); +if (properties != null) { +for (Map.Entry entry : properties.entrySet()) { +props.put(entry.getKey(), entry.getValue()); +} +} +return props; +} + } http://git-wip-us.apache.org/repos/asf/kylin/blob/cedcca6e/build/conf/kylin-kafka-consumer.properties -- diff --git a/build/conf/kylin-kafka-consumer.properties
[kylin] Git Push Summary
Repository: kylin Updated Branches: refs/heads/KYLIN-1875 [deleted] be9dfe52c
kylin git commit: halfway
Repository: kylin Updated Branches: refs/heads/KYLIN-2283 [created] c1cd0ab69 halfway Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c1cd0ab6 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c1cd0ab6 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c1cd0ab6 Branch: refs/heads/KYLIN-2283 Commit: c1cd0ab69276597c4462f7deccc384683c3f443f Parents: 8d0b504 Author: Li YangAuthored: Thu Dec 15 18:51:00 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:51:00 2016 +0800 -- .../apache/kylin/metadata/model/ColumnDesc.java | 8 ++ .../apache/kylin/metadata/model/TableDesc.java | 9 ++ .../kylin/source/datagen/ColumnGenConfig.java | 86 .../kylin/source/datagen/ColumnGenerator.java | 41 ++ .../source/datagen/ModelDataGenerator.java | 130 +++ .../kylin/source/datagen/TableGenConfig.java| 41 ++ .../org/apache/kylin/source/datagen/Util.java | 68 ++ 7 files changed, 383 insertions(+) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java index 2da1f5e..7105ede 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java @@ -45,6 +45,10 @@ public class ColumnDesc implements Serializable { @JsonInclude(JsonInclude.Include.NON_NULL) private String comment; +@JsonProperty("data_gen") +@JsonInclude(JsonInclude.Include.NON_NULL) +private String dataGen; + // parsed from data type private DataType type; private DataType upgradedType; @@ -148,6 +152,10 @@ public class ColumnDesc implements Serializable { public void setNullable(boolean nullable) { this.isNullable = nullable; } + +public String getDataGen() { +return dataGen; +} public void init(TableDesc table) { this.table = table; http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java -- 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 ab8c465..e845da1 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 @@ -26,6 +26,7 @@ import org.apache.kylin.common.persistence.RootPersistentEntity; import org.apache.kylin.common.util.StringSplitter; import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; @@ -47,6 +48,10 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware { private int sourceType = ISourceAware.ID_HIVE; @JsonProperty("table_type") private String tableType; + +@JsonProperty("data_gen") +@JsonInclude(JsonInclude.Include.NON_NULL) +private String dataGen; private DatabaseDesc database = new DatabaseDesc(); @@ -160,6 +165,10 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware { return getMaxColumnIndex() + 1; } +public String getDataGen() { +return dataGen; +} + public void init() { if (name != null) name = name.toUpperCase(); http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java -- diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java new file mode 100644 index 000..91f5366 --- /dev/null +++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java @@ -0,0 +1,86 @@ +/* + * 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
[9/9] kylin git commit: KYLIN 1875 update cube designer
KYLIN 1875 update cube designer Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/a9230473 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/a9230473 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/a9230473 Branch: refs/heads/master Commit: a9230473e3c3bad774f930ad90f4479dcbe34fa0 Parents: 076fbcf Author: chenzhx <346839...@qq.com> Authored: Tue Dec 13 15:32:54 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/js/controllers/cubeAdvanceSetting.js | 5 -- webapp/app/js/controllers/cubeDimensions.js | 75 ++-- webapp/app/js/controllers/cubeEdit.js | 60 +--- webapp/app/js/controllers/cubeMeasures.js | 21 +- webapp/app/js/controllers/modelDataModel.js | 11 ++- .../cubeDesigner/advanced_settings.html | 3 +- .../app/partials/cubeDesigner/dimensions.html | 46 webapp/app/partials/cubeDesigner/measures.html | 7 +- 8 files changed, 104 insertions(+), 124 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeAdvanceSetting.js -- diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index 8192419..e557afa 100644 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -38,12 +38,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi //rowkey $scope.convertedRowkeys = []; angular.forEach($scope.cubeMetaFrame.rowkey.rowkey_columns,function(item){ -//var _isDictionaries = item.encoding === "dict"?"true":"false"; -//var version=$scope.getTypeVersion(encoding); item.encoding=$scope.removeVersion(item.encoding); -//var _isFixedLength = item.encoding.substring(0,12) === "fixed_length"?"true":"false";//fixed_length:12 -//var _isIntegerLength = item.encoding.substring(0,7) === "integer"?"true":"false"; -//var _isIntLength = item.encoding.substring(0,3) === "int"?"true":"false"; var _encoding = item.encoding; var _valueLength ; var baseKey=item.encoding.replace(/:\d+/,''); http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeDimensions.js -- diff --git a/webapp/app/js/controllers/cubeDimensions.js b/webapp/app/js/controllers/cubeDimensions.js index 7cb850b..e2787a5 100644 --- a/webapp/app/js/controllers/cubeDimensions.js +++ b/webapp/app/js/controllers/cubeDimensions.js @@ -18,7 +18,7 @@ 'use strict'; -KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cubesManager,SweetAlert) { +KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cubesManager,SweetAlert, VdmUtil) { $scope.cubeManager = cubesManager; // Available columns list derived from cube data model. @@ -27,10 +27,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub // Columns selected and disabled status bound to UI, group by table. $scope.selectedColumns = {}; -// Available tables cache: 1st is the fact table, next are lookup tables. -$scope.availableTables = []; - - /** * Helper func to get columns that dimensions based on, three cases: * 1. normal dimension: column array. @@ -40,17 +36,10 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub var dimCols = function (dim) { var referredCols = []; -// Case 3. if (dim.derived && dim.derived.length) { referredCols = referredCols.concat(dim.derived); } -// Case 2. -//if (dim.hierarchy && dim.column.length) { -//referredCols = referredCols.concat(dim.column); -//} - -// Case 1. if (!dim.derived && dim.column) { referredCols.push(dim.column); } @@ -60,52 +49,66 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub // Dump available columns plus column table name, whether is from lookup table. $scope.initColumns = function () { -var factTable = $scope.metaModel.model.fact_table; +var rootFactTable = VdmUtil.removeNameSpace($scope.metaModel.model.fact_table); + +if($scope.aliasName.length==0){ + $scope.aliasName.push(rootFactTable); + $scope.aliasTableMap[rootFactTable]=$scope.metaModel.model.fact_table; + $scope.tableAliasMap[$scope.metaModel.model.fact_table]=rootFactTable; +
[3/9] kylin git commit: KYLIN 1875 update model designer
KYLIN 1875 update model designer Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/d5b8c7f2 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/d5b8c7f2 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/d5b8c7f2 Branch: refs/heads/master Commit: d5b8c7f27820196400f43cdcd88b94206b581484 Parents: 91cf788 Author: chenzhx <346839...@qq.com> Authored: Fri Dec 9 11:44:35 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/index.html | 3 + webapp/app/js/controllers/cubeModel.js | 191 +- .../js/controllers/modelConditionsSettings.js | 84 ++ webapp/app/js/controllers/modelDataModel.js | 254 +++ webapp/app/js/controllers/modelDimensions.js| 6 +- webapp/app/js/controllers/modelEdit.js | 100 +++- webapp/app/js/controllers/modelMeasures.js | 29 ++- webapp/app/js/services/tree.js | 48 +++- webapp/app/js/utils/utils.js| 24 +- .../modelDesigner/conditions_settings.html | 57 ++--- .../app/partials/modelDesigner/data_model.html | 89 --- .../modelDesigner/model_dimensions.html | 4 +- .../partials/modelDesigner/model_measures.html | 59 +++-- 13 files changed, 585 insertions(+), 363 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/d5b8c7f2/webapp/app/index.html -- diff --git a/webapp/app/index.html b/webapp/app/index.html index ad881d5..13b54c8 100644 --- a/webapp/app/index.html +++ b/webapp/app/index.html @@ -187,6 +187,9 @@ + + + http://git-wip-us.apache.org/repos/asf/kylin/blob/d5b8c7f2/webapp/app/js/controllers/cubeModel.js -- diff --git a/webapp/app/js/controllers/cubeModel.js b/webapp/app/js/controllers/cubeModel.js index b20a829..2c7de2c 100644 --- a/webapp/app/js/controllers/cubeModel.js +++ b/webapp/app/js/controllers/cubeModel.js @@ -18,8 +18,7 @@ 'use strict'; -KylinApp.controller('CubeModelCtrl', function ($location,$scope, $modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager) { - +KylinApp.controller('CubeModelCtrl', function ($location,$scope, $modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil) { $scope.modelsManager = modelsManager; $scope.buildGraph = function (model) { @@ -45,193 +44,5 @@ KylinApp.controller('CubeModelCtrl', function ($location,$scope, $modal,cubeConf }; $scope.cubeConfig = cubeConfig; -var DataModel = function () { -return { -name: '', -fact_table: '', -lookups: [] -}; -}; - -var Lookup = function () { -return { -table: '', -join: { -type: '', -primary_key: [], -foreign_key: [], -isCompatible:[], -pk_type:[], -fk_type:[] -} -}; -}; - -// Initialize params. -$scope.lookupState = { -editing: false, -editingIndex: -1, -filter: '' -}; - -$scope.newLookup = Lookup(); - -var lookupList = modelsManager.selectedModel.lookups; - -$scope.openLookupModal = function () { -var modalInstance = $modal.open({ -templateUrl: 'dataModelLookupTable.html', -controller: cubeModelLookupModalCtrl, -backdrop: 'static', -scope: $scope -}); -modalInstance.result.then(function () { -if (!$scope.lookupState.editing) { -$scope.doneAddLookup(); -} else { -$scope.doneEditLookup(); -} - -}, function () { -$scope.cancelLookup(); -}); -}; - -// Controller for cube model lookup modal. -var cubeModelLookupModalCtrl = function ($scope, $modalInstance) { -$scope.ok = function () { -$modalInstance.close(); -}; - -$scope.cancel = function () { -$modalInstance.dismiss('cancel'); -}; -}; - -$scope.editLookup = function (lookup) { -$scope.lookupState.editingIndex = lookupList.indexOf(lookup); -$scope.lookupState.editing = true; - -// Make a copy of model will be editing. -$scope.newLookup = angular.copy(lookup); - -$scope.openLookupModal(); -}; - -$scope.doneAddLookup = function () { -// Push newLookup which bound user input data. -
[5/9] kylin git commit: KYLIN 1875 model visualization
KYLIN 1875 model visualization Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/36a42d86 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/36a42d86 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/36a42d86 Branch: refs/heads/master Commit: 36a42d86f84e0b0ba69b44e809e68fcee5437d65 Parents: d5b8c7f Author: chenzhx <346839...@qq.com> Authored: Mon Dec 12 10:56:17 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/js/controllers/modelDataModel.js | 10 ++-- webapp/app/js/controllers/models.js | 1 + webapp/app/js/services/tree.js | 60 ++-- .../app/partials/modelDesigner/data_model.html | 8 +-- webapp/app/partials/models/model_detail.html| 18 +- 5 files changed, 26 insertions(+), 71 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/controllers/modelDataModel.js -- diff --git a/webapp/app/js/controllers/modelDataModel.js b/webapp/app/js/controllers/modelDataModel.js index d17af91..95a4c70 100644 --- a/webapp/app/js/controllers/modelDataModel.js +++ b/webapp/app/js/controllers/modelDataModel.js @@ -21,7 +21,7 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil) { $scope.modelsManager = modelsManager; $scope.init = function (){ - $scope.rootFactTable=$scope.modelsManager.selectedModel.fact_table; + $scope.FactTable={root:$scope.modelsManager.selectedModel.fact_table}; $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]=$scope.modelsManager.selectedModel.fact_table; $scope.tableAliasMap[$scope.modelsManager.selectedModel.fact_table]=VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table); $scope.aliasName.push(VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)); @@ -137,12 +137,12 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub }; $scope.changeFactTable = function () { delete $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]; - $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.rootFactTable)]=$scope.rootFactTable; + $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.FactTable.root)]=$scope.FactTable.root; delete $scope.tableAliasMap[$scope.modelsManager.selectedModel.fact_table]; - $scope.tableAliasMap[$scope.rootFactTable]=VdmUtil.removeNameSpace($scope.rootFactTable); + $scope.tableAliasMap[$scope.FactTable.root]=VdmUtil.removeNameSpace($scope.FactTable.root); $scope.aliasName.splice($scope.aliasName.indexOf(VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)),1); -$scope.aliasName.push(VdmUtil.removeNameSpace($scope.rootFactTable)); -$scope.modelsManager.selectedModel.fact_table=$scope.rootFactTable; +$scope.aliasName.push(VdmUtil.removeNameSpace($scope.FactTable.root)); +$scope.modelsManager.selectedModel.fact_table=$scope.FactTable.root; } $scope.changeJoinTable = function () { $scope.newLookup.alias=$scope.newLookup.table; http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/controllers/models.js -- diff --git a/webapp/app/js/controllers/models.js b/webapp/app/js/controllers/models.js index 6fe2598..fb2c6d1 100644 --- a/webapp/app/js/controllers/models.js +++ b/webapp/app/js/controllers/models.js @@ -177,6 +177,7 @@ KylinApp.controller('ModelsCtrl', function ($scope, $q, $routeParams, $location, }; var ModelDetailModalCtrl = function ($scope, $location, $modalInstance, scope) { +modelsManager.selectedModel.visiblePage='metadata'; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/services/tree.js -- diff --git a/webapp/app/js/services/tree.js b/webapp/app/js/services/tree.js index 3b444c6..08e290b 100755 --- a/webapp/app/js/services/tree.js +++ b/webapp/app/js/services/tree.js @@ -17,8 +17,8 @@ */ KylinApp.service('ModelGraphService', function (VdmUtil) { -var tablesNodeList=[]; -var aliasList=[]; +var tablesNodeList={}; + // var aliasList=[]; var margin = {top: 20, right: 100, bottom: 20, left: 100}, width = 1100 - margin.right -
[7/9] kylin git commit: KYLIN-2275, Remove dimensions cause wrong remove in advance settings
KYLIN-2275,Remove dimensions cause wrong remove in advance settings Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/076fbcfb Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/076fbcfb Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/076fbcfb Branch: refs/heads/master Commit: 076fbcfb616cee4b4696cae20178ad6dc8365b3c Parents: 36a42d8 Author: luguosheng <550175...@qq.com> Authored: Tue Dec 13 14:41:31 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/js/controllers/cubeEdit.js | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/076fbcfb/webapp/app/js/controllers/cubeEdit.js -- diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index 85bd4b1..b901e48 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -662,14 +662,18 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var mandatory = group.select_rule.mandatory_dims; if(mandatory && mandatory.length){ var columnIndex = mandatory.indexOf(deprecatedItem); - group.select_rule.mandatory_dims.splice(columnIndex,1); + if(columnIndex>=0){ +group.select_rule.mandatory_dims.splice(columnIndex,1); + } } var hierarchys = group.select_rule.hierarchy_dims; if(hierarchys && hierarchys.length){ for(var i=0;i =0) { + group.select_rule.hierarchy_dims[i].splice(hierarchysIndex, 1); +} } } @@ -678,7 +682,9 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio if(joints && joints.length){ for(var i=0;i =0) { + group.select_rule.joint_dims[i].splice(jointIndex, 1); +} } }
[1/9] kylin git commit: KYLIN 1875 minor,data model designer
Repository: kylin Updated Branches: refs/heads/master 8d0b504bf -> 1c2c43cb8 KYLIN 1875 minor,data model designer Signed-off-by: Li YangProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1c2c43cb Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1c2c43cb Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1c2c43cb Branch: refs/heads/master Commit: 1c2c43cb88d2abc5a1ea1cbf18cbede02fe8c4f5 Parents: f55cc5c Author: chenzhx <346839...@qq.com> Authored: Thu Dec 15 17:45:13 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/js/controllers/cubeAdvanceSetting.js | 2 - webapp/app/js/controllers/cubeEdit.js | 12 + webapp/app/js/controllers/modelDataModel.js | 47 ++-- webapp/app/js/controllers/modelEdit.js | 22 - .../modelDesigner/conditions_settings.html | 4 +- .../app/partials/modelDesigner/data_model.html | 24 +- 6 files changed, 63 insertions(+), 48 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/cubeAdvanceSetting.js -- diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index e557afa..20af908 100644 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -160,7 +160,6 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi if (aggregation_group) { list[index] = aggregation_group; } -console.log($scope.cubeMetaFrame.aggregation_groups); }; $scope.refreshAggregationJoint = function (list, index, aggregation_group,joinIndex,jointDim){ @@ -170,7 +169,6 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi if (aggregation_group) { list[index] = aggregation_group; } -console.log($scope.cubeMetaFrame.aggregation_groups); }; $scope.refreshIncludes = function (list, index, aggregation_groups) { http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/cubeEdit.js -- diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index d58f08f..a2b38f9 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -328,6 +328,18 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio if (!modelsManager.getModels().length) { ModelDescService.query({model_name: $scope.cubeMetaFrame.model_name}, function (_model) { $scope.metaModel.model = _model; +var rootFactTable = VdmUtil.removeNameSpace($scope.metaModel.model.fact_table); +$scope.aliasName.push(rootFactTable); + $scope.aliasTableMap[rootFactTable]=$scope.metaModel.model.fact_table; + $scope.tableAliasMap[$scope.metaModel.model.fact_table]=rootFactTable; +angular.forEach($scope.metaModel.model.lookups,function(joinTable){ + if(!joinTable.alias){ +joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); + } + $scope.aliasTableMap[joinTable.alias]=joinTable.table; + $scope.tableAliasMap[joinTable.table]=joinTable.alias; + $scope.aliasName.push(joinTable.alias); +}); }); } $scope.state.cubeSchema = angular.toJson($scope.cubeMetaFrame, true); http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/modelDataModel.js -- diff --git a/webapp/app/js/controllers/modelDataModel.js b/webapp/app/js/controllers/modelDataModel.js index b6edd43..3834e06 100644 --- a/webapp/app/js/controllers/modelDataModel.js +++ b/webapp/app/js/controllers/modelDataModel.js @@ -20,26 +20,13 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil) { $scope.modelsManager = modelsManager; +$scope.VdmUtil = VdmUtil; angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){ if(!joinTable.alias){ joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); } }); -$scope.init = function (){ - $scope.FactTable={root:$scope.modelsManager.selectedModel.fact_table}; -
[4/9] kylin git commit: minor, test query of group by pushdown
minor, test query of group by pushdown Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/520b05f7 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/520b05f7 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/520b05f7 Branch: refs/heads/master Commit: 520b05f744b13ad4cbd37372ae70272099ea48a1 Parents: 8d0b504 Author: Yang LiAuthored: Sat Dec 3 12:33:14 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- .../src/test/resources/query/sql_subquery/query02.sql| 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/520b05f7/kylin-it/src/test/resources/query/sql_subquery/query02.sql -- diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql b/kylin-it/src/test/resources/query/sql_subquery/query02.sql index 3ecfb1b..81b4887 100644 --- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql +++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql @@ -18,19 +18,14 @@ SELECT week_beg_dt - ,sum(price) as sum_price + ,sum(price) FROM ( select test_cal_dt.week_beg_dt ,test_kylin_fact.price from test_kylin_fact -inner JOIN edw.test_cal_dt as test_cal_dt - ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt -inner JOIN test_category_groupings - ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id AND test_kylin_fact.lstg_site_id = test_category_groupings.site_id -inner JOIN edw.test_sites as test_sites - ON test_kylin_fact.lstg_site_id = test_sites.site_id + inner join edw.test_cal_dt as test_cal_dt +on test_kylin_fact.cal_dt = test_cal_dt.cal_dt ) t group by week_beg_dt -order by week_beg_dt \ No newline at end of file
[8/9] kylin git commit: KYLIN 1875 update modify alias
KYLIN 1875 update modify alias Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/f55cc5c4 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/f55cc5c4 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/f55cc5c4 Branch: refs/heads/master Commit: f55cc5c446e8878d059019561894cc70bd0ab89b Parents: e7cc152 Author: chenzhx <346839...@qq.com> Authored: Wed Dec 14 16:33:31 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/css/AdminLTE.css | 5 + webapp/app/js/controllers/modelDataModel.js | 141 --- webapp/app/js/controllers/modelEdit.js | 8 +- webapp/app/js/services/tree.js | 3 + .../app/partials/modelDesigner/data_model.html | 25 ++-- 5 files changed, 119 insertions(+), 63 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/f55cc5c4/webapp/app/css/AdminLTE.css -- diff --git a/webapp/app/css/AdminLTE.css b/webapp/app/css/AdminLTE.css index 6688457..857dbf7 100644 --- a/webapp/app/css/AdminLTE.css +++ b/webapp/app/css/AdminLTE.css @@ -4744,6 +4744,11 @@ Gradient Background colors opacity: 1; filter: alpha(opacity=100); } +.model_graph svg{ + width:1100px !important; + height:600px !important; +} + /* * Misc: print http://git-wip-us.apache.org/repos/asf/kylin/blob/f55cc5c4/webapp/app/js/controllers/modelDataModel.js -- diff --git a/webapp/app/js/controllers/modelDataModel.js b/webapp/app/js/controllers/modelDataModel.js index a09101b..b6edd43 100644 --- a/webapp/app/js/controllers/modelDataModel.js +++ b/webapp/app/js/controllers/modelDataModel.js @@ -22,7 +22,7 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub $scope.modelsManager = modelsManager; angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){ if(!joinTable.alias){ - joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); +joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); } }); $scope.init = function (){ @@ -110,10 +110,21 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub $scope.editLookup = function (lookup) { $scope.lookupState.editingIndex = lookupList.indexOf(lookup); $scope.lookupState.editing = true; - // Make a copy of model will be editing. $scope.newLookup = angular.copy(lookup); +$scope.newLookup.join.pk_type = []; +$scope.newLookup.join.fk_type = []; +$scope.newLookup.join.isCompatible=[]; $scope.newLookup.joinTable=VdmUtil.getNameSpaceTopName($scope.newLookup.join.foreign_key[0]); +angular.forEach($scope.newLookup.join.primary_key,function(pk,index){ +$scope.newLookup.join.pk_type[index] = TableModel.getColumnType(VdmUtil.removeNameSpace(pk),$scope.newLookup.table); +$scope.newLookup.join.fk_type[index] = TableModel.getColumnType(VdmUtil.removeNameSpace($scope.newLookup.join.foreign_key[index]),$scope.aliasTableMap[$scope.newLookup.joinTable]); + if($scope.newLookup.join.pk_type[index]!==$scope.newLookup.join.fk_type[index]){ + $scope.newLookup.join.isCompatible[index]=false; +}else{ + $scope.newLookup.join.isCompatible[index]=true; +} +}); $scope.openLookupModal(); }; @@ -129,24 +140,51 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub $scope.doneEditLookup = function () { // Copy edited model to destination model. - $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]=$scope.modelsManager.selectedModel.fact_table; - $scope.aliasName=[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]; angular.copy($scope.newLookup, lookupList[$scope.lookupState.editingIndex]); -angular.forEach(lookupList,function(joinTable){ - $scope.aliasName.push(joinTable.alias); - $scope.aliasTableMap[joinTable.alias]=joinTable.table; - // $scope.tableAliasMap[joinTable.alias]=joinTable.table; -}); +var oldAlias=$scope.aliasName[$scope.lookupState.editingIndex+1]; +var newAlias=$scope.newLookup.alias; +if(oldAlias!=newAlias){ + $scope.aliasName[$scope.lookupState.editingIndex+1]=newAlias; + for(var i=0;i<$scope.newLookup.join.primary_key.length;i++){ +
[2/9] kylin git commit: KYLIN 1875 update tooltip
KYLIN 1875 update tooltip Signed-off-by: zhongjianProject: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e7cc152e Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e7cc152e Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e7cc152e Branch: refs/heads/master Commit: e7cc152e69ce98cba7fd3be5251d334314f25828 Parents: a923047 Author: chenzhx <346839...@qq.com> Authored: Tue Dec 13 15:57:34 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- webapp/app/partials/cubeDesigner/dimensions.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/e7cc152e/webapp/app/partials/cubeDesigner/dimensions.html -- diff --git a/webapp/app/partials/cubeDesigner/dimensions.html b/webapp/app/partials/cubeDesigner/dimensions.html index 8c1cdab..7fedeb6 100644 --- a/webapp/app/partials/cubeDesigner/dimensions.html +++ b/webapp/app/partials/cubeDesigner/dimensions.html @@ -57,7 +57,7 @@ -{{dimension.table}} +{{dimension.table}}
[6/9] kylin git commit: minor sql fix, CI passed
minor sql fix, CI passed Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/91cf788c Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/91cf788c Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/91cf788c Branch: refs/heads/master Commit: 91cf788cebd66ffa8b56e37586fa3207c09f2d2e Parents: 520b05f Author: Yang LiAuthored: Tue Dec 6 07:22:03 2016 +0800 Committer: Li Yang Committed: Thu Dec 15 18:57:36 2016 +0800 -- kylin-it/src/test/resources/query/sql_subquery/query02.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/91cf788c/kylin-it/src/test/resources/query/sql_subquery/query02.sql -- diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql b/kylin-it/src/test/resources/query/sql_subquery/query02.sql index 81b4887..e6751b7 100644 --- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql +++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql @@ -18,7 +18,7 @@ SELECT week_beg_dt - ,sum(price) + ,sum(price) as sum_price FROM ( select