Tous les produits
Search
Centre de documentation

Tablestore:Diviser les données d'une table en plusieurs partitions logiques de taille approximativement égale à la valeur spécifiée

Dernière mise à jour :Aug 18, 2026

Appelez l'opération ComputeSplitsBySize pour diviser une table de données en partitions logiques de taille sensiblement identique. La réponse inclut les points de division entre les partitions ainsi que les hôtes hébergeant chaque partition. Cette opération sert généralement à déterminer les plans d'exécution, tels que les plans de concurrence, pour les moteurs de calcul.

Remarque

Pour plus d'informations, consultez la rubrique ComputeSplitPointsBySize.

Prérequis

Opération API

    /**
     * Logically split data in a table into several splits whose sizes are close to the specified size, and return the split points between splits and prompt about hosts in which the splits reside. 
     * In most cases, this operation is used to determine execution plans such as concurrency plans for compute engines. 
     * @api
     * @param [] $request The request parameters. 
     * @return [] The response. 
     * @throws OTSClientException The exception that is thrown when a parameter error occurs or the Tablestore server returns a verification error. 
     * @throws OTSServerException The exception that is thrown when the Tablestore server returns an error. 
     */
    public function computeSplitPointsBySize(array $request)
            

Paramètres

Informations sur la requête

Paramètres de requête

Paramètre

Description

table_name

Nom de la table de données.

split_size

Taille approximative de chaque partition. Unité : 100 Mo.

Syntaxe de la requête

$result = $client->ComputeSplitsBySize([
    'table_name' => '<string>', // Required. The name of the data table.
    'split_size' => <integer>   // Required. The approximate size of each split.
]);     

Informations sur la réponse

Paramètres de réponse

Paramètre

Description

consumed

Unités de capacité (CU) consommées par cette opération.

capacity_unit contient les CU de lecture et d'écriture consommés :

  • read : débit de lecture.

  • write : débit d'écriture.

primary_key_schema

Schéma de clé primaire de la table de données, correspondant au schéma défini lors de la création de la table.

splits

Points de division entre les partitions. Chaque partition contient les champs suivants :

  • lower_bound : valeur minimale de la clé primaire dans la plage de la partition.

    Transmettez lower_bound à GetRange pour lire les données dans cette plage.

    • Chaque entrée contient successivement le nom de la clé primaire, la valeur de la clé primaire (PrimaryKeyValue) et le type de clé primaire (PrimaryKeyType).

    • PrimaryKeyType accepte les valeurs suivantes : PrimaryKeyTypeConst::CONST_INTEGER (INTEGER), PrimaryKeyTypeConst::CONST_STRING (chaîne encodée en UTF-8), PrimaryKeyTypeConst::CONST_BINARY (BINARY), PrimaryKeyTypeConst::CONST_INF_MIN (INF_MIN, c'est-à-dire -inf) et PrimaryKeyTypeConst::CONST_INF_MAX (INF_MAX, c'est-à-dire +inf).

  • upper_bound : valeur maximale de la clé primaire dans la plage de la partition. Le format est identique à celui de lower_bound.

    Transmettez upper_bound à GetRange pour lire les données dans cette plage.

  • location : hôte hébergeant la partition. Ce champ peut être vide.

Syntaxe de la réponse

[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key_schema' => [
        ['<string>', <PrimaryKeyType>],
        ['<string>', <PrimaryKeyType>, <PrimaryKeyOption>]
    ]
    'splits' => [
        [ 
            'lower_bound' => [
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>],
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
            ],
            'upper_bound' => [
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>],
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
            ],
            'location' => '<string>'
        ],
        // ...
    ]
]           

Exemples

L'exemple suivant divise une table de données en partitions logiques d'environ 100 Mo chacune (split_size = 1), puis affiche l'emplacement et la plage de clés primaires de chaque partition.

    $result = $client->ComputeSplitsBySize([
        'table_name' => 'MyTable', 
        'split_size' => 1
    ]);
    foreach($result['splits'] as $split) {
        print_r($split['location']);    
        print_r($split['lower_bound']);    
        print_r($split['upper_bound']);    
    }