2016-11-14 5 views
0

大きなhbaseトランザクションテーブルには膨大なレコードがありません。 HBaseのシェルからhbaseテーブルから最新のサンプルレコードを取得するにはどうすればいいですか?

/最後の6 時間で更新され挿入されたサンプルレコードを取得する方法

  • 最後に挿入/更新されたレコードの数を得ることは可能ですか? 6時間ですか? /最後の6時間に更新され挿入されたサンプルレコードを取得する方法

答えて

1
  • 次のクエリは、過去6時間に挿入/更新されたhbaseテーブルのサンプルレコードを取得します。

    scan 'my.table', { LIMIT =>1, TIMERANGE => [(Time.now.to_f.round()*1000).to_i-21600000, (Time.now.to_f.round()*1000).to_i]}

  • それは最後の6時間に挿入/更新されたレコードの数を取得することはできますか? Count number of records in a column family in an HBase table

    # count_table 'test.table', { CACHE => 1000 } 
    # --- Count rows with caching. 
    # 
    def count_table(tablename, args = {}) 
    
        table = @shell.hbase_table(tablename) 
    
        # Run the scanner 
        scanner = table._get_scanner(args) 
    
        count = 0 
        iter = scanner.iterator 
    
        # Iterate results 
        while iter.hasNext 
         row = iter.next 
         count += 1 
        end 
    
        # Return the counter 
        return count 
    end 
    

    クエリは次のとおりです:クエリの上

    count_table 'my.table', { TIMERANGE => [(Time.now.to_f.round()*1000).to_i-21600000, (Time.now.to_f.round()*1000).to_i] , CACHE => 10000000} 
    

    は最後の6時間に挿入/更新されたレコードの数を取得します。SO回答に基づいて

結果は返されますが、w.r.tのパフォーマンス負荷はまだテストされていません。

注:私はまだこのスレッド を開いて、他人からのより良い回答を得るために私の質問に答えました。

関連する問題