Hummer TimeSeries DB 中关于RowId 的使用

前端之家收集整理的这篇文章主要介绍了Hummer TimeSeries DB 中关于RowId 的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
RowId是什么 ?
Hummer中的rowid 和oracle 中的rowid 目的近似、实现不同。Rowid的目的都是唯一标示一条记录,而且也都属于伪列。但Oracle中rowid是有数据的物理位置计算获得,而Hummer中的rowid则是由key、时间戳、binlogid(数据落地时将自动加到记录中)组成(也正因此Oracle rowid是定长的,Hummer 中rowid是不定长的)。不过Hummer和 Oracle 中的rowid用法和用途基本相似。

RowId在什么时候使用 ?
对于重复记录(key 和timestamp 都相同)的操作往往需要使用rowid—— 因为虽然记录重复但rowid不会重复,因此如果对重复记录中的给定记录做检索、删除、或更新,就要使用rowid。
select rowid,car_card_num,pass_time,speed from tpass2 limit 4
rowid car_card_num pass_time speed
0001EogO9;HYiel1A39FJ300000000000E== 京A02QT0 1388534441140 46
0001EogO9;HYiel1A39FJ300000001u4UE== 京A02QT0 1388534441140 46
0001EogOREnYiel1A3B;B5A0000000000U== 京A03K4S 1388534461708 59
0001EogOREnYiel1A3B;B5A0000001u4UU== 京A03K4S 1388534461708 59

更新操作

updatetpass2 set speed = 100 whererowid='0001EogOREnYiel1A3B;B5A0000001u4UU=='selectrowid,speed fromtpass2 where rowid='0001EogOREnYiel1A3B;B5A0000001u4UU==' 检查记录speed已被修改

rowid car_card_num pass_time speed
0001EogOREnYiel1A3B;B5A0000001u4UU== 京A03K4S 1388534461708
100

注:rowid 更新不支持更新key和时间戳字段!

删除操作

delete fromtpass2 where rowid='0001EogOREnYiel1A3B;B5A0000001u4UU=='

select * fromtpass2 where rowid='0001EogOREnYiel1A3B;B5A0000001u4UU==' 则记录对应记录被删除

另外hummer 的rowid是时间有序的,即可以使用rowid><等条件,过滤给定rowid对应时间之间或之后的记录集合,如
select car_card_num,speed from tpass2 where rowid<='0001EogOREnYiel1A3B;B5A0000000000U=='

car_card_num
pass_time speed
京A02QT0 1388534441140 46
京A02QT0 1388534441140 46
京A03K4S 1388534461708 59
Hummer TimeSeries DB Dock DEMO 介绍文章和下载见http://blog.csdn.net/kanghua/article/details/44653149 原文链接:https://www.f2er.com/nosql/203951.html

猜你在找的NoSQL相关文章