我在HBase中有一個表來存儲用戶對象。每個對象有4列,我將每列命名爲[object_creation_date]_[column_name]
,以按對象創建日期自動排列列。如何在HBase中的所有列中找到一個值
For example:
RowKey 20140101_a 20140101_b 20140101_c 20140101_d 20140102_a 20140102_b 20140102_c 20140102_d
1 1a 1b 1c 1d 2a 2b 2c 2d
現在我試圖按列過濾這些值。有什麼方法可以找到屬性"C"
等於"2c"
的對象(4列的集合)嗎?它應該返回20140102
我嘗試使用ColumnRangeFilter
類,但它似乎只與前綴工作,我倒是需要一個正則表達式查找所有"C"
列,不管它們的創建日期。
是否有另一種方法做到這一點,或者我可以使用不同的表示數據?
好吧,這正是我期待和你們的做法唯一的問題是,如果我顛倒順序,我不能拿進階自動訂單的抗衡。這對我來說很重要,因爲我在分頁列表中使用它,我不想自己命令顯示最後N個對象(由用戶)。 另一方面,我避免將它們分成幾行,因爲我認爲這種數據庫旨在作爲傳統關係數據庫以「列方式」而不是「行方式」使用。 –
這並非如此,表格並不意味着當然,它們可以有更高的I/O效率,但是處理起來要複雜得多(正如你現在所經歷的那樣),最終,這一切都取決於你的數據訪問模式(更多信息在這裏:http://hbase.apache.org/book.html#schema.smackdown)。無論如何,構建列搜索的二級索引將是迄今爲止最快的方法,足以處理大量實時查詢(僅適用於精確匹配)。 –