전통적인 데이터 레이크는 트랜잭션을 지원하지 않기 때문에, 데이터 정합성을 유지하기 어려운 단점이 있다. 반면, Delta Lake는 트랜잭션을 지원하는 데이터 레이크로, ACID(Atomicity, Consistency, Isolation, Durability) 속성을 보장하며 데이터 무결성을 보다 효과적으로 유지할 수 있다.그러나 Delta Lake에서 주장하는 트랜잭션과 무결성이 RDBMS에서의 트랜잭션과 동일한 수준으로 보장되는지에 대한 의문이 들 수 있다 (우선 내가 그랬다). 이 글에서는 Delta Lake의 트랜잭션 동작 방식과 RDBMS와의 차이점, 그리고 Delta Lake에서 데이터 정합성을 유지하기 위한 전략을 정리해보려 한다.델타 테이블에서의 트랜잭션Delta Table에서 트랜잭션..
완화된 격리 수준데이터베이스는 트랜잭션 격리를 제공함으로써, 동시성 문제를 감추려고 함. → 어플리케이션 개발자들의 부담을 줄여줌.직렬성 격리 : 데이터베이스가 여러 트랜잭션들이 직렬적으로 실행되는 것과 동일한 결과가 나오도록 보장한다는 것을 의미함.심지어 RDBMS 에서도 완화된 격리성을 사용하는 경우도 많음. 이런 버그 발생을 반드시 막아주지는 않음.커밋 후 읽기 (read commited)가장 기본적인 수준의 트랜잭션 격리로 이 수준에서는 두 가지를 보장해 준다.데이터베이스에서 읽을 때 커밋된 데이터만 보게 된다(더티 읽기가 없음)데이터베이스에 쓸 때 커밋된 데이터만 덮어쓰게 된다(더티 쓰기가 없음)더티 읽기 방지더티 읽기(dirty read) : 어떤 트랜잭션에서 처리한 작업이 커밋되지 않았는데도..