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

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

但是此接口只能取到小于该时间戳的数据,如果想取到时间戳范围内的数据还是无能为力,为了实现此功能,接着又去尝试了getVer()中参数5map的用法,以为在map中添加timestamp的限制条件就好了。
于是搜啊搜,Google,Baidu都尝试了,关于map的使用例子却找不到,于是就按照网上给的map的含义自己写,但是npm start后一大堆错误,最后实在没办法只好放弃此种方法。
然后就静下心来看了看自己写的代码,自己处理hbase返回数据的方式,忽然,恍然大悟,自己费尽心思想用map实现,其实根本不需要,只需要对其得到的数据加上限制条件就OK了。我的代码如下:
client.getVer('rdga_by_plate',encodedPlate,'KEY:ID','10000',null,AsyncSearchIdAjaxQuery);
function AsyncSearchIdAjaxQuery(err,idValueAjaxQuery)
{
if (err)
{
console.log('getRow error:', err);
}
else
{
console.log("The ajax startdate is:",dateToTimestamp(inputedStartDate));
console.log("The ajax enddate is:",dateToTimestamp(inputedEndDate));
var rowKeys = new Array();
var timestampNum = 0;
var startDateTimestamp = dateToTimestamp(inputedStartDate);
var endDateTimestamp = dateToTimestamp(inputedEndDate);
for(var key in idValueAjaxQuery)
{
//console.log("The key is:",key);
console.log('Row value:', idValueAjaxQuery[key].value.toString());
console.log('Timestamp: ',idValueAjaxQuery[key].timestamp.toString());
if(idValueAjaxQuery[key].timestamp.toString() >= startDateTimestamp && idValueAjaxQuery[key].timestamp.toString() <= endDateTimestamp)
{
rowKeys.push(idValueAjaxQuery[key].value.toString());
timestampNum++;
}
client.getRows('rdga_by_id',rowKeys,null,AsyncSearchDetailsAjaxQuery);
}
}
}
getVer得到的数据在idValueAjaxQuery中,它的里面包括timestamp的内容,要想实现时间戳范围内查找数据,此时在21行加上限制条件,此时符合条件的idValueAjaxQuery中的value值就会放置在rowKeys数组中,这时通过26行的getRows得到的内容就是时间戳范围内的数据。
Thrift中实现按照时间戳范围操作Hbase数据的更多相关文章
- 在Eclipse中运行JAVA代码远程操作HBase的示例
在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...
- 使用Phoenix通过sql语句更新操作hbase数据
hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 h ...
- hadoop2的mapreduce操作hbase数据
1.从hbase中取数据,再把计算结果插入hbase中 package com.yeliang; import java.io.IOException; import org.apache.hadoo ...
- 根据mysql中字段为时间戳查询某天数据
//数据库保存的为时间戳select * from 表名 where FROM_UNIXTIME(存时间字段名,'%Y-%m-%d')='2017-12-12' //数据库保存的为日期格式时间SELE ...
- 大数据自学5-Python操作Hbase
在Hue环境中本身是可以直接操作Hbase数据库的,但是公司的环境不知道什么原因一直提示"Api Error:timed out",进度条一直在跑,却显示不出表. 但是在CDH后台 ...
- 【Hbase三】Java,python操作Hbase
Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...
- 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理
第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...
- Django中cookie和session的操作
一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...
- PHP通过Thrift操作Hbase
PHP通过Thrift操作Hbase HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量col ...
随机推荐
- HackerRank "Kruskal (MST): Really Special Subtree"
Kruskal Algorithm is based on Union-Find - quite intuitive. #include <vector> #include <ios ...
- nodejs:express API之res.locals
在从零开始nodejs系列文章中,有一个login.html文件 再来看它的get方法,我们并没有看到mess字段.那mess到底是从哪里来的呢? 接着我看到app.js文件里面: 只有这里出现了me ...
- Wampserver2.5配置虚拟主机出现403 Forbidden解决办法
一直在用APMServ5.2.6,mysql好办,可以用mariadb代替进行升级,但php升级到5.4.7就没办法再升级,安装加速器也困难.就想迁移到Wampserver上来,以前也尝试过Wamps ...
- gerrit: Error in POST /accounts/self/preferences
转载:https://code.google.com/p/gerrit/issues/detail?id=3157 1. Migrated from 2.8.6.1 to 2.10 2. In UI ...
- “NOT_IN”与“NULL”的邂逅
今天处理了一个因“NOT IN”与“NULL”邂逅导致的问题,值得思考和总结,记录在此,供参考.(感谢John抛出的问题) 我们以实验的形式先再现一下这个问题,然后对其分析,最后给出几种解决方案. 1 ...
- protoc 和 protoc-gen-go 产生的 proto 文件代码对比
protoc 命令来自 https://github.com/google/protobuf, 由于这里没有 go 的产生代码, go的产生代码在 protoc-gen-go (https://gi ...
- Visual Studio Enterprise 2015下载 Update3
Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Android 和 iOS 应用程序以及新式 Web 应用程序和云服务. 1.适用于各种规模和复杂程度 ...
- [DFNews] What's coming in EnCase 7.08?
论版本变化速度,AD绝对首屈一指,从FTK 4到现在的FTK 5也不过两年多时间,EnCase近期(初步预计8月初)将推出V7的新版本7.08,下面是一些新功能: Evidence Processor ...
- 62. Divide Two Integers
Divide Two Integers Divide two integers without using multiplication, division and mod operator. 思路: ...
- dedecms代码研究五
上一次留几个疑问: 1)DedeTagParse类LoadTemplet方法. 2)MakeOneTag到底在搞什么. 从DedeTagParse开始前面,我们一直在dedecms的外围,被各种全局变 ...