加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Hummer TimeSeries DB 中关于RowId 的使用

发布时间:2020-12-13 13:42:23 所属栏目:百科 来源:网络整理
导读:RowId是什么 ? Hummer中的rowid 和oracle 中的rowid 目的近似、实现不同。Rowid的目的都是唯一标示一条记录,而且也都属于伪列。但Oracle中rowid是有数据的物理位置计算获得,而Hummer中的rowid则是由key、时间戳、binlogid(数据落地时将自动加到记录中)
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读