Tablestore PHP SDK を使用して、単一のバッチリクエストで複数のテーブルからデータを読み取ります。
注意事項
単一のバッチ読み取り操作で、最大 100 行のデータを取得できます。
前提条件
メソッド
public function batchGetRow(array $request)例
test_table テーブルから、プライマリキー値が row1 と row2 の 2 行を読み取ります。
$table = array (
'table_name' => 'test_table',
'max_versions' => 1,
'primary_keys' => array (
array ( array('id', 'row1') ),
array ( array('id', 'row2') )
)
);
$request = array (
'tables' => array (
$table
)
);
try {
// batchGetRow メソッドを呼び出して行データを読み取ります。
$response = $client->batchGetRow ($request);
// 応答を処理します。
foreach ($response['tables'] as $tableGroup) {
echo "* Table: " . $tableGroup['table_name'] . "\n";
foreach ($tableGroup['rows'] as $row) {
if ($row['is_ok']) {
if ($row['primary_key'] != null) {
echo "Succeeded Row: " . json_encode($row['primary_key']) . json_encode($row['attribute_columns']) . "\n";
} else {
echo "Succeeded Row: This row is not exist." . "\n";
}
} else {
echo "Failed Row: " . $row['error']['code'] . '. ' . $row['error']['message'] . "\n";
}
}
}
} catch (Exception $e){
echo "Batch get row failed.";
}必要に応じてバッチ読み取りパラメーターを設定します。
複数のテーブルからデータを読み取ります。バッチ読み取り操作は、複数のテーブルから同時にデータを取得することをサポートしています。各テーブルに MultiRowQueryCriteria を指定します。
$table1 = array ( 'table_name' => 'orders_small', 'max_versions' => 1, 'primary_keys' => array ( array ( array('order_id', '90fb478c-1360-11f0-a34d-00163e30a2a9') ) ) ); $request = array ( 'tables' => array ( $table, $table1 ) );取得するデータバージョンの時間範囲を設定します。指定された時間範囲内のデータのみが返されます。
// クエリの時間範囲を過去 24 時間に設定します。 $table['time_range'] = array ( 'start_time' => intval(microtime(true) * 1000) - 86400 * 1000, 'end_time' => intval(microtime(true) * 1000) );取得する属性列を指定します。
$table['columns_to_get'] = array('col2');