用于浏览数据的Hbase架构/行键设计?

用于浏览数据的Hbase架构/行键设计?,hbase,Hbase,我们计划在我们的一个项目中使用HBase 我们正在从内部系统获取一些浏览信息,数据格式如下 我们的要求是我们必须开发3种不同类型的搜索 D IP+日期范围(开始日期和结束日期) S IP+日期范围(开始日期和结束日期) URL+日期范围(开始日期和结束日期) 我正在考虑创建3个HBase表,如 行键作为DestinationIP+DateTime 行键为SourceIP+DateTime 行键为URL+DateTime 如果我采用上述方法,存储这些数据将占用大量空间 S IP

我们计划在我们的一个项目中使用HBase

我们正在从内部系统获取一些浏览信息,数据格式如下

我们的要求是我们必须开发3种不同类型的搜索

  • D IP+日期范围(开始日期和结束日期)
  • S IP+日期范围(开始日期和结束日期)
  • URL+日期范围(开始日期和结束日期)
  • 我正在考虑创建3个HBase表,如

  • 行键作为DestinationIP+DateTime
  • 行键为SourceIP+DateTime
  • 行键为URL+DateTime
  • 如果我采用上述方法,存储这些数据将占用大量空间

    S IP            DateTime       Method URL        - ResponseCode - D IP -
    176.204.134.111 20140421093842 GET    http://googleads.g.doubleclick.net/pagead/adview?ai=CAbmt4K5UU47XB5GS8wPOi4C4CKH1-ZwCkbiU7inAjbcBEAEgptSKH1D0-ev7B2CRdsgBAakC4V3k_lZFkj6oAwHIA4oEqgSQAU_QtfygurroekV-h5dYCoVP70qKDV1sAkiI60NNZiQ1wICQkqb5XMC3TllLKrhD0KxX0kb9-LnGkCDTqGmDE3Do-UdLGIyluqQ7MwoAcuTJMUajYKOflKPd2ZDj6RlKUAI9pbdkb96-k-XTVpON9rjUM2vUkvjwW3BwSfQk656GjoyUcEwsjwWId7p7obHcTsAEqf_DzQKSBQQIBBgBkgUECAUYBJAGAdgGAoAHueeCC5gHAQ&sigh=7zrG0DRVvMA 0 TCP_MISS/200 - 173.194.66.155 -  0
    2.50.165.129    20140421093842 GET    http://www.alquds.co.uk/wp-content/uploads/2014/04/1217.jpg 0 TCP_MISS/200 - 46.165.251.78 -  0
    
    对于上述要求,什么是好的模式设计?

    考虑使用,它针对小键值时间序列数据的存储进行了优化


    即使您不选择使用它,也一定要阅读讨论其中涉及的架构设计决策。

    我们的数据不是时间序列数据。在这里,我们得到了数十亿行的源IP、目标IP、URL(高达2000Char),Datatime。我们希望基于1.)源IP+日期时间和2.)目标IP+日期时间和3.)URL+日期时间开发3个搜索。这种OpenTSDB设计对我们没有任何帮助。您通过时间戳记录和查询的事实向我表明,这是时间序列数据,即使您不选择那样查看它。不管是哪种方式,看看OpenTSDB:从您告诉我的情况来看,它听起来仍然很适合。我的URL列长度大约为2000个字符,如果我将URL+时间戳设置为ROWKEY,可以吗?还是会占用更多空间,性能会下降?因为在Hbase中的任何地方,他们都建议将行键保持尽可能小。请建议。将url放在行键的第一位,并使用前缀数据块编码器(
    data\u block\u ENCODING=>hbase shell中的“prefix”