zoukankan      html  css  js  c++  java
  • Thrift中实现按照时间戳范围操作Hbase数据

    在一次做项目的过程中,要实现一个功能,功能描述为前端给定日期范围,在该日期范围内取出指定行的信息。在Thrift常用的API中,取出一行所有的数据接口为getVer(),getver()具体描述如下:

    如果想取到带有时间戳的数据,有一个接口为getVerTs,getVerTs内容描述如下:

    但是此接口只能取到小于该时间戳的数据,如果想取到时间戳范围内的数据还是无能为力,为了实现此功能,接着又去尝试了getVer()中参数5map的用法,以为在map中添加timestamp的限制条件就好了。

    于是搜啊搜,Google,Baidu都尝试了,关于map的使用例子却找不到,于是就按照网上给的map的含义自己写,但是npm start后一大堆错误,最后实在没办法只好放弃此种方法。

    然后就静下心来看了看自己写的代码,自己处理hbase返回数据的方式,忽然,恍然大悟,自己费尽心思想用map实现,其实根本不需要,只需要对其得到的数据加上限制条件就OK了。我的代码如下:

    
    
     1 client.getVer('rdga_by_plate',encodedPlate,'KEY:ID','10000',null,AsyncSearchIdAjaxQuery);
    function AsyncSearchIdAjaxQuery(err,idValueAjaxQuery) 2 { 3 if (err) 4 { 5 console.log('getRow error:', err); 6 } 7 else 8 { 9 console.log("The ajax startdate is:",dateToTimestamp(inputedStartDate)); 10 console.log("The ajax enddate is:",dateToTimestamp(inputedEndDate)); 11 var rowKeys = new Array(); 12 var timestampNum = 0; 13 var startDateTimestamp = dateToTimestamp(inputedStartDate); 14 var endDateTimestamp = dateToTimestamp(inputedEndDate); 15 for(var key in idValueAjaxQuery) 16 { 17 //console.log("The key is:",key); 18 19 console.log('Row value:', idValueAjaxQuery[key].value.toString()); 20 console.log('Timestamp: ',idValueAjaxQuery[key].timestamp.toString()); 21 if(idValueAjaxQuery[key].timestamp.toString() >= startDateTimestamp && idValueAjaxQuery[key].timestamp.toString() <= endDateTimestamp) 22 { 23 rowKeys.push(idValueAjaxQuery[key].value.toString()); 24 timestampNum++; 25 }
    26 client.getRows('rdga_by_id',rowKeys,null,AsyncSearchDetailsAjaxQuery); 27 } 28 29 } 30 }

    getVer得到的数据在idValueAjaxQuery中,它的里面包括timestamp的内容,要想实现时间戳范围内查找数据,此时在21行加上限制条件,此时符合条件的idValueAjaxQuery中的value值就会放置在rowKeys数组中,这时通过26行的getRows得到的内容就是时间戳范围内的数据。



  • 相关阅读:
    中文词频统计
    复合数据类型,英文词频统计
    hadoop 综合大作业
    分布式并行计算MapReduce
    分布式文件系统HDFS 练习
    安装关系型数据库MySQL 安装大数据处理框架Hadoop
    爬虫综合大作业
    爬取全部的校园新闻
    获取一篇新闻的全部信息
    理解爬虫原理
  • 原文地址:https://www.cnblogs.com/cocos2014/p/4369552.html
Copyright © 2011-2022 走看看