Tous les produits
Search
Centre de documentation

Tablestore:Supprimer des données

Dernière mise à jour :Aug 18, 2026

Tablestore propose l'opération DeleteRow pour supprimer une seule ligne et l'opération BatchWriteRow pour en supprimer plusieurs.

Remarque

L'unité de base d'une table est la ligne, composée de colonnes de clé primaire et de colonnes d'attribut. Les colonnes de clé primaire sont obligatoires ; leurs noms et types doivent être identiques pour toutes les lignes. Les colonnes d'attribut sont facultatives et peuvent varier d'une ligne à l'autre. Pour plus d'informations, consultez le modèle de table large.

Remarques relatives à l'utilisation

  • Lors de la suppression de données, le nombre et les types des colonnes de clé primaire spécifiés doivent correspondre au schéma de clé primaire de la table.

  • Les données supprimées ne peuvent pas être récupérées. Procédez avec prudence.

  • Si la table contient un grand volume de données, une opération de suppression (en particulier une suppression par lot ou asynchrone impliquant de grandes quantités de données) peut prendre beaucoup de temps. Il est normal que l'opération dure plus de 48 heures. Nous vous recommandons de patienter et de surveiller l'état de la tâche sans renvoyer la demande de suppression.

Supprimer une seule ligne

Appelez l'opération DeleteRow pour supprimer une seule ligne. Si la ligne spécifiée n'existe pas, l'opération n'a aucun effet.

Lorsque vous supprimez une ligne, vous pouvez utiliser une mise à jour conditionnelle pour ne la supprimer que si elle remplit certaines conditions. Pour plus d'informations, consultez la section relative aux mises à jour conditionnelles.

Supprimer plusieurs lignes

Après avoir obtenu les clés primaires des lignes à supprimer, appelez l'opération BatchWriteRow pour les supprimer par lot.

Remarque

Pour supprimer automatiquement les données antérieures à une date spécifique, vous pouvez utiliser la fonctionnalité Time To Live (TTL). Pour plus d'informations, consultez la section sur le Time To Live (TTL).

Lors de la suppression de lignes par lot, les options suivantes s'offrent à vous :

  • Supprimez des lignes de plusieurs tables dans une seule requête.

  • Utilisez une mise à jour conditionnelle pour ne supprimer les lignes que si elles remplissent certaines conditions. Pour plus d'informations, consultez la section relative aux mises à jour conditionnelles.

Méthodes

Console

Utilisez la console Tablestore pour supprimer une ou plusieurs lignes.

  1. Connectez-vous à la console Tablestore.

  2. Sur la page Overview, localisez l'instance que vous souhaitez gérer et cliquez sur Manage Instance dans la colonne Actions.

  3. Dans l'onglet Instance Details, cliquez sur le nom d'une table dans la section Tables.

  4. Dans l'onglet Query Data, sélectionnez une ou plusieurs lignes à supprimer, puis cliquez sur Delete en bas de la page.

  5. Dans la boîte de dialogue Delete, cliquez sur OK.

Tablestore CLI

Exécutez la commande delete dans Tablestore CLI pour supprimer une ligne.

L'exemple suivant supprime une ligne dont la première colonne de clé primaire est "86" et la seconde est 6771.

delete --pk '["86", 6771]'

SDKs

Utilisez le Java SDK, le Go SDK, le Python SDK, le Node.js SDK, le .NET SDK ou le PHP SDK pour supprimer des données. Les exemples suivants utilisent le Java SDK.

Supprimer une seule ligne

  • Supprimer une ligne

    L'exemple de code suivant montre comment supprimer une ligne de données d'une table :

    private static void deleteRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
    
        client.deleteRow(new DeleteRowRequest(rowDeleteChange));
    }                    
  • Utiliser une condition pour supprimer une ligne

    L'exemple de code suivant montre comment supprimer une ligne de données d'une table lorsque la ligne existe et que la valeur de la colonne Col0 est supérieure à 100 :

    private static void deleteRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
    
        // Specify conditions for the DeleteRow operation. In this example, a row is deleted only when the row exists and the value of the Col0 column is greater than 100. 
        Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST);
        condition.setColumnCondition(new SingleColumnValueCondition("Col0",
                SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromLong(100)));
        rowDeleteChange.setCondition(condition);
    
        client.deleteRow(new DeleteRowRequest(rowDeleteChange));
    }                   

Supprimer plusieurs lignes

  1. Avant de supprimer des données, choisissez une méthode pour interroger les clés primaires des lignes que vous souhaitez supprimer.

  2. Une fois que vous disposez des clés primaires, appelez l'opération BatchWriteRow pour supprimer les lignes. Pour plus d'informations, consultez la section Écriture de données par lot.

    L'exemple de code suivant montre comment supprimer simultanément une ligne de données d'une table de données (où la valeur de la colonne de clé primaire pk est pk) et une ligne de données d'une autre table de données (où la valeur de la colonne de clé primaire pk1 est pk1 et celle de la colonne pk2 est pk2) :

    private static void batchWriteRow(SyncClient client) {    
        BatchWriteRowRequest batchWriteRowRequest = new BatchWriteRowRequest();
    
        // Construct rowDeleteChange1. 
        PrimaryKeyBuilder pk1Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        pk1Builder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("pk"));
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange1 = new RowDeleteChange("<TABLE_NAME1>", pk1Builder.build());
        // Add rowDeleteChange1 to the code of the batch operation. 
        batchWriteRowRequest.addRowChange(rowDeleteChange1);
    
        // Construct rowDeleteChange2. 
        PrimaryKeyBuilder pk2Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        pk2Builder.addPrimaryKeyColumn("pk1", PrimaryKeyValue.fromString("pk1"));
        pk2Builder.addPrimaryKeyColumn("pk2", PrimaryKeyValue.fromString("pk2"));
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange2 = new RowDeleteChange("<TABLE_NAME2>", pk2Builder.build());
        // Add rowDeleteChange2 to the code of the batch operation. 
        batchWriteRowRequest.addRowChange(rowDeleteChange2);
    
        BatchWriteRowResponse response = client.batchWriteRow(batchWriteRowRequest);
    
        System.out.println("Whether all operations are successful:" + response.isAllSucceed());
        if (!response.isAllSucceed()) {
            for (BatchWriteRowResponse.RowResult rowResult : response.getFailedRows()) {
                System.out.println("Failed rows:" + batchWriteRowRequest.getRowChange(rowResult.getTableName(), rowResult.getIndex()).getPrimaryKey());
                System.out.println("Cause of failures:" + rowResult.getError());
            }
            /**
             * You can use the createRequestForRetry method to construct another request to retry the operations on failed rows. In this example, only the retry request is constructed. 
             * We recommend that you use the custom retry policy in Tablestore SDKs as the retry method. This feature allows you to retry failed rows after batch operations are performed. After you specify the retry policy, you do not need to add retry code to call the operation. 
             */
            BatchWriteRowRequest retryRequest = batchWriteRowRequest.createRequestForRetry(response.getFailedRows());
        }
    }

Facturation

Vous êtes facturé en fonction des unités de capacité (CU) consommées par vos opérations. Selon le type d'instance, la facturation est basée sur des CU de lecture/écriture à la demande ou réservés.

Remarque

Pour plus d'informations sur les types d'instances et les CU, consultez les sections Instances et débit de lecture/écriture.

Les CU de lecture et d'écriture consommés par une opération DeleteRow sont calculés comme suit :

  • CU d'écriture consommés : taille totale des colonnes de clé primaire de la ligne supprimée, divisée par 4 Ko et arrondie à l'entier supérieur.

  • CU de lecture consommés : si une vérification de condition est spécifiée (non définie sur IGNORE), le montant est calculé en divisant la taille totale des colonnes de clé primaire par 4 Ko et en arrondissant à l'entier supérieur.

  • Si l'opération échoue car une condition d'existence de ligne n'est pas remplie, elle consomme 1 CU d'écriture.