[英]HBase Scan based on specific HFile(s) as roots
是否有任何具有以下行為的掃描/過濾器API?
給定時間范圍,我希望掃描儀包含來自HFiles的數據超出范圍,包括在HFiles中的行鍵在范圍內。 我們的想法是掃描所有HFile的內存索引,但只從磁盤中獲取來自HFile的rowkeys的數據。
例如,如果HFile1
在范圍和HFile2
超出范圍,和rowkey1
在任何數據HFile1
,我想獲得的所有列rowkey1
從HFile2
為好,就好像它是在范圍內。 在另一方面,如果rowkey2
包括在HFile2
但不是在HFile1
,索引掃描儀應該只是跳到下一行的關鍵。
用例是在最后X小時內加載已修改的整行 (即使只在一列上),從而避免對冗余數據進行全面掃描或任何磁盤掃描。 這將集成到Spark / MR應用程序中,可能基於TableSnapshotInputFormat,所以我想我可以為HRegion,HStore或其他任何東西發送一些自定義代碼,如果有的話。
非常感謝
如果這是用例,
用例是在最后X小時內加載已修改的整行(即使只在一列上),避免了冗余數據的全掃描或任何磁盤掃描
為什么帶時間戳范圍的掃描不起作用? HBase JAVA API org.apache.hadoop.hbase.client.Scan.setTimeRange(long, long)
將時間范圍作為輸入,並且僅獲取在此時間范圍內修改的行。
如果您希望它更靈活,則應用KeyOnlyFilter()
並獲取所有rowkeys。 稍后您可以根據行數進行批量Get
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.