3.4-3.6 依据业务需求分析HBase的表设计

一、依据[话单]查询需求分析HBase的表设计

image

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
posted @ 2019-05-27 10:58  米兰的小铁將  阅读(268)  评论(0编辑  收藏  举报