[jira] [Commented] (KYLIN-2720) Should not allow user to access to all tables' metadata of a project

2017-08-31 Thread Shaofeng SHI (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16150072#comment-16150072
 ] 

Shaofeng SHI commented on KYLIN-2720:
-

Hi mingming, yes I see your patch is very clear. Since 2.1, the design is 
changed, and query pushdown is introduced, that means without cube user can 
query the tables (you can take a try). Then filtering the tables by cube is not 
needed any more.  [~mahongbin] can correct me if my understanding is wrong.

> Should not allow user to access to all tables' metadata of a project
> 
>
> Key: KYLIN-2720
> URL: https://issues.apache.org/jira/browse/KYLIN-2720
> Project: Kylin
>  Issue Type: Improvement
>Reporter: qiumingming
>Assignee: qiumingming
> Attachments: KYLIN-2720.patch
>
>
> Currently, user can access to all tables and columns metadata of a specific 
> project as long as he can access to this project, which is not reasonable. 
> User should just allow to access to tables that he owned cubes dependent to. 
> However, user can see some other tables in the web UI in current version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2827) cube已经建好了,再insight 查询回报错

2017-08-31 Thread Shaofeng SHI (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16150069#comment-16150069
 ] 

Shaofeng SHI commented on KYLIN-2827:
-

Hi Liuxd, could you drop the question to apache kylin dev mailing list 
(d...@kylin.apache.org)? You need subscribe it (send an email to 
dev-subscr...@kylin.apache.org) if you haven't.

JIRA is for tracking bug and requirements, not for problem solving. You issue 
seems be an environment issue. Thanks for the coorporation.

> cube已经建好了,再insight  查询回报错
> -
>
> Key: KYLIN-2827
> URL: https://issues.apache.org/jira/browse/KYLIN-2827
> Project: Kylin
>  Issue Type: Bug
>Reporter: liuxd
>
> Error while executing SQL "select * from GDL_LOANRPY_DET LIMIT 5": 
> org.apache.hadoop.hbase.exceptions.UnknownProtocolException: 
> org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered 
> coprocessor service found for name CubeVisitService in region 
> KYLIN_ZW5LTEKVAL,,1504166387142.432256ac271b98fc6afd29bc7e054502. at 
> org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7582) 
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1890)
>  at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1872)
>  at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32389)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2117) at 
> org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) at 
> java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2831) Does kylin do not support underlined fields?

2017-08-31 Thread dengpitt (JIRA)
dengpitt created KYLIN-2831:
---

 Summary: Does kylin do not support underlined fields?
 Key: KYLIN-2831
 URL: https://issues.apache.org/jira/browse/KYLIN-2831
 Project: Kylin
  Issue Type: Improvement
  Components: General
Affects Versions: v2.0.0
Reporter: dengpitt
 Fix For: Future


When I choose the dimension contains _uid will report the following error:

17/08/31 10:43:35 [main]: INFO parse.ParseDriver: Parsing command: 
INSERT OVERWRITE TABLE 
kylin_intermediate_uc_3cf963bd_53ca_47d6_ae0c_a71b364fc558 SELECT
USER_GAMBLING._UID
,USER_GAMBLING.BID
FROM DEFAULT.USER_GAMBLING as USER_GAMBLING 
WHERE (USER_GAMBLING.TM >= 20170831 AND USER_GAMBLING.TM < 20170831)

NoViableAltException(13@[127:1: selectItem : ( ( tableAllColumns )=> 
tableAllColumns -> ^( TOK_SELEXPR tableAllColumns ) | ( expression ( ( ( KW_AS 
)? identifier ) | ( KW_AS LPAREN identifier ( COMMA identifier )* RPAREN ) )? ) 
-> ^( TOK_SELEXPR expression ( identifier )* ) );])
at 
org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser$DFA17.specialStateTransition(HiveParser_SelectClauseParser.java:11835)
at org.antlr.runtime.DFA.predict(DFA.java:80)
at 
org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectItem(HiveParser_SelectClauseParser.java:2853)
at 
org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectList(HiveParser_SelectClauseParser.java:1373)
at 
org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectClause(HiveParser_SelectClauseParser.java:1128)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.selectClause(HiveParser.java:45827)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.selectStatement(HiveParser.java:41495)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.regularBody(HiveParser.java:41230)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpressionBody(HiveParser.java:40413)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:40283)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1590)
at 
org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1109)
at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:202)
at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:396)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:311)
at 
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:708)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: ParseException line 3:14 cannot recognize input near 'USER_GAMBLING' 
'.' '_UID' in selection target
17/08/31 10:43:35 [main]: ERROR ql.Driver: FAILED: ParseException line 3:14 
cannot recognize input near 'USER_GAMBLING' '.' '_UID' in selection target
org.apache.hadoop.hive.ql.parse.ParseException: line 3:14 cannot recognize 
input near 'USER_GAMBLING' '.' '_UID' in selection target
at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:205)
at 
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:396)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(Cli

[jira] [Updated] (KYLIN-2802) Enable cube planner phase one

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2802:
--
Description: 
This phase happens during cube building. To be able to trigger cube planner, 
one of the following preconditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

We also introduce a threshold. If the total number of defined cuboids is less 
than this threshold, cube planner should not be triggered.

  was:
This phase happens during cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

We also introduce a threshold. If the total number of defined cuboids is less 
than this threshold, cube planner should not be triggered.


> Enable cube planner phase one
> -
>
> Key: KYLIN-2802
> URL: https://issues.apache.org/jira/browse/KYLIN-2802
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Fix For: v2.2.0
>
>
> This phase happens during cube building. To be able to trigger cube planner, 
> one of the following preconditions should be satisfied.
> * The cube is empty
> * Job is for refreshing the only one segment.
> Since cube planner is based on cuboid row count, if the first segment is 
> empty and there's no useful row count info, cube planner should not be 
> triggered in this phase.
> We also introduce a threshold. If the total number of defined cuboids is less 
> than this threshold, cube planner should not be triggered.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2802) Enable cube planner phase one

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2802:
--
Description: 
This phase happens during cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

We also introduce a threshold. If the total number of defined cuboids is less 
than this threshold, cube planner should not be triggered.

  was:
This phase happens at cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

We also introduce a threshold. If the total number of defined cuboids is less 
than this threshold, cube planner should not be triggered.


> Enable cube planner phase one
> -
>
> Key: KYLIN-2802
> URL: https://issues.apache.org/jira/browse/KYLIN-2802
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Fix For: v2.2.0
>
>
> This phase happens during cube building. To trigger cube planner, one of the 
> following conditions should be satisfied.
> * The cube is empty
> * Job is for refreshing the only one segment.
> Since cube planner is based on cuboid row count, if the first segment is 
> empty and there's no useful row count info, cube planner should not be 
> triggered in this phase.
> We also introduce a threshold. If the total number of defined cuboids is less 
> than this threshold, cube planner should not be triggered.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2802) Enable cube planner phase one

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2802:
--
Description: 
This phase happens at cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

We also introduce a threshold. If the total number of defined cuboids is less 
than this threshold, cube planner should not be triggered.

  was:
This phase happens at cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.


> Enable cube planner phase one
> -
>
> Key: KYLIN-2802
> URL: https://issues.apache.org/jira/browse/KYLIN-2802
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Fix For: v2.2.0
>
>
> This phase happens at cube building. To trigger cube planner, one of the 
> following conditions should be satisfied.
> * The cube is empty
> * Job is for refreshing the only one segment.
> Since cube planner is based on cuboid row count, if the first segment is 
> empty and there's no useful row count info, cube planner should not be 
> triggered in this phase.
> We also introduce a threshold. If the total number of defined cuboids is less 
> than this threshold, cube planner should not be triggered.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2734) Introduce hot cuboids export & import

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2734:
--
Description: 
The motivation of this feature is to provide users a way to directly designate 
a dimension set to be prebuilt. It's an additional way to define prebuilt 
cuboids besides static rules and will only be feasible for an empty cube. If 
hot cuboids are imported during cube design phase and it is able to go through 
cube planner algorithm to get recommended cuboids, regardless whether the total 
number of defined cuboids is less than the threshold to trigger cube planner 
phase one, the cube planner phase one will be triggered and these imported 
cuboids will be regarded as mandatory cuboids for cube planner algorithm.

Corresponding to the import feature, hot cuboids should be able to exported for 
future cube upgrading and so on.

  was:
The motivation of this feature is to provide users a way to directly designate 
a dimension set to be prebuilt. It's an additional way to define prebuilt 
cuboids besides static rules and will only be feasible for an empty cube. If 
hot cuboids are imported during cube design phase, cube planner phase one will 
be triggered and these imported cuboids will be regarded as mandatory cuboids 
for cube planner algorithm.

Corresponding to the import feature, hot cuboids should be able to exported for 
future cube upgrading and so on.


> Introduce hot cuboids export & import
> -
>
> Key: KYLIN-2734
> URL: https://issues.apache.org/jira/browse/KYLIN-2734
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> The motivation of this feature is to provide users a way to directly 
> designate a dimension set to be prebuilt. It's an additional way to define 
> prebuilt cuboids besides static rules and will only be feasible for an empty 
> cube. If hot cuboids are imported during cube design phase and it is able to 
> go through cube planner algorithm to get recommended cuboids, regardless 
> whether the total number of defined cuboids is less than the threshold to 
> trigger cube planner phase one, the cube planner phase one will be triggered 
> and these imported cuboids will be regarded as mandatory cuboids for cube 
> planner algorithm.
> Corresponding to the import feature, hot cuboids should be able to exported 
> for future cube upgrading and so on.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2734) Introduce hot cuboids export & import

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2734:
--
Description: 
The motivation of this feature is to provide users a way to directly designate 
a dimension set to be prebuilt. It's an additional way to define prebuilt 
cuboids besides static rules and will only be feasible for an empty cube. If 
hot cuboids are imported during cube design phase, cube planner phase one will 
be triggered and these imported cuboids will be regarded as mandatory cuboids 
for cube planner algorithm.

Corresponding to the import feature, hot cuboids should be able to exported for 
future cube upgrading and so on.

> Introduce hot cuboids export & import
> -
>
> Key: KYLIN-2734
> URL: https://issues.apache.org/jira/browse/KYLIN-2734
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> The motivation of this feature is to provide users a way to directly 
> designate a dimension set to be prebuilt. It's an additional way to define 
> prebuilt cuboids besides static rules and will only be feasible for an empty 
> cube. If hot cuboids are imported during cube design phase, cube planner 
> phase one will be triggered and these imported cuboids will be regarded as 
> mandatory cuboids for cube planner algorithm.
> Corresponding to the import feature, hot cuboids should be able to exported 
> for future cube upgrading and so on.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2822) Introduce sunburst chart to show cuboid tree

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2822:
--
Description: To visualize cuboid tree, we introduce sunburst chart. At this 
chart, the base cuboid is at the center and the parent-child relationship is 
intuitive. What's more, additional info can be displayed for each cuboid, like 
cuboid (target) query count, cuboid row count, etc.

> Introduce sunburst chart to show cuboid tree
> 
>
> Key: KYLIN-2822
> URL: https://issues.apache.org/jira/browse/KYLIN-2822
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To visualize cuboid tree, we introduce sunburst chart. At this chart, the 
> base cuboid is at the center and the parent-child relationship is intuitive. 
> What's more, additional info can be displayed for each cuboid, like cuboid 
> (target) query count, cuboid row count, etc.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2733) Introduce optimize job for adjusting cuboid set

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2733:
--
Description: 
Optimize job is for adjusting existing cuboid set. Its data source is base 
cuboid. And it's another input is a set of cuboids recommended by cube planner 
algorithms. By comparing the new recommended cuboids _*R*_ and current prebuilt 
cuboids *C*, optimize job will do the following things:
# Filter the overlap cuboids and remove the ones in *C* but not in *R*

> Introduce optimize job for adjusting cuboid set
> ---
>
> Key: KYLIN-2733
> URL: https://issues.apache.org/jira/browse/KYLIN-2733
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> Optimize job is for adjusting existing cuboid set. Its data source is base 
> cuboid. And it's another input is a set of cuboids recommended by cube 
> planner algorithms. By comparing the new recommended cuboids _*R*_ and 
> current prebuilt cuboids *C*, optimize job will do the following things:
> # Filter the overlap cuboids and remove the ones in *C* but not in *R*



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2733) Introduce optimize job for adjusting cuboid set

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2733:
--
Description: 
Optimize job is for adjusting existing cuboid set. Its data source is base 
cuboid. And it's another input is a set of cuboids recommended by cube planner 
algorithms. By comparing the new recommended cuboids _*R*_ and current prebuilt 
cuboids _*C*_, optimize job will do the following things:
# Filter the overlap cuboids and remove the ones in _*C*_ but not in _*R*_
# Update the shard id of the overlap cuboids
# Add the missing cuboids in _*R*_ but not in _*C*_ with base cuboid as input 
for cubing

  was:
Optimize job is for adjusting existing cuboid set. Its data source is base 
cuboid. And it's another input is a set of cuboids recommended by cube planner 
algorithms. By comparing the new recommended cuboids _*R*_ and current prebuilt 
cuboids *C*, optimize job will do the following things:
# Filter the overlap cuboids and remove the ones in *C* but not in *R*


> Introduce optimize job for adjusting cuboid set
> ---
>
> Key: KYLIN-2733
> URL: https://issues.apache.org/jira/browse/KYLIN-2733
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> Optimize job is for adjusting existing cuboid set. Its data source is base 
> cuboid. And it's another input is a set of cuboids recommended by cube 
> planner algorithms. By comparing the new recommended cuboids _*R*_ and 
> current prebuilt cuboids _*C*_, optimize job will do the following things:
> # Filter the overlap cuboids and remove the ones in _*C*_ but not in _*R*_
> # Update the shard id of the overlap cuboids
> # Add the missing cuboids in _*R*_ but not in _*C*_ with base cuboid as input 
> for cubing



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Description: 
The basic idea of cube optimization without influencing current queries is 
shown at figure [^One-Click Cube Optimization.png]. 
To optimize a cube with N ready segments,
* For each segment, a corresponding optimize job will be triggered to adjust 
its cuboids.
* If a optimize job finished, it's resulting segment status should be 
READY_PENDING and will not serve query.
* There should be job to wait for all of the optimize jobs finishing their 
work, and then atomically remove old READY segments and update the status of 
READY_PENDING segments to READY for serving query. Here, we call this kind of 
job as {color:#f79232}checkpoint executable{color}.

  was:
The basic idea of cube optimization without influencing current queries is 
shown at figure [^One-Click Cube Optimization.png]. 
To optimize a cube with N ready segments,
* For each segment, a corresponding optimize job will be triggered to adjust 
its cuboids.
* If a optimize job finished, it's resulting segment status should be 
READY_PENDING and will not serve query.
* There should be job to wait for all of the optimize jobs finishing their 
work, and then atomically remove old READY segments and update the status of 
READY_PENDING segments to READY for serving query.


> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>
> The basic idea of cube optimization without influencing current queries is 
> shown at figure [^One-Click Cube Optimization.png]. 
> To optimize a cube with N ready segments,
> * For each segment, a corresponding optimize job will be triggered to adjust 
> its cuboids.
> * If a optimize job finished, it's resulting segment status should be 
> READY_PENDING and will not serve query.
> * There should be job to wait for all of the optimize jobs finishing their 
> work, and then atomically remove old READY segments and update the status of 
> READY_PENDING segments to READY for serving query. Here, we call this kind of 
> job as {color:#f79232}checkpoint executable{color}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Description: 
The basic idea of cube optimization without influencing current queries is 
shown at figure [^One-Click Cube Optimization.png]. 
To optimize a cube with N ready segments,
* For each segment, a corresponding optimize job will be triggered to adjust 
its cuboids.
* If a optimize job finished, it's resulting segment status should be 
READY_PENDING and will not serve query.
* There should be job to wait for all of the optimize jobs finishing their 
work, and then atomically remove old READY segments and update the status of 
READY_PENDING segments to READY for serving query.

  was:
The basic idea of cube optimization without influencing current queries is 
shown at figure [^One-Click Cube Optimization.png]. 
To optimize a cube with N ready segments,
* For each segment, a corresponding optimize job will be triggered to adjust 
its cuboids.
* If a optimize job finished, it's resulting segment status should be 
READY_PENDING


> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>
> The basic idea of cube optimization without influencing current queries is 
> shown at figure [^One-Click Cube Optimization.png]. 
> To optimize a cube with N ready segments,
> * For each segment, a corresponding optimize job will be triggered to adjust 
> its cuboids.
> * If a optimize job finished, it's resulting segment status should be 
> READY_PENDING and will not serve query.
> * There should be job to wait for all of the optimize jobs finishing their 
> work, and then atomically remove old READY segments and update the status of 
> READY_PENDING segments to READY for serving query.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Description: 
The basic idea of cube optimization without influencing current queries is 
shown at figure [^One-Click Cube Optimization.png]. 
To optimize a cube with N ready segments,
* For each segment, a corresponding optimize job will be triggered to adjust 
its cuboids.
* If a optimize job finished, it's resulting segment status should be 
READY_PENDING

  was:The basic idea of cube optimization without influencing current queries 
is shown at figure [^One-Click Cube Optimization.png]


> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>
> The basic idea of cube optimization without influencing current queries is 
> shown at figure [^One-Click Cube Optimization.png]. 
> To optimize a cube with N ready segments,
> * For each segment, a corresponding optimize job will be triggered to adjust 
> its cuboids.
> * If a optimize job finished, it's resulting segment status should be 
> READY_PENDING



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Description: The basic idea of cube optimization without influencing 
current queries is shown at figure [^One-Click Cube Optimization.png]  (was: 
The basic idea of cube optimization without influencing current queries is 
shown at figure [^])

> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>
> The basic idea of cube optimization without influencing current queries is 
> shown at figure [^One-Click Cube Optimization.png]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Description: The basic idea of cube optimization without influencing 
current queries is shown at figure [^]

> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>
> The basic idea of cube optimization without influencing current queries is 
> shown at figure [^]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2731:
--
Attachment: One-Click Cube Optimization.png

> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Attachments: One-Click Cube Optimization.png
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2732) Introduce base cuboid as a new input for cubing job

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2732:
--
Description: If the design for an existing cube is not good, which means 
its prebuilt cuboid set is not suitable for query, there should be a way to 
adjust this cuboid set. This is phase two of cube planner, also called cube 
optimization. Its data source should be base cuboid rather than the original 
data source, like hive, for the original one may be changed. Thus for cubing 
jobs, like cube optimization, we introduce a new input , base cuboid formatted 
by sequence file.  (was: If the design for an existing cube is not good, which 
means its prebuilt cuboid set is not suitable for query, there should be a way 
to adjust this cuboid set. Here, we call 

For cube optimization, cuboids to be pre-calculated need to be adjusted. During 
this phase, there are three kinds of cuboids:
# cuboids to be kept
# cuboids to be removed
# cuboids to be added

The *cuboids to be added* can be derived from the base cuboid. Thus for cubing 
job, we introduce a new input , base cuboid formatted by sequence file)

> Introduce base cuboid as a new input for cubing job
> ---
>
> Key: KYLIN-2732
> URL: https://issues.apache.org/jira/browse/KYLIN-2732
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> If the design for an existing cube is not good, which means its prebuilt 
> cuboid set is not suitable for query, there should be a way to adjust this 
> cuboid set. This is phase two of cube planner, also called cube optimization. 
> Its data source should be base cuboid rather than the original data source, 
> like hive, for the original one may be changed. Thus for cubing jobs, like 
> cube optimization, we introduce a new input , base cuboid formatted by 
> sequence file.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2732) Introduce base cuboid as a new input for cubing job

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2732:
--
Description: 
If the design for an existing cube is not good, which means its prebuilt cuboid 
set is not suitable for query, there should be a way to adjust this cuboid set. 
Here, we call 

For cube optimization, cuboids to be pre-calculated need to be adjusted. During 
this phase, there are three kinds of cuboids:
# cuboids to be kept
# cuboids to be removed
# cuboids to be added

The *cuboids to be added* can be derived from the base cuboid. Thus for cubing 
job, we introduce a new input , base cuboid formatted by sequence file

  was:
For cube optimization, cuboids to be pre-calculated need to be adjusted. During 
this phase, there are three kinds of cuboids:
# cuboids to be kept
# cuboids to be removed
# cuboids to be added

The *cuboids to be added* can be derived from the base cuboid. Thus for cubing 
job, we introduce a new input , base cuboid formatted by sequence file


> Introduce base cuboid as a new input for cubing job
> ---
>
> Key: KYLIN-2732
> URL: https://issues.apache.org/jira/browse/KYLIN-2732
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> If the design for an existing cube is not good, which means its prebuilt 
> cuboid set is not suitable for query, there should be a way to adjust this 
> cuboid set. Here, we call 
> For cube optimization, cuboids to be pre-calculated need to be adjusted. 
> During this phase, there are three kinds of cuboids:
> # cuboids to be kept
> # cuboids to be removed
> # cuboids to be added
> The *cuboids to be added* can be derived from the base cuboid. Thus for 
> cubing job, we introduce a new input , base cuboid formatted by sequence file



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2802) Enable cube planner phase one

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2802:
--
Description: 
This phase happens at cube building. To trigger cube planner, one of the 
following conditions should be satisfied.
* The cube is empty
* Job is for refreshing the only one segment.

Since cube planner is based on cuboid row count, if the first segment is empty 
and there's no useful row count info, cube planner should not be triggered in 
this phase.

> Enable cube planner phase one
> -
>
> Key: KYLIN-2802
> URL: https://issues.apache.org/jira/browse/KYLIN-2802
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
> Fix For: v2.2.0
>
>
> This phase happens at cube building. To trigger cube planner, one of the 
> following conditions should be satisfied.
> * The cube is empty
> * Job is for refreshing the only one segment.
> Since cube planner is based on cuboid row count, if the first segment is 
> empty and there's no useful row count info, cube planner should not be 
> triggered in this phase.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2730) Introduce genetic algorithm for cube planner

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2730:
--
Description: 
The basic idea of this algorithm is to evolve the generation of chromosome, 
where a chromosome is a cuboid set to prebuilt. The detailed steps are as 
follows:
# Initialize a generation of chromosome
# Evolve the generation by selection, crossover and mutation by N round.
# From the final generation, choose a best chromosome that is a best cuboid set 
to recommend.

> Introduce genetic algorithm for cube planner
> 
>
> Key: KYLIN-2730
> URL: https://issues.apache.org/jira/browse/KYLIN-2730
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> The basic idea of this algorithm is to evolve the generation of chromosome, 
> where a chromosome is a cuboid set to prebuilt. The detailed steps are as 
> follows:
> # Initialize a generation of chromosome
> # Evolve the generation by selection, crossover and mutation by N round.
> # From the final generation, choose a best chromosome that is a best cuboid 
> set to recommend.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2729) Introduce greedy algorithm for cube planner

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2729:
--
Description: The basic idea of greedy algorithm is to select the highest 
benefit cuboid round by round. Notice that the result got from this algorithm 
is not the global optimization one

> Introduce greedy algorithm for cube planner
> ---
>
> Key: KYLIN-2729
> URL: https://issues.apache.org/jira/browse/KYLIN-2729
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> The basic idea of greedy algorithm is to select the highest benefit cuboid 
> round by round. Notice that the result got from this algorithm is not the 
> global optimization one



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2826) Add basic support classes for cube planner algorithms

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2826:
--
Description: 
Cube planner aims at recommending cost-effective cuboids. Currently we only 
consider {color:#f79232}*scanned row count*{color} at {color:#f79232}*query 
phase*{color} for the cost. The related formula is as follows:
bq. cuboid cost = scanned row count on target cuboid * query probability

As we know the base cuboid is to be prebuilt absolutely. If only the base 
cuboid is prebuilt, for other cuboids, the target cuboid will be the base 
cuboid and the _(scanned row count)_ is supposed to be large. When another 
cuboid is selected to be prebuilt, for its descendant cuboids including itself, 
it will be their target cuboid and the _(scanned row count)_ is supposed to 
become smaller. Thus, this newly cuboid will bring some benefit. We employ BPUS 
(benefit per unit space) for cuboid selection. The related formula for the 
benefit of a cuboid is as follows:
bq. cuboid benefit = total reduced cuboid cost) / (cuboid row count)

Cuboid selection is based on one basic rule:
bq. {color:#f79232}*RULE 1: Cuboids with more benefit will be preferred.*{color}

For a cube, cube planner can be used in two phases.
* Phase one is for cube normal building.
To use cube planner for this phase, the cube should be empty or the building 
job is for refreshing the only one segment. In this phase, we regard each 
cuboid own the same _(query probability)_ due to lack of query statistics.
* Phase two is for cube optimization.
Currently cube optimization is manually triggered. _(query probability)_ will 
be considered and its related query statistics are fetched from system cubes. 
Based on _(query probability)_, it's possible for us to add missing cuboids 
without cuboid row count info. It's based on a rule, called 
{color:#f79232}*mandatory rule*{color}.

bq. {color:#f79232}*RULE 2: A cuboid not pre-built should be added, if it's 
queried frequently and the average rollup row count from its pre-built parent 
cuboid is large.*{color}

>From above introduction, we know cube planner is based on statistics, 
>including cuboid row count, cuboid hit frequency, etc. Class {{CuboidStats}} 
>is introduced to provide these info for related algorithm. 

Here, we also define the interface {{CuboidRecommendAlgorithm}} for different 
kinds of cube planner algorithms. As we know, if there's no space limitation, 
to pre-build all of the cuboids will bring the most benefit. However, it's not 
feasible in real world. Then with space limitation, an interface is defined to 
recommend a set of high benefit cuboids.
{code}
List recommend(double expansionRate);
{code}
Here, the expansion rate is compared to the size of base cuboid.

  was:
Cube planner aims at recommending cost-effective cuboids. Currently we only 
consider {color:#f79232}*scanned row count*{color} at {color:#f79232}*query 
phase*{color} for the cost. The related formula is as follows:
bq. cuboid cost = scanned row count on target cuboid * query probability

As we know the base cuboid is to be prebuilt absolutely. If only the base 
cuboid is prebuilt, for other cuboids, the target cuboid will be the base 
cuboid and the _(scanned row count)_ is supposed to be large. When another 
cuboid is selected to be prebuilt, for its descendant cuboids including itself, 
it will be their target cuboid and the _(scanned row count)_ is supposed to 
become smaller. Thus, this newly cuboid will bring some benefit. We employ BPUS 
(benefit per unit space) for cuboid selection. The related formula for the 
benefit of a cuboid is as follows:
bq. cuboid benefit = total reduced cuboid cost) / (cuboid row count)

Cuboid selection is based on one basic rule:
bq. {color:#f79232}*RULE: Cuboids with more benefit will be preferred.*{color}



> Add basic support classes for cube planner algorithms
> -
>
> Key: KYLIN-2826
> URL: https://issues.apache.org/jira/browse/KYLIN-2826
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> Cube planner aims at recommending cost-effective cuboids. Currently we only 
> consider {color:#f79232}*scanned row count*{color} at {color:#f79232}*query 
> phase*{color} for the cost. The related formula is as follows:
> bq. cuboid cost = scanned row count on target cuboid * query probability
> As we know the base cuboid is to be prebuilt absolutely. If only the base 
> cuboid is prebuilt, for other cuboids, the target cuboid will be the base 
> cuboid and the _(scanned row count)_ is supposed to be large. When another 
> cuboid is selected to be prebuilt, for its descendant cuboids including 
> itself, it will be their target cuboid and the _(scanned row count)_ is 
> supposed to become smaller. Thus, this 

[jira] [Created] (KYLIN-2829) Union two subquery under join make SQL return null values

2017-08-31 Thread Roger Shi (JIRA)
Roger Shi created KYLIN-2829:


 Summary: Union two subquery under join make SQL return null values
 Key: KYLIN-2829
 URL: https://issues.apache.org/jira/browse/KYLIN-2829
 Project: Kylin
  Issue Type: Bug
Reporter: Roger Shi


SQL like:

{code:sql}
select sum(TEST_A.PRICE) as ITEM_CNT
FROM TEST_KYLIN_FACT as TEST_A
join (
select * from ITEM_CNT where CAL_DT < DATE '2012-06-01'
union
select * from ITEM_CNT where CAL_DT > DATE '2013-06-01'
) TEST_B
on TEST_A.TRANS_ID = TEST_B.TRANS_ID
group by TEST_A.SELLER_ID
{code}

returns null values.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2830) Union two subquery under join make SQL return null values

2017-08-31 Thread Roger Shi (JIRA)
Roger Shi created KYLIN-2830:


 Summary: Union two subquery under join make SQL return null values
 Key: KYLIN-2830
 URL: https://issues.apache.org/jira/browse/KYLIN-2830
 Project: Kylin
  Issue Type: Bug
Reporter: Roger Shi


SQL like:

{code:sql}
select sum(TEST_A.PRICE) as ITEM_CNT
FROM TEST_KYLIN_FACT as TEST_A
join (
select * from ITEM_CNT where CAL_DT < DATE '2012-06-01'
union
select * from ITEM_CNT where CAL_DT > DATE '2013-06-01'
) TEST_B
on TEST_A.TRANS_ID = TEST_B.TRANS_ID
group by TEST_A.SELLER_ID
{code}

returns null values.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2828) Project meta should be involved for Spark Cubing

2017-08-31 Thread Wang Cheng (JIRA)
Wang Cheng created KYLIN-2828:
-

 Summary: Project meta should be involved for Spark Cubing
 Key: KYLIN-2828
 URL: https://issues.apache.org/jira/browse/KYLIN-2828
 Project: Kylin
  Issue Type: Bug
Reporter: Wang Cheng
Assignee: Wang Cheng
Priority: Minor


java.lang.IllegalStateException: Error to load 
/model_desc/ci_inner_join_model.json
at 
org.apache.kylin.metadata.MetadataManager.reloadDataModelDescAt(MetadataManager.java:633)
at 
org.apache.kylin.metadata.MetadataManager.reloadAllDataModel(MetadataManager.java:611)
at 
org.apache.kylin.metadata.MetadataManager.init(MetadataManager.java:323)
at 
org.apache.kylin.metadata.MetadataManager.(MetadataManager.java:136)
at 
org.apache.kylin.metadata.MetadataManager.getInstance(MetadataManager.java:94)
at org.apache.kylin.cube.model.CubeDesc.init(CubeDesc.java:589)
at 
org.apache.kylin.cube.CubeDescManager.loadCubeDesc(CubeDescManager.java:196)
at 
org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:321)
at 
org.apache.kylin.cube.CubeDescManager.(CubeDescManager.java:114)
at 
org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:81)
at 
org.apache.kylin.cube.CubeManager.reloadCubeLocalAt(CubeManager.java:809)
at 
org.apache.kylin.cube.CubeManager.loadAllCubeInstance(CubeManager.java:787)
at org.apache.kylin.cube.CubeManager.(CubeManager.java:147)
at org.apache.kylin.cube.CubeManager.getInstance(CubeManager.java:105)
at 
org.apache.kylin.engine.spark.SparkCubingByLayer$EncodeBaseCuboid.call(SparkCubingByLayer.java:295)
at 
org.apache.kylin.engine.spark.SparkCubingByLayer$EncodeBaseCuboid.call(SparkCubingByLayer.java:276)
at 
org.apache.spark.api.java.JavaPairRDD$$anonfun$pairFunToScalaFun$1.apply(JavaPairRDD.scala:1043)
at 
org.apache.spark.api.java.JavaPairRDD$$anonfun$pairFunToScalaFun$1.apply(JavaPairRDD.scala:1043)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at 
org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:193)
at 
org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:63)
at 
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:96)
at 
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:53)
at org.apache.spark.scheduler.Task.run(Task.scala:99)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:322)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2826) Add basic support classes for cube planner algorithms

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2826:
--
Description: 
Cube planner aims at recommending cost-effective cuboids. Currently we only 
consider {color:#f79232}*scanned row count*{color} at {color:#f79232}*query 
phase*{color} for the cost. The related formula is as follows:
bq. cuboid cost = scanned row count on target cuboid * query probability

As we know the base cuboid is to be prebuilt absolutely. If only the base 
cuboid is prebuilt, for other cuboids, the target cuboid will be the base 
cuboid and the _(scanned row count)_ is supposed to be large. When another 
cuboid is selected to be prebuilt, for its descendant cuboids including itself, 
it will be their target cuboid and the _(scanned row count)_ is supposed to 
become smaller. Thus, this newly cuboid will bring some benefit. We employ BPUS 
(benefit per unit space) for cuboid selection. The related formula for the 
benefit of a cuboid is as follows:
bq. cuboid benefit = total reduced cuboid cost) / (cuboid row count)

Cuboid selection is based on one basic rule:
bq. {color:#f79232}*RULE: Cuboids with more benefit will be preferred.*{color}


> Add basic support classes for cube planner algorithms
> -
>
> Key: KYLIN-2826
> URL: https://issues.apache.org/jira/browse/KYLIN-2826
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> Cube planner aims at recommending cost-effective cuboids. Currently we only 
> consider {color:#f79232}*scanned row count*{color} at {color:#f79232}*query 
> phase*{color} for the cost. The related formula is as follows:
> bq. cuboid cost = scanned row count on target cuboid * query probability
> As we know the base cuboid is to be prebuilt absolutely. If only the base 
> cuboid is prebuilt, for other cuboids, the target cuboid will be the base 
> cuboid and the _(scanned row count)_ is supposed to be large. When another 
> cuboid is selected to be prebuilt, for its descendant cuboids including 
> itself, it will be their target cuboid and the _(scanned row count)_ is 
> supposed to become smaller. Thus, this newly cuboid will bring some benefit. 
> We employ BPUS (benefit per unit space) for cuboid selection. The related 
> formula for the benefit of a cuboid is as follows:
> bq. cuboid benefit = total reduced cuboid cost) / (cuboid row count)
> Cuboid selection is based on one basic rule:
> bq. {color:#f79232}*RULE: Cuboids with more benefit will be preferred.*{color}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Tianhao Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tianhao Zhao updated KYLIN-2824:

Attachment: (was: KYLIN-2824.patch)

> Parse Boolean type in JDBC driver
> -
>
> Key: KYLIN-2824
> URL: https://issues.apache.org/jira/browse/KYLIN-2824
> Project: Kylin
>  Issue Type: Bug
>  Components: Driver - JDBC
>Reporter: Tianhao Zhao
>Priority: Minor
> Attachments: KYLIN-2824.patch
>
>
> Exception below is thrown when querying kylin with Saiku as front end, or 
> when retrieving value from getBoolean method in jdbc driver.
> That's because KylinClient in jdbc module dose not parse value properly when 
> dimension is boolean type.
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Boolean
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
> at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
> at 
> mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
> at 
> mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
> at 
> mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
> at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
> at 
> mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
> at 
> mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
> at 
> mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
> at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
> at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
> at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
> at mondrian.rolap.RolapResult.(RolapResult.java:279)
> at 
> mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
> ... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Tianhao Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tianhao Zhao updated KYLIN-2824:

Attachment: KYLIN-2824.patch

> Parse Boolean type in JDBC driver
> -
>
> Key: KYLIN-2824
> URL: https://issues.apache.org/jira/browse/KYLIN-2824
> Project: Kylin
>  Issue Type: Bug
>  Components: Driver - JDBC
>Reporter: Tianhao Zhao
>Priority: Minor
> Attachments: KYLIN-2824.patch, KYLIN-2824.patch
>
>
> Exception below is thrown when querying kylin with Saiku as front end, or 
> when retrieving value from getBoolean method in jdbc driver.
> That's because KylinClient in jdbc module dose not parse value properly when 
> dimension is boolean type.
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Boolean
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
> at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
> at 
> mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
> at 
> mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
> at 
> mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
> at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
> at 
> mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
> at 
> mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
> at 
> mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
> at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
> at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
> at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
> at mondrian.rolap.RolapResult.(RolapResult.java:279)
> at 
> mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
> ... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2827) cube已经建好了,再insight 查询回报错

2017-08-31 Thread liuxd (JIRA)
liuxd created KYLIN-2827:


 Summary: cube已经建好了,再insight  查询回报错
 Key: KYLIN-2827
 URL: https://issues.apache.org/jira/browse/KYLIN-2827
 Project: Kylin
  Issue Type: Bug
Reporter: liuxd


Error while executing SQL "select * from GDL_LOANRPY_DET LIMIT 5": 
org.apache.hadoop.hbase.exceptions.UnknownProtocolException: 
org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered 
coprocessor service found for name CubeVisitService in region 
KYLIN_ZW5LTEKVAL,,1504166387142.432256ac271b98fc6afd29bc7e054502. at 
org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7582) at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1890)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1872)
 at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32389)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2117) at 
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104) at 
org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) at 
java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2720) Should not allow user to access to all tables' metadata of a project

2017-08-31 Thread qiumingming (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148686#comment-16148686
 ] 

qiumingming commented on KYLIN-2720:


Okay, I see. But I'm also confused. Is that means I will not see any some other 
tables in the web UI that I owned cubes do not dependent to. I have not 
upgraded to kylin 2.1, so I want to know it. As you can see, my patch did 
nothing about ACL grant or revoke, it just control tables that being displayed 
in the web UI. So user will not see tables he can not query to in the web UI. 
Otherwise, user will be confused : why display tables that I can not query?

> Should not allow user to access to all tables' metadata of a project
> 
>
> Key: KYLIN-2720
> URL: https://issues.apache.org/jira/browse/KYLIN-2720
> Project: Kylin
>  Issue Type: Improvement
>Reporter: qiumingming
>Assignee: qiumingming
> Attachments: KYLIN-2720.patch
>
>
> Currently, user can access to all tables and columns metadata of a specific 
> project as long as he can access to this project, which is not reasonable. 
> User should just allow to access to tables that he owned cubes dependent to. 
> However, user can see some other tables in the web UI in current version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2720) Should not allow user to access to all tables' metadata of a project

2017-08-31 Thread Shaofeng SHI (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148633#comment-16148633
 ] 

Shaofeng SHI commented on KYLIN-2720:
-

Hi qiumingming,

Sorry for the late; As Hongbin Ma commented above, this change is conflict with 
KYLIN-2646 (user can manage the ACL at project/table level, not cube level), so 
we're not going to merge this patch; If you need this change for your version, 
you can keep the patch in local.  

> Should not allow user to access to all tables' metadata of a project
> 
>
> Key: KYLIN-2720
> URL: https://issues.apache.org/jira/browse/KYLIN-2720
> Project: Kylin
>  Issue Type: Improvement
>Reporter: qiumingming
>Assignee: qiumingming
> Attachments: KYLIN-2720.patch
>
>
> Currently, user can access to all tables and columns metadata of a specific 
> project as long as he can access to this project, which is not reasonable. 
> User should just allow to access to tables that he owned cubes dependent to. 
> However, user can see some other tables in the web UI in current version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2800) All dictionaries should be built based on the flat hive table

2017-08-31 Thread zhengdong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148634#comment-16148634
 ] 

zhengdong commented on KYLIN-2800:
--

Hi liyang, merging lookup dictionaries is indeed a relatively easier solution. 
However, if these lookup dictionaries always need merged, uniformly using the 
flat hive table as dictionaries data source should has better performance, 
especially for large lookup tables, and makes it convenient to build all 
dictionaries concurrently in reducers.

> All dictionaries should be built based on the flat hive table
> -
>
> Key: KYLIN-2800
> URL: https://issues.apache.org/jira/browse/KYLIN-2800
> Project: Kylin
>  Issue Type: Bug
>Reporter: zhengdong
>Assignee: zhengdong
> Attachments: 
> 0001-KYLIN-2800-All-dictionaries-should-be-built-based-on.patch
>
>
> After KYLIN-2457, we still got wrong query result sometimes after a merging 
> job finished. 
> Finally, we realize the root cause is that we always use lookup table as 
> source data to build dictionaries for FK columns. 
> However, incremental lookup table doesn't mean sequential and incremental PK. 
> If a new record inserted into the lookup table while its PK column does not 
> have the max value, ID numbers in the new dictionary could be changed for 
> those PK value larger than the newest one. What's more, using lookup table as 
> source data for FK column's dictionary may has performance advantage for 
> merging job, but also may encounter too big dictionary problem for large 
> lookup tables. And we must add some validation rules to ensure the PK value 
> sequential and incremental.
> On the another hand, we could just unify using the flat hive table as data 
> source for all dictionaries.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2729) Introduce greedy algorithm for cube planner

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16136616#comment-16136616
 ] 

Zhong Yanghong edited comment on KYLIN-2729 at 8/31/17 7:44 AM:


Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/913e97594e7b9ae03bb7348a0f092770f736814d


was (Author: yaho):
Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/7c592b3c33d1af3a933af0b77c154b250e320bb8
https://github.com/apache/kylin/commit/913e97594e7b9ae03bb7348a0f092770f736814d

> Introduce greedy algorithm for cube planner
> ---
>
> Key: KYLIN-2729
> URL: https://issues.apache.org/jira/browse/KYLIN-2729
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2826) Add basic support classes for cube planner algorithms

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148586#comment-16148586
 ] 

Zhong Yanghong commented on KYLIN-2826:
---

Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/7c592b3c33d1af3a933af0b77c154b250e320bb8

> Add basic support classes for cube planner algorithms
> -
>
> Key: KYLIN-2826
> URL: https://issues.apache.org/jira/browse/KYLIN-2826
> Project: Kylin
>  Issue Type: Sub-task
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2826) Add basic support classes for cube planner algorithms

2017-08-31 Thread Zhong Yanghong (JIRA)
Zhong Yanghong created KYLIN-2826:
-

 Summary: Add basic support classes for cube planner algorithms
 Key: KYLIN-2826
 URL: https://issues.apache.org/jira/browse/KYLIN-2826
 Project: Kylin
  Issue Type: Sub-task
Reporter: Zhong Yanghong
Assignee: Zhong Yanghong






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2728) Introduce a new cuboid scheduler based on cuboid tree rather than static rules

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2728:
--
Description: 
Rather than depending on static rules to define a parent-child relationship 
between cuboids, a cuboid tree can be constructed for this relationship. In 
this tree, the root is the base cuboid. For a cuboid, it may have many legal 
parent cuboids. We should choose the {color:#f79232}best parent {color}cuboid 
as its parent in this tree. Then how to define the best? It's related two rules 
as follows:
* If we know the row count, choose the one with the least row count
* Otherwise, choose the smallest cuboid

Based on the cuboid tree, we introduced a new cuboid scheduler called 
{{TreeCuboidScheduler}}. And both cube building & query can be based on 
{{TreeCuboidScheduler}}.

> Introduce a new cuboid scheduler based on cuboid tree rather than static rules
> --
>
> Key: KYLIN-2728
> URL: https://issues.apache.org/jira/browse/KYLIN-2728
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> Rather than depending on static rules to define a parent-child relationship 
> between cuboids, a cuboid tree can be constructed for this relationship. In 
> this tree, the root is the base cuboid. For a cuboid, it may have many legal 
> parent cuboids. We should choose the {color:#f79232}best parent {color}cuboid 
> as its parent in this tree. Then how to define the best? It's related two 
> rules as follows:
> * If we know the row count, choose the one with the least row count
> * Otherwise, choose the smallest cuboid
> Based on the cuboid tree, we introduced a new cuboid scheduler called 
> {{TreeCuboidScheduler}}. And both cube building & query can be based on 
> {{TreeCuboidScheduler}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2822) Introduce sunburst chart to show cuboid tree

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16147019#comment-16147019
 ] 

Zhong Yanghong edited comment on KYLIN-2822 at 8/31/17 7:13 AM:


Related commit for branch yaho-cube-planner is as follows:
* Backend:
https://github.com/apache/kylin/commit/0b12df776348c7863bea6363ceacfe7380cb4e15


was (Author: yaho):
Backend:
https://github.com/apache/kylin/commit/0b12df776348c7863bea6363ceacfe7380cb4e15

> Introduce sunburst chart to show cuboid tree
> 
>
> Key: KYLIN-2822
> URL: https://issues.apache.org/jira/browse/KYLIN-2822
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2734) Introduce hot cuboids export & import

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16147022#comment-16147022
 ] 

Zhong Yanghong edited comment on KYLIN-2734 at 8/31/17 7:13 AM:


Related commit for branch yaho-cube-planner is as follows:
* Backend:
https://github.com/apache/kylin/commit/7279427d40df7e9d6151ecf3f439c2c20f800dd1


was (Author: yaho):
Backend:
https://github.com/apache/kylin/commit/7279427d40df7e9d6151ecf3f439c2c20f800dd1

> Introduce hot cuboids export & import
> -
>
> Key: KYLIN-2734
> URL: https://issues.apache.org/jira/browse/KYLIN-2734
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148547#comment-16148547
 ] 

Zhong Yanghong edited comment on KYLIN-2735 at 8/31/17 7:13 AM:


Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/d216eba3e10af99cb58b9ca45582d2bf5c8a0a37


was (Author: yaho):
https://github.com/apache/kylin/commit/d216eba3e10af99cb58b9ca45582d2bf5c8a0a37

> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To optimize a cube with *N* ready segments, *N* optimize jobs + *1* 
> checkpoint job are needed, which may occupy too much resources and make other 
> jobs waiting too much time to be scheduled. Thus, job priority and its 
> dynamic changing will be introduced. The idea is as follows:
> * Job Fetcher fetches job metadata from database every *M* seconds.
> * A Running Job List is maintained globally
> * {color:#f79232}A Job Priority Queue is maintained globally{color}
> * Before fetching job metadata, 
> ** {color:#f79232}first check the job priority queue and schedule jobs 
> meeting condition{color} {color:#f691b2}*C*{color}
> ** then if the size of Running Job List exceeds the max concurrent job limit 
> *L*, this fetch round will be skipped
> * During fetch round, 
> ** {color:#f79232} the priority of each job in the queue will increase.{color}
> ** {color:#f79232} each new job fetched will be assigned with a default 
> priority.{color}
> ** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
> List and be submitted to Job Execute Thread Pool 
> * Once a job finishes, it will be removed from Running Job List and notify 
> the Job Fetcher to fetch job metadata
> The condition {color:#f691b2}*C*{color} is as follows:
> * job priority should be above a threshold, to filter low priority jobs 
> * job should wait at least once, to give chance for low priority jobs to be 
> scheduled



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2733) Introduce optimize job for adjusting cuboid set

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16146562#comment-16146562
 ] 

Zhong Yanghong edited comment on KYLIN-2733 at 8/31/17 7:12 AM:


Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/0c4b3ad57277653e2b360c0acbf1c9c2b6d4d6f2


was (Author: yaho):
https://github.com/apache/kylin/commit/0c4b3ad57277653e2b360c0acbf1c9c2b6d4d6f2

> Introduce optimize job for adjusting cuboid set
> ---
>
> Key: KYLIN-2733
> URL: https://issues.apache.org/jira/browse/KYLIN-2733
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (KYLIN-2731) Introduce checkpoint executable

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16141110#comment-16141110
 ] 

Zhong Yanghong edited comment on KYLIN-2731 at 8/31/17 7:11 AM:


Related commit for branch yaho-cube-planner is as follows:
https://github.com/apache/kylin/commit/7603a5aafa64e990e3f8a40c267f835d274aef61


was (Author: yaho):
https://github.com/apache/kylin/commit/7603a5aafa64e990e3f8a40c267f835d274aef61

> Introduce checkpoint executable
> ---
>
> Key: KYLIN-2731
> URL: https://issues.apache.org/jira/browse/KYLIN-2731
> Project: Kylin
>  Issue Type: Sub-task
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148547#comment-16148547
 ] 

Zhong Yanghong commented on KYLIN-2735:
---

https://github.com/apache/kylin/commit/d216eba3e10af99cb58b9ca45582d2bf5c8a0a37

> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To optimize a cube with *N* ready segments, *N* optimize jobs + *1* 
> checkpoint job are needed, which may occupy too much resources and make other 
> jobs waiting too much time to be scheduled. Thus, job priority and its 
> dynamic changing will be introduced. The idea is as follows:
> * Job Fetcher fetches job metadata from database every *M* seconds.
> * A Running Job List is maintained globally
> * {color:#f79232}A Job Priority Queue is maintained globally{color}
> * Before fetching job metadata, 
> ** {color:#f79232}first check the job priority queue and schedule jobs 
> meeting condition{color} {color:#f691b2}*C*{color}
> ** then if the size of Running Job List exceeds the max concurrent job limit 
> *L*, this fetch round will be skipped
> * During fetch round, 
> ** {color:#f79232} the priority of each job in the queue will increase.{color}
> ** {color:#f79232} each new job fetched will be assigned with a default 
> priority.{color}
> ** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
> List and be submitted to Job Execute Thread Pool 
> * Once a job finishes, it will be removed from Running Job List and notify 
> the Job Fetcher to fetch job metadata
> The condition {color:#f691b2}*C*{color} is as follows:
> * job priority should be above a threshold, to filter low priority jobs 
> * job should wait at least once, to give chance for low priority jobs to be 
> scheduled



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Billy Liu (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148548#comment-16148548
 ] 

Billy Liu commented on KYLIN-2824:
--

Thanks the patch. LGTM.

> Parse Boolean type in JDBC driver
> -
>
> Key: KYLIN-2824
> URL: https://issues.apache.org/jira/browse/KYLIN-2824
> Project: Kylin
>  Issue Type: Bug
>  Components: Driver - JDBC
>Reporter: Tianhao Zhao
>Priority: Minor
> Attachments: KYLIN-2824.patch
>
>
> Exception below is thrown when querying kylin with Saiku as front end, or 
> when retrieving value from getBoolean method in jdbc driver.
> That's because KylinClient in jdbc module dose not parse value properly when 
> dimension is boolean type.
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Boolean
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
> at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
> at 
> mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
> at 
> mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
> at 
> mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
> at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
> at 
> mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
> at 
> mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
> at 
> mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
> at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
> at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
> at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
> at mondrian.rolap.RolapResult.(RolapResult.java:279)
> at 
> mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
> ... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2735:
--
Description: 
To optimize a cube with *N* ready segments, *N* optimize jobs + *1* checkpoint 
job are needed, which may occupy too much resources and make other jobs waiting 
too much time to be scheduled. Thus, job priority and its dynamic changing will 
be introduced. The idea is as follows:
* Job Fetcher fetches job metadata from database every *M* seconds.
* A Running Job List is maintained globally
* {color:#f79232}A Job Priority Queue is maintained globally{color}
* Before fetching job metadata, 
** {color:#f79232}first check the job priority queue and schedule jobs meeting 
condition{color} {color:#f691b2}*C*{color}
** then if the size of Running Job List exceeds the max concurrent job limit 
*L*, this fetch round will be skipped
* During fetch round, 
** {color:#f79232} the priority of each job in the queue will increase.{color}
** {color:#f79232} each new job fetched will be assigned with a default 
priority.{color}
** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
List and be submitted to Job Execute Thread Pool 
* Once a job finishes, it will be removed from Running Job List and notify the 
Job Fetcher to fetch job metadata

The condition {color:#f691b2}*C*{color} is as follows:
* job priority should be above a threshold, to filter low priority jobs 
* job should wait at least once, to give chance for low priority jobs to be 
scheduled

  was:
To optimize a cube with *N* ready segments, *N* optimize jobs + *1* checkpoint 
job are needed, which may occupy too much resources and make other jobs waiting 
too much time to be scheduled. Thus, job priority and its dynamic changing will 
be introduced. The idea is as follows:
* Job Fetcher fetches job metadata from database every *M* seconds.
* A Running Job List is maintained globally
* {color:#f79232}A Job Priority Queue is maintained globally{color}
* Before fetching job metadata, 
** {color:#f79232}first check the job priority queue and schedule jobs meeting 
condition *C*{color}
** then if the size of Running Job List exceeds the max concurrent job limit 
*L*, this fetch round will be skipped
* During fetch round, 
** {color:#f79232} the priority of each job in the queue will increase.{color}
** {color:#f79232} each new job fetched will be assigned with a default 
priority.{color}
** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
List and be submitted to Job Execute Thread Pool 
* Once a job finishes, it will be removed from Running Job List and notify the 
Job Fetcher to fetch job metadata

The condition *C* is as follows:
* job priority should be above a threshold, to filter low priority jobs 
* job should wait at least once, to give chance for low priority jobs to be 
scheduled


> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To optimize a cube with *N* ready segments, *N* optimize jobs + *1* 
> checkpoint job are needed, which may occupy too much resources and make other 
> jobs waiting too much time to be scheduled. Thus, job priority and its 
> dynamic changing will be introduced. The idea is as follows:
> * Job Fetcher fetches job metadata from database every *M* seconds.
> * A Running Job List is maintained globally
> * {color:#f79232}A Job Priority Queue is maintained globally{color}
> * Before fetching job metadata, 
> ** {color:#f79232}first check the job priority queue and schedule jobs 
> meeting condition{color} {color:#f691b2}*C*{color}
> ** then if the size of Running Job List exceeds the max concurrent job limit 
> *L*, this fetch round will be skipped
> * During fetch round, 
> ** {color:#f79232} the priority of each job in the queue will increase.{color}
> ** {color:#f79232} each new job fetched will be assigned with a default 
> priority.{color}
> ** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
> List and be submitted to Job Execute Thread Pool 
> * Once a job finishes, it will be removed from Running Job List and notify 
> the Job Fetcher to fetch job metadata
> The condition {color:#f691b2}*C*{color} is as follows:
> * job priority should be above a threshold, to filter low priority jobs 
> * job should wait at least once, to give chance for low priority jobs to be 
> scheduled



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2735:
--
Description: 
To optimize a cube with *N* ready segments, *N* optimize jobs + *1* checkpoint 
job are needed, which may occupy too much resources and make other jobs waiting 
too much time to be scheduled. Thus, job priority and its dynamic changing will 
be introduced. The idea is as follows:
* Job Fetcher fetches job metadata from database every *M* seconds.
* A Running Job List is maintained globally
* {color:#f79232}A Job Priority Queue is maintained globally{color}
* Before fetching job metadata, 
** {color:#f79232}first check the job priority queue and schedule jobs meeting 
condition *C*{color}
** then if the size of Running Job List exceeds the max concurrent job limit 
*L*, this fetch round will be skipped
* During fetch round, 
** {color:#f79232} the priority of each job in the queue will increase.{color}
** {color:#f79232} each new job fetched will be assigned with a default 
priority.{color}
** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
List and be submitted to Job Execute Thread Pool 
* Once a job finishes, it will be removed from Running Job List and notify the 
Job Fetcher to fetch job metadata

The condition *C* is as follows:
* job priority should be above a threshold, to filter low priority jobs 
* job should wait at least once, to give chance for low priority jobs to be 
scheduled

  was:
To optimize a cube with *N* ready segments, *N* optimize jobs + *1* checkpoint 
job are needed, which may occupy too much resources and make other jobs waiting 
too much time to be scheduled. Thus, job priority and its dynamic changing will 
be introduced. The idea is as follows:
* Job Fetcher fetches job metadata from database every *M* seconds.
* A Running Job List is maintained globally
* {color:#f79232}A Job Priority Queue is maintained globally{color}
* Before fetching job metadata, 
** first check the job priority queue and schedule jobs meeting condition *C*
** then if the size of Running Job List exceeds the max concurrent job limit 
*L*, this fetch round will be skipped
* During fetch round, 
** {color:#f79232} the priority of each job in the queue will increase.{color}
** {color:#f79232} each new job fetched will be assigned with a default 
priority.{color}
** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
List and be submitted to Job Execute Thread Pool 
* Once a job finishes, it will be removed from Running Job List and notify the 
Job Fetcher to fetch job metadata

The condition *C* is as follows:
* job priority should be above a threshold, to filter low priority jobs 
* job should wait at least once, to give chance for low priority jobs to be 
scheduled


> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To optimize a cube with *N* ready segments, *N* optimize jobs + *1* 
> checkpoint job are needed, which may occupy too much resources and make other 
> jobs waiting too much time to be scheduled. Thus, job priority and its 
> dynamic changing will be introduced. The idea is as follows:
> * Job Fetcher fetches job metadata from database every *M* seconds.
> * A Running Job List is maintained globally
> * {color:#f79232}A Job Priority Queue is maintained globally{color}
> * Before fetching job metadata, 
> ** {color:#f79232}first check the job priority queue and schedule jobs 
> meeting condition *C*{color}
> ** then if the size of Running Job List exceeds the max concurrent job limit 
> *L*, this fetch round will be skipped
> * During fetch round, 
> ** {color:#f79232} the priority of each job in the queue will increase.{color}
> ** {color:#f79232} each new job fetched will be assigned with a default 
> priority.{color}
> ** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
> List and be submitted to Job Execute Thread Pool 
> * Once a job finishes, it will be removed from Running Job List and notify 
> the Job Fetcher to fetch job metadata
> The condition *C* is as follows:
> * job priority should be above a threshold, to filter low priority jobs 
> * job should wait at least once, to give chance for low priority jobs to be 
> scheduled



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2735:
--
Description: 
To optimize a cube with *N* ready segments, *N* optimize jobs + *1* checkpoint 
job are needed, which may occupy too much resources and make other jobs waiting 
too much time to be scheduled. Thus, job priority and its dynamic changing will 
be introduced. The idea is as follows:
* Job Fetcher fetches job metadata from database every *M* seconds.
* A Running Job List is maintained globally
* {color:#f79232}A Job Priority Queue is maintained globally{color}
* Before fetching job metadata, 
** first check the job priority queue and schedule jobs meeting condition *C*
** then if the size of Running Job List exceeds the max concurrent job limit 
*L*, this fetch round will be skipped
* During fetch round, 
** {color:#f79232} the priority of each job in the queue will increase.{color}
** {color:#f79232} each new job fetched will be assigned with a default 
priority.{color}
** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
List and be submitted to Job Execute Thread Pool 
* Once a job finishes, it will be removed from Running Job List and notify the 
Job Fetcher to fetch job metadata

The condition *C* is as follows:
* job priority should be above a threshold, to filter low priority jobs 
* job should wait at least once, to give chance for low priority jobs to be 
scheduled

> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>
> To optimize a cube with *N* ready segments, *N* optimize jobs + *1* 
> checkpoint job are needed, which may occupy too much resources and make other 
> jobs waiting too much time to be scheduled. Thus, job priority and its 
> dynamic changing will be introduced. The idea is as follows:
> * Job Fetcher fetches job metadata from database every *M* seconds.
> * A Running Job List is maintained globally
> * {color:#f79232}A Job Priority Queue is maintained globally{color}
> * Before fetching job metadata, 
> ** first check the job priority queue and schedule jobs meeting condition *C*
> ** then if the size of Running Job List exceeds the max concurrent job limit 
> *L*, this fetch round will be skipped
> * During fetch round, 
> ** {color:#f79232} the priority of each job in the queue will increase.{color}
> ** {color:#f79232} each new job fetched will be assigned with a default 
> priority.{color}
> ** {color:#f79232} the highest *L*{color} jobs will be added to Running Job 
> List and be submitted to Job Execute Thread Pool 
> * Once a job finishes, it will be removed from Running Job List and notify 
> the Job Fetcher to fetch job metadata
> The condition *C* is as follows:
> * job priority should be above a threshold, to filter low priority jobs 
> * job should wait at least once, to give chance for low priority jobs to be 
> scheduled



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2825) Make "ModelDataGenerator.java" serilizable

2017-08-31 Thread Shaofeng SHI (JIRA)
Shaofeng SHI created KYLIN-2825:
---

 Summary: Make "ModelDataGenerator.java" serilizable
 Key: KYLIN-2825
 URL: https://issues.apache.org/jira/browse/KYLIN-2825
 Project: Kylin
  Issue Type: Improvement
  Components: Tools, Build and Test
Reporter: Shaofeng SHI
Assignee: Shaofeng SHI
Priority: Minor


The ModelDataGenerator  was used for mockup test data. Now it can only run in 
single VM. If it can run in parallel, then will generate more data.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Tianhao Zhao (JIRA)

[ 
https://issues.apache.org/jira/browse/KYLIN-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16148530#comment-16148530
 ] 

Tianhao Zhao commented on KYLIN-2824:
-

patch attached

> Parse Boolean type in JDBC driver
> -
>
> Key: KYLIN-2824
> URL: https://issues.apache.org/jira/browse/KYLIN-2824
> Project: Kylin
>  Issue Type: Bug
>  Components: Driver - JDBC
>Reporter: Tianhao Zhao
>Priority: Minor
> Attachments: KYLIN-2824.patch
>
>
> Exception below is thrown when querying kylin with Saiku as front end, or 
> when retrieving value from getBoolean method in jdbc driver.
> That's because KylinClient in jdbc module dose not parse value properly when 
> dimension is boolean type.
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Boolean
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
> at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
> at 
> mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
> at 
> mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
> at 
> mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
> at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
> at 
> mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
> at 
> mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
> at 
> mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
> at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
> at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
> at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
> at mondrian.rolap.RolapResult.(RolapResult.java:279)
> at 
> mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
> ... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Tianhao Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tianhao Zhao updated KYLIN-2824:

Attachment: KYLIN-2824.patch

> Parse Boolean type in JDBC driver
> -
>
> Key: KYLIN-2824
> URL: https://issues.apache.org/jira/browse/KYLIN-2824
> Project: Kylin
>  Issue Type: Bug
>  Components: Driver - JDBC
>Reporter: Tianhao Zhao
>Priority: Minor
> Attachments: KYLIN-2824.patch
>
>
> Exception below is thrown when querying kylin with Saiku as front end, or 
> when retrieving value from getBoolean method in jdbc driver.
> That's because KylinClient in jdbc module dose not parse value properly when 
> dimension is boolean type.
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Boolean
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
> at 
> org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
> at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
> at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
> at 
> mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
> at 
> mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
> at 
> mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
> at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
> at 
> mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
> at 
> mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
> at 
> mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
> at 
> mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
> at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
> at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
> at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
> at mondrian.rolap.RolapResult.(RolapResult.java:279)
> at 
> mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
> ... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (KYLIN-2824) Parse Boolean type in JDBC driver

2017-08-31 Thread Tianhao Zhao (JIRA)
Tianhao Zhao created KYLIN-2824:
---

 Summary: Parse Boolean type in JDBC driver
 Key: KYLIN-2824
 URL: https://issues.apache.org/jira/browse/KYLIN-2824
 Project: Kylin
  Issue Type: Bug
  Components: Driver - JDBC
Reporter: Tianhao Zhao
Priority: Minor


Exception below is thrown when querying kylin with Saiku as front end, or when 
retrieving value from getBoolean method in jdbc driver.
That's because KylinClient in jdbc module dose not parse value properly when 
dimension is boolean type.

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
java.lang.Boolean
at 
org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getBoolean(AbstractCursor.java:463)
at 
org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$BooleanAccessor.getLong(AbstractCursor.java:468)
at 
org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:304)
at 
org.apache.kylin.jdbc.shaded.org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:252)
at 
org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
at 
org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
at mondrian.rolap.SqlStatement$4.get(SqlStatement.java:418)
at mondrian.rolap.SqlStatement$1.get(SqlStatement.java:394)
at 
mondrian.rolap.SqlTupleReader$Target.internalAddRow(SqlTupleReader.java:260)
at mondrian.rolap.SqlTupleReader$Target.addRow(SqlTupleReader.java:172)
at mondrian.rolap.SqlTupleReader.prepareTuples(SqlTupleReader.java:545)
at mondrian.rolap.SqlTupleReader.readTuples(SqlTupleReader.java:690)
at 
mondrian.rolap.RolapNativeSet$SetEvaluator.executeList(RolapNativeSet.java:260)
at 
mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:200)
at 
mondrian.olap.fun.NonEmptyCrossJoinFunDef$1.evaluateList(NonEmptyCrossJoinFunDef.java:80)
at 
mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
at 
mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:184)
at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:857)
at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:693)
at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:649)
at mondrian.rolap.RolapResult.(RolapResult.java:279)
at 
mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:500)
... 7 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2735:
--
Issue Type: Sub-task  (was: Improvement)
Parent: KYLIN-2727

> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Sub-task
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (KYLIN-2735) Introduce an option to make job scheduler consider job priority

2017-08-31 Thread Zhong Yanghong (JIRA)

 [ 
https://issues.apache.org/jira/browse/KYLIN-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhong Yanghong updated KYLIN-2735:
--
Summary: Introduce an option to make job scheduler consider job priority  
(was: Introduce a job scheduler considering job priority)

> Introduce an option to make job scheduler consider job priority
> ---
>
> Key: KYLIN-2735
> URL: https://issues.apache.org/jira/browse/KYLIN-2735
> Project: Kylin
>  Issue Type: Improvement
>  Components: Job Engine
>Affects Versions: v2.2.0
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)