11.3.3 直通车报表
直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:
图 11-8 直通车报表查询页面
●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。
●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现量、财务花费等数据,响应前端的实时查询需求。
每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排序后分页展示。
直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节省存储资源。
基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。