Uma transação em um banco de dados ou sistema de armazenamento de dados é uma operação tratada como uma unidade de trabalho indivisível. Isso significa que a transação é concluída integralmente ou não ocorre, garantindo a consistência do sistema. Um exemplo comum é a retirada de dinheiro de uma conta bancária: ou o valor é sacado com sucesso ou a operação não acontece. Não há estado intermediário.

ACID é uma sigla para as quatro principais características que definem uma transação: Atomicidade, Consistência, Isolamento e Durabilidade. Quando uma operação de banco de dados possui essas propriedades ACID, ela pode ser chamada de transação ACID. Um sistema de armazenamento de dados que aplica essas operações também é chamado de sistema transacional. As transações ACID garantem as seguintes características para leituras, gravações e modificações de tabelas:
As transações ACID maximizam a confiabilidade e a integridade dos dados. Os dados permanecem consistentes mesmo se a operação for concluída apenas parcialmente. Por exemplo, se cair a energia inesperadamente durante a gravação em uma tabela em um banco de dados, sem transações ACID, pode ser que apenas parte dos dados seja salva, e o restante, não. O resultado é um banco de dados inconsistente, tornando a recuperação difícil e demorada.

Tradicionalmente, as transações ACID são propriedade apenas de data warehouses, mas o Delta Lake traz essa propriedade para data lakes. Isso dá aos usuários uma visualização consistente e em tempo real de seus dados à medida que novos dados são gravados na tabela. Isso ocorre porque cada gravação é uma transação separada registrada em um log de transações ordenadas. [O Delta Lake emprega o mais alto nível de isolamento (isolamento serializável) para garantir consistência e confiabilidade de leitura e gravação em uma única tabela.] Ao implementar transações ACID, o Delta Lake efetivamente resolve os problemas da arquitetura Lambda: complexidade, visões incorretas dos dados, retrabalho e reprocessamento necessários após pipelines Lambda quebrados. Além disso, os usuários podem realizar várias transações simultâneas nos dados. Mesmo se uma fonte de dados ou fluxo encontrar um erro, o Delta Lake garante que as transações sejam canceladas e os dados permaneçam limpos e intactos. Um grande benefício das transações ACID é que os usuários podem confiar em seus dados armazenados no Delta Lake. Ao usar tabelas do Delta Lake para execuções de ETL de preparação de dashboards, os analistas de dados podem confiar que os KPIs que eles veem representam o estado real dos dados. Aproveitando as tabelas do Delta Lake para engenharia de recursos, os engenheiros de machine learning podem ter certeza de que as transformações e agregações estão funcionando conforme o esperado ou falhando (e são notificados se for o caso). O valor de confiar que o modelo mental que você tem sobre os dados se reflete no verdadeiro estado subjacente é imensurável.
