트랜잭션이란무엇입니까?

데이터베이스와데이터스토리지시스템이라는맥락에서트랜잭션이란한단위의작업으로취급되는모든작업을말합니다。트랜잭션은완전히완료되기도하고전혀완료되지않을수도있으며,스토리지시스템을한결같은상태로둡니다。트랜잭션의전형적예는은행계좌에서현금을출할때일어나는일입니다。현금이계좌에서인출되거나,인출되지않거나둘중의하나일뿐그중간어딘가의상태란없습니다。

A.C.I.D.속성:원자성(原子性),일관성(一致性),격리성(隔离),영속성(耐久性)

酸는트랜잭션을정의하는4가지중대한속성을가리키는약어입니다。즉원자성(原子性),일관성(一致性),신뢰성(可靠性),격리(隔离)그리고속성(耐久性)을의미합니다。데이터베이스작업에이러한酸속성이있다면이트를酸랜잭션이라부르면되고,이런작업을적용하는데이터스토리지시스템을트랜잭션시스템이라고합니다。酸트랜잭션은한테이블의읽기,쓰기또는수정작업이각각다음과같은속성을가지고있다고보장해줍니다。

  • 원자성(原子性)——트랜잭션에속한각각의문(데이터를읽기,쓰기,업데이트또는삭제하기위함)을하나의단위로취급합니다。문전체를실행하거나그문의어떤부분도실행하지않거나둘중하나입니다。이속성이있으면예컨대스트리밍데이터소스가스트리밍중에갑자기오류를일으키더라도데이터손실과손상이방지됩니다。
  • 일관성(一致性)——트랜잭션이테이블에변경사항을적용할때미리정의된,예측할수있는방식만취합니다。트랜잭션일관성이확보되면데이터손상이나오류때문에테이블무결성에의도치않은결과가생기지않습니다。
  • 격리(隔离)——여러사용자가같은테이블에서모두동시에읽고쓰기작업을할때,각각의트랜잭션을격리하면동시트랜잭션이서로방해하거나영향을미치지않습니다。각각의요청이실제로는모두동시에발생하더라도,마치하나씩발생하는것처럼발생할수있습니다。
  • 속성(耐久性)-트랜잭션실행으로해데이터에적용된변경사항이저장되도록보장합니다。시스템오류가발생해도마찬가지입니다。

酸트랜잭션이있으면좋은이유는무엇입니까?

酸트랜잭션은가능한최대한의데이터정성과무결성을보장해줍니다。작업하나가일부분만완료되는바람에데이터가일관적이지않은상태가되는불상사가절대로일어나지않게해준다는뜻입니다。예를들어酸트랜잭션이없다고가정하면,데이터베이스테이블에몇몇데이터를쓰던중에예기치못하게정전이되면데이터중일부는저장이되고일부는저장되지않는사태가발생할수있습니다。그러면데이터베이스는일관성없는상태가되어복구하기무척어렵고시간도오래걸립니다。

三角洲湖:ACID트랜잭션을보장하는정적이고일관된데이터

三角洲湖로고

酸트랜잭션이데이터웨어하우스분야의선망대상으로자리잡은것은오래전의일이지만,이제는三角洲湖덕분에데이터레이크분야에도酸트랜잭션을도입할수있게되었습니다。이기술덕분에테이블에실시간으로새데이터를쓰는와중에도사용자는데이터를일관되게조회할수있습니다。각각의쓰기작업이순서가지정된트랜잭션로그에기록되는격리된트랜잭션이기때문입니다。(三角洲湖는가능한가장높은수준의격리를사용하여(직렬화할수있는격리)한테이블을대상으로한읽기와쓰기의일관성과안정성을보장합니다。)三角洲湖는酸트랜잭션을구현하여이전에언급된λ아키텍처의단점여러개를효과적으로해결합니다。λ아키텍처는복잡하고데이터를잘못조회하며λ파이프라인이후필요한재처리는불가피하게중단되는단점이있습니다。사용자가자신의데이터에서동시트랜잭션을여러개수행할수있고,데이터소스나스트림에오류가발생하는경우가湖三角洲트랜잭션실행을취소하여데이터를문제없이멀쩡한상태로유지합니다。酸트랜잭션의뛰어난장점은사용자가三角洲湖에저장된데이터를신뢰할수있게해준다는데있습니다。데이터애널리스트가데이터에서ETL을수행하여대시보딩을준비할때三角洲湖테이블을활용하면자기눈에보이가는KPI데이터의실제상태를그대로나타낸다는사실을믿어도됩니다。머신러닝엔지니어가三角洲湖테이블을사용하여기능엔지니어링을수행한다면,변환이나집계가모두정확히의도한대로실행되거나아예실행되지않거나(이경우엔지니어에게알림이감)둘중하나일것을100%확신해도됩니다。내머릿속에그려진데이터모델이실제데이터의진짜기본상태를고스란히반영한다는사실을알고있다는것은값을매기기어려울정도로귀중한가치가있는장점입니다。

额外的资源

回到术语表