Kylin使用Hive视图

1. 为什么需要使用视图?

Kylin创建Cube过程中使用Hive的表数据作为输入源。但是有些情况下,Hive表的定义和数据不能满足分析的需求,比如:列的值需要处理,列类型不满足需求,甚至有时候我们在创建Hive表时为了方便,字段类型定义全部使用string类型。
因此在很多情况下,在使用Kylin之前需要对Hive上的数据格式等问题进行适当处理。但如果在Hive中通过修改原表来解决上面的问题,往往得不偿失。于是我们需要在不修改原始表的基础上解决这个问题。因此通过Hive的视图解决。

除了Hive数据源本身的问题,Kylin对于Hive的使用还有一定的限制,这些问题导致我们间接的使用Hive 视图:

  • Kylin只支持星型模型。源表可能包含多个事实表和维表,那么需要把多张事实表处理成一张大宽表。
  • 频繁修改表字段名。通过视图增加一层映射。只需要修改视图定义
  • 修改表字段类型。
  • 符合类型处理。

Cube依赖的事实表通过view创建,增加一层映射,可以减少cube对原始表的依赖,提高灵活性

hive (kylin_flat_db)> create view v_pvuv as 
> select a.DAY as v_date, b.retionname, c.cityname, hash(a.cookieid) as cookieid, a.pv 
> from web_access_fact_tb1 a join region_tb1 b 
> on a.regionid = b.regionid 
> join city_tb1 c 
> on a.cityid = c.cityid;
OK

2. 创建项目

Kylin使用Hive视图_第1张图片

3. 导入数据源

导入刚创建的视图表v_pvuv


Kylin使用Hive视图_第2张图片

4. 创建model

Kylin使用Hive视图_第3张图片

5. 构建cube

请参考前面的文章。

总结

在使用Kylin的过程中,有很多问题都可以通过Hive 视图解决。

你可能感兴趣的:(Kylin使用Hive视图)