我有一张桌子,我将存储事件数据。可能每天有数十亿条记录。
这是我的rowKey的结构:
salt_bucket-clientUUID-eventUUID-timestamp-timeUUID
salt_bucket
用于避免区域热点;是1 byte
,映射到我的区域数。clientUUID. 16 bytes
; eventUUID. 16 bytes
; timestamp
将被覆盖到最近的时间段(1小时30分钟甚至更精细的时间段)。 8 bytes
;
timeUUID
- 版本1的UUID用于保证记录的唯一性,以防止upserts。 16 bytes
;
在我的客户端Java应用程序中,我想执行范围扫描。输入参数将为timeWindow
(开始和结束日期),clientUUID
和eventUUID
。
我认为这份工作的最佳人选是FuzzyRowFilter
。它允许在行键上使用字节掩码。这样我就可以在行密钥的clientId
和eventId
组件上进行完全匹配,同时为salt_bucket
和timeUUID
留下?
问:但我的时间范围怎么办?如何让FuzzyRowFilter
尊重我的时间窗口,以便我可以优化我的扫描操作?