Kylin is doing a round code refactor which will introduce the following two changes on meta data:
- Abstract a “model_desc” layer from “cube_desc”
Before define a cube, user will need firstly define a model (“model_desc”); The model defines which is the fact table, which are lookup tables and how they be joined;
With the model be defined, when user define a cube (“cube_desc”), he/she only need to specify the table/column name for a dimension, as the join conditions have already been defined;
This abstraction is to extend the meta data to fulfill non-cube queries (coming soon);
- Support data tables from multiple hive databases;
User has the case that tables are from multiple hive database, and the table name might be the same; To support this case Kylin will use the database name + table name as the unique name for tables; And user need to specify the database name (if it is not “default”) in SQL when query Kylin.
Here is a sample; the fact table “test_kylin_fact” is from default hive database, you don’t need to specify the db name; while lookup table is from “edw”, you need use “edw.test_cal_dt” in the query:
select test_cal_dt.Week_Beg_Dt, sum(price) as c1, count(1) as c2 from test_kylin_fact inner JOIN edw.test_cal_dt as test_cal_dt ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt where test_kylin_fact.lstg_format_name='ABIN'