Tous les produits
Search
Centre de documentation

Tablestore:Analyse parallèle

Dernière mise à jour :Aug 08, 2026

Si l'ordre des résultats de requête n'a pas d'importance, utilisez la fonctionnalité d'analyse parallèle pour récupérer les résultats efficacement.

Important

Le SDK Tablestore pour PHP version 5.1.0 ou ultérieure prend en charge l'analyse parallèle. Avant d'utiliser cette fonctionnalité, assurez-vous d'avoir installé le SDK Tablestore pour PHP version 5.1.0 ou une version plus récente. Pour consulter l'historique des versions du SDK Tablestore pour PHP, reportez-vous à la rubrique Historique des versions du SDK Tablestore pour PHP.

Prérequis

Exemples

L'exemple de code suivant montre comment utiliser la fonctionnalité d'analyse parallèle des index de recherche :

// 1. Obtain the session ID. 
$computeSplitsPointReq = array(
    'table_name' => 'php_sdk_test',
    'search_index_splits_options' => array(
        'index_name' => 'test_create_search_index'
    )
);

$computeSplits = $otsClient->computeSplits($computeSplitsPointReq);
print json_encode ($computeSplits, JSON_PRETTY_PRINT);

// 2. Specify query conditions. 
$scanQuery = array(
    'query' => array(
        'query_type' => QueryTypeConst::MATCH_ALL_QUERY
    ),
    'limit' => 2,
    'alive_time' => 30,
    'token' => null,
    'current_parallel_id' => 0,
    'max_parallel' => 1
);

//3. Construct a ParallelScan request. 
$parallelScanReq = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'test_create_search_index',
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_ALL_FROM_INDEX, // RETURN_ALL is not allow in parallel_scan, use RETURN_ALL_FROM_INDEX
        'return_names' => array('geo', 'text', 'long', 'keyword')
    ),
    'session_id' => $computeSplits['session_id'],
    'scan_query' => $scanQuery
);

$parallelScanRes = $otsClient->parallelScan($parallelScanReq);
print json_encode ($parallelScanRes['rows'], JSON_PRETTY_PRINT);

//4. Export data by using token-based pagination. In this example, only the total number of rows is collected. 
$totalCount = count($parallelScanRes['rows']);
while (!is_null($parallelScanRes['next_token'])) {
    $parallelScanReq['scan_query']['token'] = $parallelScanRes['next_token'];
    $parallelScanRes = $otsClient->parallelScan($parallelScanReq);
    print json_encode ($parallelScanRes['rows'], JSON_PRETTY_PRINT);

    $totalCount += count($parallelScanRes['rows']);
}
print "TotalCount: " . $totalCount;