Roberto Tardío Olmos created KYLIN-2983:
-------------------------------------------

             Summary: Support for INNER JOINS in any order in the FROM clause
                 Key: KYLIN-2983
                 URL: https://issues.apache.org/jira/browse/KYLIN-2983
             Project: Kylin
          Issue Type: Improvement
          Components: Query Engine
    Affects Versions: v2.1.0, v2.0.0
            Reporter: Roberto Tardío Olmos
            Assignee: liyang
            Priority: Normal


Kylin versions after Kylin 1.6 (2.0 and 2.1) do not support queries over 
dimensions with INNER JOINS if you do not put first the fact table in the FROM 
clause. I think this can be related with new snowflake schema support. 

For example. I defined a data model over a hive star schema. Therefore I 
defined INNER JOINS between fact table (F_RENDIMIENTO) and dimension tables 
(D_CURSO_ACADEMICO_VK). I also defined a cube and built it. 
The issue is, the following query goes:

select D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO, sum(CREDITOS)
 from F_RENDIMIENTO JOIN D_CURSO_ACADEMICO_VK ON 
F_RENDIMIENTO.ID_CURSO_ACADEMICO = D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO
 group by D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO

But susprisingly if I change the INNER JOIN order the following query does not 
go

select D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO, sum(CREDITOS)
from D_CURSO_ACADEMICO_VK JOIN F_RENDIMIENTO ON 
F_RENDIMIENTO.ID_CURSO_ACADEMICO = D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO
group by D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO

Error while executing SQL "select D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO, 
sum(CREDITOS) from D_CURSO_ACADEMICO_VK JOIN F_RENDIMIENTO ON 
F_RENDIMIENTO.ID_CURSO_ACADEMICO = D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO 
group by D_CURSO_ACADEMICO_VK.ID_CURSO_ACADEMICO LIMIT 50000": No realization 
found for rel#7393:OLAPTableScan.OLAP.[](table=[DM_ACAD_KYLIN_ORC, 
D_CURSO_ACADEMICO_VK],fields=[0, 1]), JoinDesc [type=INNER, 
primary_key=[ID_CURSO_ACADEMICO], foreign_key=[ID_CURSO_ACADEMICO]]

Since this issue is possible related to snowflake schema support, I suggest to 
differentiate in metadata and then, kylin query engine, between this two types 
of schemas, in order to allow this kind of queries over a Star Schema. Another 
possibility is to check on query engine if there is a INNER JOIN, independently 
of then kind of Hive Source Schema. What do you think about?

This issue could lead to human errors wrinting ANSI-92 SQL queries. Furthermore 
some BI tools, specially old ones, can generate this kind of queries not 
supported by Kylin 2.0 and 2.1.

Thanks!



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

Reply via email to