it's not working for kylin
On Thu, Apr 7, 2016 at 12:51 AM, sdangi <[email protected]> wrote:
> Does Kylin support these analytic functions?
>
> I'm hitting into an issue while running this. Works ok on hive.
>
> SELECT CST_KEY, AMT,
> RANK() OVER( ORDER BY AMT DESC)
> FROM FCT
>
> Message: Error while executing SQL "SELECT CST_KEY, AMT, RANK() OVER( ORDER
> BY AMT DESC) FROM TXN_FCT_ORC LIMIT 50000": cannot translate call RANK()
> OVER (ORDER BY $t2 DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
>
> *EXECUTION PLAN AFTER REWRITE*
> OLAPToEnumerableConverter
> EnumerableLimit(fetch=[50000])
> EnumerableCalc(expr#0..3=[{inputs}], expr#4=[DENSE_RANK() OVER (ORDER
> BY
> $t2 DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)],
> CST_KEY=[$t1],
> AMT=[$t2], EXPR$2=[$t4])
> OLAPTableScan(table=[[SCHEMA, FCT]], fields=[[0, 1, 2, 3]])
>
> Caused by: java.lang.RuntimeException: cannot translate call RANK() OVER
> (ORDER BY $t2 DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:533)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:214)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:700)
> at
>
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateProjects(RexToLixTranslator.java:189)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:188)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
>
> org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:184)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableLimit.implement(EnumerableLimit.java:106)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
>
> org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:184)
> at
>
> org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:108)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
> at
>
> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
> at
>
> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1171)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:297)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:196)
> at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:721)
> at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:588)
> at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:558)
> at
>
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
> at
>
> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:573)
> at
>
> org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571)
> at
>
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135)
>
>
> --
> View this message in context:
> http://apache-kylin.74782.x6.nabble.com/RANK-DENSE-RANK-on-KYLIN-tp4066.html
> Sent from the Apache Kylin mailing list archive at Nabble.com.
>
--
Regards,
*Bin Mahone | 马洪宾*
Apache Kylin: http://kylin.io
Github: https://github.com/binmahone