Procedimento armazenado REDACT_REVISION no Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Procedimento armazenado REDACT_REVISION no Amazon QLDB

nota

No momento, todos os ledgers criados antes de 22 de julho de 2021 não são elegíveis para edição. Você pode visualizar a hora de criação do seu ledger no console do Amazon QLDB.

No Amazon QLDB, use o procedimento armazenado REDACT_REVISION para excluir permanentemente uma revisão de documento individual e inativa no armazenamento indexado e no armazenamento de diário. Esse procedimento armazenado exclui todos os dados do usuário na revisão especificada. No entanto, deixa a sequência do diário e os metadados do documento, incluindo a ID e o hash do documento, inalterados. Essa operação é irreversível.

A revisão do documento especificada deve ser uma revisão inativa no histórico. A revisão ativa mais recente de um documento não está qualificada para redação.

Depois que você envia uma solicitação de redação executando o procedimento armazenado, o QLDB processa a edição dos dados de forma assíncrona. Depois que a redação for concluída, os dados do usuário na revisão especificada (representados pela estrutura data) são substituídos por um novo campo dataHash. O valor desse campo é o hash de Amazon Ion da estrutura data removida. Como resultado, o ledger mantém a integridade geral dos dados e permanece criptograficamente verificável por meio das operações existentes da API de verificação.

Para ver um exemplo de uma operação de edição com dados de exemplo, consulte Exemplo de redação em Redigindo revisões de documentos.

nota

Para aprender a controlar o acesso para executar este comando do PartiQL em tabelas específicas, consulte Introdução ao modo de permissões padrão no Amazon QLDB.

Considerações e limitações de edição

Antes de começar com a edição de dados no Amazon QLDB, certifique-se de analisar as seguintes considerações e limitações:

  • O procedimento REDACT_REVISION armazenado tem como alvo os dados do usuário em uma revisão de documento individual e inativa. Para editar várias revisões, você deve executar o procedimento armazenado uma vez para cada revisão. Você pode editar uma revisão por transação.

  • Para editar campos específicos em uma revisão de documento, você deve usar uma instrução separada de linguagem de manipulação de dados (DML) para modificar a revisão primeiro. Para obter mais informações, consulte Editando um campo específico em uma revisão.

  • Depois que o QLDB receber uma solicitação de redação, você não poderá cancelar nem alterar a solicitação. Para confirmar se uma edição foi concluída, você pode verificar se a estrutura data de uma revisão foi substituída por um campo dataHash. Para saber mais, consulte Verificando se uma redação está completa.

  • A edição não tem impacto em nenhum dado do QLDB que seja replicado fora do serviço do QLDB. Isso inclui todas as exportações para o Amazon S3 e fluxos para o Amazon Kinesis Data Streams. Você deve usar outros métodos de retenção de dados para gerenciar quaisquer dados armazenados fora do QLDB.

  • A edição não tem impacto nos valores literais em instruções partiQL que são registradas no diário. Como prática recomendada, você deve executar instruções parametrizadas de forma programática usando espaços reservados de variáveis em vez de valores literais. Um espaço reservado é escrito no diário como um ponto de interrogação (?) em vez de qualquer informação confidencial que possa exigir edição.

    Para aprender a executar programaticamente instruções partiQL usando o driver QLDB, consulte os tutoriais de cada linguagem de programação suportada em Conceitos básicos do driver.

Sintaxe

EXEC REDACT_REVISION `block-address`, 'table-id', 'document-id'

Argumentos

`block-address`

A localização do bloco de diário da revisão do documento a ser editada. Um endereço é uma estrutura Amazon Ion que tem dois campos: strandId e sequenceNo.

Esse é um valor literal de Ion indicado por acentos graves. Por exemplo:

`{strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17}`

Para saber como encontrar o endereço do bloco, consulte Consultando metadados do documento.

'table-id'

A ID exclusiva da tabela cuja revisão do documento você deseja redigir, indicada por aspas simples.

Para saber como encontrar o ID da tabela, consulte Consultando o catálogo do sistema.

'document-id'

A ID exclusiva do documento cuja revisão será redigida, indicada por aspas simples.

Para saber como encontrar o ID do documento, consulte Consultando metadados do documento.

Valor de retorno

Uma estrutura Amazon Ion que representa a revisão do documento a ser editada, no seguinte formato.

{ blockAddress: { strandId: String, sequenceNo: Int }, tableId: String, documentId: String, version: Int }
Campos da estrutura de retorno
  • blockAddress – A localização do bloco de diário da revisão a ser editada. Um endereço tem os dois campos a seguir:

    • strandId— O ID exclusivo da cadeia do diário que contém o bloco.

    • sequenceNo— O número do índice que especifica a localização do bloco dentro da cadeia.

  • tableId— O ID exclusivo da tabela cuja revisão você está editando.

  • documentId— O ID exclusivo do documento da revisão a ser editada.

  • version— O número da versão do documento da revisão a ser editada.

Veja a seguir um exemplo da estrutura de retorno com dados de exemplo.

{ blockAddress: { strandId: "CsRnx0RDoNK6ANEEePa1ov", sequenceNo: 134 }, tableId: "6GZumdHggklLdMGyQq9DNX", documentId: "IXlQPSbfyKMIIsygePeKrZ", version: 0 }

Exemplos

EXEC REDACT_REVISION `{strandId:"7z2P0AyQKWD8oFYmGNhi8D", sequenceNo:7}`, '8F0TPCmdNQ6JTRpiLj2TmW', '05K8zpGYWynDlEOK5afDRc'