HBase過(guò)濾器語(yǔ)言示例

2018-08-20 15:11 更新

使用過(guò)濾器語(yǔ)言的PHP客戶端程序示例

<?
  $_SERVER['PHP_ROOT'] = realpath(dirname(__FILE__).'/..');
  require_once $_SERVER['PHP_ROOT'].'/flib/__flib.php';
  flib_init(FLIB_CONTEXT_SCRIPT);
  require_module('storage/hbase');
  $hbase = new HBase('<server_name_running_thrift_server>', <port on which thrift server is running>);
  $hbase->open();
  $client = $hbase->getClient();
  $result = $client->scannerOpenWithFilterString('table_name', "(PrefixFilter ('row2') AND (QualifierFilter (>=, 'binary:xyz'))) AND (TimestampsFilter ( 123, 456))");
  $to_print = $client->scannerGetList($result,1);
  while ($to_print) {
    print_r($to_print);
    $to_print = $client->scannerGetList($result,1);
  }
  $client->scannerClose($result);
?>

過(guò)濾器字符串示例

  • "PrefixFilter ('Row') AND PageFilter (1) AND FirstKeyOnlyFilter ()" 將返回符合以下條件的所有鍵值對(duì):
    1. 包含鍵值的行應(yīng)該有前綴Row;
    2. 鍵值必須位于表的第一行;
    3. 鍵值對(duì)必須是行中的第一個(gè)鍵值
  • "(RowFilter (=, 'binary:Row 1') AND TimeStampsFilter (74689, 89734)) OR ColumnRangeFilter ('abc', true, 'xyz', false))"將返回符合以下兩個(gè)條件的所有鍵值對(duì):
    • 鍵值位于具有行鍵Row 1的行中;
    • 鍵值必須具有74689或89734的時(shí)間戳;
    • 或者它必須符合以下條件:
      • 鍵值對(duì)必須位于按字典順序> = abc和<xyz排列的列中 
  • "SKIP ValueFilter (0)",如果行中的任何值不為0,則將跳過(guò)整行
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)