use Hbase\Mutation; use Hbase\TScan; $socket = new TSocket('localhost', 9090); $socket->setSendTimeout(10000); // Ten seconds (too long for production, but this is just a demo ;) $socket->setRecvTimeout(20000); // Twenty seconds $transport = new TBufferedTransport($socket); $protocol = new TBinaryProtocol($transport); $client = new HbaseClient($protocol); try { $transport->open(); $table = 'note'; $filter = "QualifierFilter(>=, 'binary:1500')"; // greater than 1500 $scan = new TScan(array('startRow' => 'rowkey-1', 'stopRow' => 'rowkey-2', 'filterString' => $filter, 'sortColumns' => true)); $scanid = $client->scannerOpenWithScan($table, $scan, null); $rowresult = $client->scannerGet($scanid); // print_r($rowresult); echo "\nrow: {$rowresult[0]->row}, cols: \n\n"; // 위에 TScan에 sortColumns 옵션을 안주면 $rowresult[0]->columns 로 접근. $values = $rowresult[0]->sortedColumns; // asort($values); foreach ($values as $k => $v) { echo " {$k} => {$v->value}\n"; } $client->scannerClose($scanid); $transport->close(); } catch (TException $e) { print 'TException: ' . $e->__toString() . ' Error: ' . $e->getMessage() . "\n"; }
} $table_name = "table1"; $row_name = "row_name"; $arr = $client->getRow($table_name, $row_name, null); // $client->getRow return a array foreach ($arr as $k => $TRowResult) { // $k = 0 ; non-use // $TRowResultTRowResult = TRowResult var_dump($TRowResult); } //scannerOpenWithStop($tableName, $startRow, $stopRow, $columns); $table_name = 'zTest'; $startRow = "9-9-20120627-"; $stopRow = "9-9-20120627_"; $columns = array('info:'); $result = $client->scannerOpenWithStop($table_name, $startRow, $stopRow, $columns, null); while (true) { $record = $client->scannerGet($result); if ($record == null) { break; } foreach ($record as $TRowResult) { $row = $TRowResult->row; $column = $TRowResult->columns; foreach ($column as $family_column => $Tcell) { echo "{$family_column}={$Tcell->value}<br>"; echo "timestamp is {$Tcell->timestamp}"; } } } $transport->close();