diff --git a/_posts/2024-12-05-apache-iceberg.md b/_posts/2024-12-05-apache-iceberg.md index 8d1e5ea..4d2eeaa 100644 --- a/_posts/2024-12-05-apache-iceberg.md +++ b/_posts/2024-12-05-apache-iceberg.md @@ -56,6 +56,8 @@ rating: 5 이렇게 데이터가 유실되거나, 읽기/쓰기 과정에서 충돌이 발생하여 업무가 지연되는 일이 발생 할 수 있습니다. + + 물론 현재는 **Hive** 에서도 현재 ACID 트랜잭션을 활성화 시키면, 일부 ACID 를 지원해주기는 합니다. 그러나 트랜잭션 작업 시 바로 원본 데이터 파일에 반영되는 것이 아니라 별도의 **Delta 파일**이 생성되고, **Delta 파일**이 **Compaction**되는 과정을 통하여 원본 파일의 ACID 를 보장하는 절차를 가지고 있습니다. 이로 인하여 별도의 Compaction 작업으로 인한 비용 문제와, Delta 파일이 증가함에 따라 빈번하게 발생하는 Compaction 작업으로 인한 병목 현상, 이러한 작업으로 인한 실시간 데이터 분석의 어려움 문제가 있으며, 무엇보다 ORC 파일 포맷 형식만 ACID 를 지원하므로 csv 나 다른 형식의 포맷은 이용 할 수 없다는 큰 단점이 있습니다. @@ -69,10 +71,14 @@ rating: 5 이번에도 마찬가지로, 은행에서 데이터를 분산 환경에서 HDFS 에 저장하고, **Apache Hive** 를 통하여 관리하고 있습니다. + + - 은행은 각 거래 기록을 날짜별로 파티셔닝된 테이블에 저장합니다. - 테이블은 **고객 계좌 번호(account_id)**를 기준으로 추가적인 서브 파티셔닝이 되어 있어, 하루에 생성되는 파티션 수는 수천 개에 이릅니다. - 하루 동안 약 **100만 건의 거래 데이터**가 발생하며, 이를 조회하고 분석하기 위해 여러 사용자가 Hive를 동시에 사용합니다. + + 이 때 다음과 같은 집계와, 보고서를 생성하기 위해, 여러 부서에서 동시에 해당 데이터로 접근을 합니다. **일 별 거래 집계 쿼리**