Apache Kylin权威指南2.5 查询Cube

  1. 云栖社区>
  2. 华章计算机>
  3. 博客>
  4. 正文

Apache Kylin权威指南2.5 查询Cube

华章计算机 2017-05-02 00:22:00 浏览3810

2.5 查询Cube


本节将简要介绍如何查询Cube。更多内容请参考后续的章节(如第5章)。

Cube构建好以后,状态变为“READY”,就可以进行查询了。Kylin的查询语言是标准SQL的SELECT语句,这是为了获得与大多数BI系统和工具无缝集成的可能性。通常的一个查询语句类似于如下的SQL:

SELECT DIM1, DIM2, …, MEASURE1, MEASURE2… FROM FACT_TABLE

    INNER JOIN LOOKUP_1 ON FACT_TABLE.FK1 = LOOKUP_1.PK

    INNER JOIN LOOKUP_2 ON FACT_TABLE.FK2 = LOOKUP_2.PK

WHERE FACT_TABLE.DIMN = ‘’ AND …

    GROUP BY DIM1, DIM2…

需要了解的是,只有当查询的模式跟Cube定义相匹配的时候,Kylin才能够使用Cube的数据来完成查询。Group By的列和Where条件里的列,必须是在Dimension中定义的列,而SQL中的度量,应该跟Cube中定义的度量相一致。

在一个项目下,如果有多个基于同一模型的Cube,而且它们都满足查询对表、维度和度量的要求;那么,Kylin会挑选一个“最优的”Cube来进行查询;这是一种基于成本(cost)的选择,Cube的成本计算中包括多方面的因素,例如Cube的维度数、度量、数据模型的复杂度等。查询引擎将为每个Cube为完成此SQL估算一个成本值,然后选择成本最小的Cube来完成此查询。

如果查询是在Kylin的Web GUI上进行的,那么查询结果会以表的形式展现出来,如

图2-28所示。所执行的Cube名称也会一同显示。用户可以单击“Visualization”按钮生成简单的可视化图形,或单击“Export”按钮将结果集下载到本地。

 

图2-28 查询结果展示