在一次做项目的过程中,要实现一个功能,功能描述为前端给定日期范围,在该日期范围内取出指定行的信息。在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数据的更多相关文章

  1. 在Eclipse中运行JAVA代码远程操作HBase的示例

    在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...

  2. 使用Phoenix通过sql语句更新操作hbase数据

    hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 h ...

  3. hadoop2的mapreduce操作hbase数据

    1.从hbase中取数据,再把计算结果插入hbase中 package com.yeliang; import java.io.IOException; import org.apache.hadoo ...

  4. 根据mysql中字段为时间戳查询某天数据

    //数据库保存的为时间戳select * from 表名 where FROM_UNIXTIME(存时间字段名,'%Y-%m-%d')='2017-12-12' //数据库保存的为日期格式时间SELE ...

  5. 大数据自学5-Python操作Hbase

    在Hue环境中本身是可以直接操作Hbase数据库的,但是公司的环境不知道什么原因一直提示"Api Error:timed out",进度条一直在跑,却显示不出表. 但是在CDH后台 ...

  6. 【Hbase三】Java,python操作Hbase

    Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...

  7. 大数据技术之_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 ...

  8. Django中cookie和session的操作

    一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...

  9. PHP通过Thrift操作Hbase

    PHP通过Thrift操作Hbase     HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量col ...

随机推荐

  1. System.Data.SQLite

    SQLite介绍 在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义.表.索引和数据本身 ...

  2. [HTML5]HTML语义(Semantics)

    HTML 是有含义的 语义指的是计算机语言定义的符号有其规范的含义,HTML中的标签.属性和属性值都有其约定的含义. 语义和默认样式有所不同,默认样式是浏览器设定的一些常用标签的表现形式,而语义化的主 ...

  3. HBase体系结构

    HBase的服务器体系结构遵从简单的主从服务器架构,它由HRegion服务器(HRegion Service)群和HBase Master服务器(HBase Master Server)构成.Hbas ...

  4. logstash 因为jdk版本不对造成索引时间戳失败

    版本 logstash 1.5.0 RC2 JDK 1.7.15 Logstash推荐使用JDK 1.7.75 每次启动都是会有部分的数据无法替换日志中的时间戳,导致日志时间戳被认定为当前读取时间. ...

  5. 16.检查是否为BST

    题目描述 请实现一个函数,检查一棵二叉树是否为二叉查找树. 给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树 import java.util.*; /* ...

  6. 55. Set Matrix Zeroes

    Set Matrix Zeroes (Link: https://oj.leetcode.com/problems/set-matrix-zeroes/) Given a m x n matrix, ...

  7. is not in the sudoers file 问题解决【转载】

    解决方案:首需要切换到root身份$su - 或者 $sudo -s (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还 ...

  8. Laxcus大数据管理系统单机集群版

    Laxcus大数据管理系统是我们Laxcus大数据实验室历时5年,全体系全功能设计研发的大数据产品,目前的最新版本是2.1版本.从三年前的1.0版本开始,Laxcus大数据系统投入到多个大数据和云计算 ...

  9. ASP.NET 操作Cookie详解 增加,修改,删除

    ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...

  10. 多媒体(4):JPEG图像压缩编码

    (重要的事放前面)此JPEG的C++实现见 https://github.com/chencjGene/SoftEngineering/tree/master/JPEG 目录 多媒体(1):MCI接口 ...