一、两个步骤
二、System Cube
2.1 开启System Cube
修改$KYLIN_HOME/conf/kylin.properties文件,将下述文字粘贴至空白处
#### Dashboard ###
kylin.server.query-metrics2-enabled=true
kylin.metrics.reporter-query-enabled=true
kylin.metrics.reporter-job-enabled=true
kylin.metrics.monitor-enabled=true
kylin.web.dashboard-enabled=true
#kylin.cube.cubeplanner.enabled=true
2.1 生成Metadata
2.1.1 在 KYLIN_HOME 目录下创建一个配置文件 SCSinkTools.json。内容如下:
$ cd $KYLIN_HOME
$ vi ./SCSinkTools.json
[
[
"org.apache.kylin.tool.metrics.systemcube.util.HiveSinkTool",
{
"storage_type": 2,
"cube_desc_override_properties": [
"java.util.HashMap",
{ "kylin.cube.algorithm": "INMEM",
"kylin.cube.max-building-segments": "1"
}
]
}
]
]
2.1.2 在 KYLIN_HOME 文件夹下运行一下命令生成相关的 metadata,如下:
$ ./bin/kylin.sh org.apache.kylin.tool.metrics.systemcube.SCCreator -inputConfig SCSinkTools.json -output ./system_cube # [<output_foeder>]
通过这个命令,相关的 metadata 将会生成且其位置位于 <output_forder> 下,此处<output_foeder>取 system_cube
:
$ ls system_cube
总用量 4
-create_hive_tables_for_system_cubes.sql cube cube_desc model_desc project table
2.1.3 设置数据源
运行下列命令生成 hive 源表:
$ hive -f system_cube/create_hive_tables_for_system_cubes.sql
2.1.4 为System Cubes上传 Metadata
然后我们需要通过下列命令上传 metadata 到 hbase:
$ ./bin/metastore.sh restore system_cube
2.1.5 重载Metadata
最终,我们需要在 Kylin web UI 重载 metadata。
然后,一组系统 Cubes 将会被创建在系统 project 下,称为 “KYLIN_SYSTEM”。
2.1.6 构建和更新System cube
当系统 Cube 被创建,我们需要定期 build Cube。
步骤一:创建一个 shell 脚本,通过调用 org.apache.kylin.tool.job.CubeBuildingCLI 来构建系统 Cube。例如:
#!/bin/bash
dir=$(dirname ${0})
export KYLIN_HOME=${dir}/../
CUBE=$1
INTERVAL=$2
DELAY=$3
CURRENT_TIME_IN_SECOND=`date +%s`
CURRENT_TIME=$((CURRENT_TIME_IN_SECOND * 1000))
END_TIME=$((CURRENT_TIME-DELAY))
END=$((END_TIME - END_TIME%INTERVAL))
ID="$END"
echo "building for ${CUBE}_${ID}" >> ${KYLIN_HOME}/logs/build_trace.log
sh ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.job.CubeBuildingCLI --cube ${CUBE} --endTime ${END} > ${KYLIN_HOME}/logs/system_cube_${CUBE}_${END}.log 2>&1 &
步骤二:定期运行这个 shell 脚本。例如,像接下来这样添加一个 cron job:
contab -e
0 */2 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_QA 3600000 1200000
20 */2 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_CUBE_QA 3600000 1200000
40 */4 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_RPC_QA 3600000 1200000
30 */4 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_JOB_QA 3600000 1200000
50 */12 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_JOB_EXCEPTION_QA 3600000 12000
从kylin 2.6.0 开始提供 system-cube.sh 脚本,用户可以通过执行此脚本来自动创建系统 Cube。
创建系统 Cube:sh bin/system-cube.sh setup
构建系统 Cube:sh bin/system-cube.sh build
为系统 Cube 添加定时任务:sh bin/system-cube.sh cron