Todos os produtos
Search
Central de documentação

Tablestore:Excluir dados

Última atualização: Jul 07, 2026

O Tablestore oferece a operação DeleteRow para excluir uma única linha e a operação BatchWriteRow para excluir várias linhas.

Nota

A unidade básica de uma tabela é a linha, composta por colunas de chave primária e colunas de atributo. As colunas de chave primária são obrigatórias, e seus nomes e tipos devem ser idênticos em todas as linhas. As colunas de atributo são opcionais e podem variar entre as linhas. Para mais informações, consulte Modelo de tabela ampla.

Observações de uso

  • Ao excluir dados, a quantidade e os tipos das colunas de chave primária especificadas devem corresponder ao esquema de chave primária da tabela.

  • Não é possível recuperar dados excluídos. Proceda com cautela.

  • Se a tabela contiver um grande volume de dados, a operação de exclusão (especialmente em lote ou assíncrona com grandes quantidades de dados) pode demorar muito para concluir. Por exemplo, é normal que a operação leve mais de 48 horas. Recomendamos aguardar e monitorar o status da tarefa sem reenviar a solicitação de exclusão.

Excluir uma única linha

Chame a operação DeleteRow para excluir uma única linha. Se a linha especificada não existir, a operação não terá efeito.

Ao excluir uma linha, use uma atualização condicional para removê-la apenas se ela atender a condições específicas. Para mais informações, consulte atualização condicional.

Excluir várias linhas

Após obter as chaves primárias das linhas a serem excluídas, chame a operação BatchWriteRow para excluí-las em lote.

Nota

Para excluir automaticamente dados anteriores a um horário específico, use o recurso time to live (TTL). Para mais informações, consulte time to live (TTL).

Ao excluir linhas em lote, você tem as seguintes opções:

  • Excluir linhas de várias tabelas em uma única solicitação.

  • Usar uma atualização condicional para excluir linhas apenas se elas atenderem a condições específicas. Para mais informações, consulte atualização condicional.

Métodos

Console

Use o console do Tablestore para excluir uma ou várias linhas.

  1. Faça login no console do Tablestore.

  2. Na página Overview, localize a instância que deseja gerenciar e clique em Manage Instance na coluna Actions.

  3. Na aba Instance Details, clique em nome de uma tabela na seção Tables.

  4. Na aba Query Data, selecione uma ou mais linhas para excluir e clique em Delete na parte inferior da página.

  5. Na caixa de diálogo Delete, clique em OK.

Tablestore CLI

Execute o comando delete na Tablestore CLI para excluir uma linha.

O exemplo a seguir exclui uma linha em que a primeira coluna de chave primária é "86" e a segunda é 6771.

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

SDKs

Use o Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK ou PHP SDK para excluir dados. Os exemplos a seguir usam o Java SDK.

Excluir uma única linha

  • Excluir uma linha

    O código de exemplo a seguir demonstra como excluir uma linha de dados de uma tabela:

    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));
    }                    
  • Usar uma condição para excluir uma linha

    O código de exemplo a seguir demonstra como excluir uma linha de dados de uma tabela quando a linha existe e o valor da coluna Col0 nessa linha é maior que 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));
    }                   

Excluir várias linhas

  1. Antes de excluir dados, escolha um método para consultar as chaves primárias das linhas que deseja excluir.

    • Para excluir linhas dentro de um intervalo específico de chave primária, use a operação GetRange para recuperar suas chaves primárias. Para mais informações, consulte Ler dados.

    • Para excluir linhas que atendem a critérios específicos, crie um índice de pesquisa. Em seguida, use o índice de pesquisa para consultar os dados e recuperar as chaves primárias das linhas a serem excluídas. Para mais informações, consulte Criar um índice de pesquisa e Usar um SDK para consultar dados com um índice de pesquisa.

  2. Com as chaves primárias obtidas, chame a operação BatchWriteRow para excluir as linhas. Para mais informações, consulte Gravar dados em lote.

    O código de exemplo a seguir demonstra como excluir simultaneamente uma linha de dados em que o valor da coluna de chave primária pk é pk de uma tabela de dados e uma linha de dados em que o valor da coluna de chave primária pk1 é pk1 e o valor da coluna de chave primária pk2 é pk2 de outra tabela de dados:

    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());
        }
    }

Faturamento

A cobrança ocorre pelas Capacity Units (CUs) consumidas pelas operações. Dependendo do tipo de instância, o faturamento baseia-se em CUs de leitura/gravação sob demanda ou reservadas.

Nota

Para mais informações sobre tipos de instância e CUs, consulte Instâncias e throughput de leitura/gravação.

As CUs de leitura e gravação consumidas por uma operação DeleteRow são calculadas da seguinte forma:

  • CUs de gravação consumidas: tamanho total das colunas de chave primária da linha excluída, dividido por 4 KB e arredondado para cima até o inteiro mais próximo.

  • CUs de leitura consumidas: se houver verificação de condição (não definida como IGNORE), o valor corresponde ao tamanho total das colunas de chave primária, dividido por 4 KB e arredondado para cima até o inteiro mais próximo.

  • Se a operação falhar porque uma condição de existência de linha não for atendida, ela consumirá 1 CU de gravação.