3.4-3.6 依据业务需求分析HBase的表设计
一、依据[话单]查询需求分析HBase的表设计
1、分析
用户需要进行实时的查询,那么这些数据是放在HBase当中的,每个客户每天接打电话至少20个左右,而通信公司拥有很多用户,每天产生的数据都是上亿条。
提取出需要的信息,主要包括以下几点:
自己的号码:telphone
拨打或接听时间:teltime
区域:area
主叫或被叫:active
对方的号码:phone
通话时长:talktime
通话模式(国内或国外):mode
费用:price
而大部分功能的查询条件分析如下:
telphone +(starttime - endtime),条件是:号码+开始时间——结束时间
2、设计Rowkey
条件在上一章提过:号码+开始时间——结束时间,那么设计Rowkey就是telphone(电话号码)+teltime(通话时间)
在表的Rowkey设计中:
核心思想:
依据Rowkey查询最快
在实际的应用当中,就是对Rowkey进行范围查询range,Rowkey通常都是多个字段组成的。
Rowkey是前缀匹配的
二、查询固定时间段,接到固定电话的次数
1、分析
新的需求(话单数据的查询) phone + time >>> 依据前面设计的表 使用filter columnFilter ========================================================== 索引表/辅助表(主表) -- 功能 phone_time 比如: 182600937645_2015100100000 182600937645_2015102400000 列簇:info 列: rowkey -> Get最快的数据查询 ========================================================= 主表和索引表的数据 如何同步呢????? >> 程序,事物 >> phoenix:Phoenix 基于Hbase给面向业务的开发人员提供了以标准SQL的方式对Hbase进行查询操作 >> JDBC方式,才能同步 创建索引表 >> solr lily cloudera search