Leia dados de várias tabelas em uma única solicitação em lote com o Tablestore PHP SDK.
Observações de uso
Uma única operação de leitura em lote recupera até 100 linhas de dados.
Pré-requisitos
Método
public function batchGetRow(array $request)
Exemplos
Leitura de duas linhas com valores de chave primária row1 e row2 na tabela test_table:
$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 {
// Call the batchGetRow method to read row data.
$response = $client->batchGetRow ($request);
// Process the response.
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.";
}
Configure os parâmetros de leitura em lote conforme necessário:
-
Para ler dados de várias tabelas, especifique uma configuração distinta para cada uma.
$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 ) ); -
Defina um intervalo de tempo para as versões de dados a recuperar. O sistema retorna apenas os dados dentro do período especificado.
// Set the time range for the query to the last 24 hours. $table['time_range'] = array ( 'start_time' => intval(microtime(true) * 1000) - 86400 * 1000, 'end_time' => intval(microtime(true) * 1000) ); -
Especifique as colunas de atributo a recuperar.
$table['columns_to_get'] = array('col2');