최근 Log를 태깅하게 되면서 금융권의 방대한 Log 데이터를 분석해야 할 필요가 생겼다.
OLAP 분석을 기반으로 하는 특성상, 기존의 RDB로는 다룰 수 없는 성능적인 한계가 명확하여 Click House라는 열 기반 데이터베이스를 알아보고, 도입하기로 결정했다.
Click House는 고 성능 OLAP 분석을 목적으로 둔 열 기반 SQL DBMS 라고 요약할 수 있겠다.
기존의 DBMS는 행을 기준으로 데이터를 적재하기 때문에 각 열의 모든 데이터가 물리적인 묶음으로 저장되는 반면,
열 기반 DBMS는 열을 기준으로 데이터를 적재하고, 데이터를 추출할 때에도 SELECT 대상에 해당하는 열의 데이터만 꺼내어 사용하기 때문에 훨씬 고속의 처리가 가능하다는 장점이 있다.
Click House는 위와 같은 특성을 기반으로, 아래와 같은 OLAP 분석의 시나리오에 탁월한 성능을 보인다.
- Table은 가급적 비정규화된 거대한 테이블로 구성한다.
- 대량의 데이터를 처리하여, 단일 쿼리에 수 억건에 해당하는 데이터를 운영한다.
- 열 기반으로 데이터를 추출하기 때문에, '*' 와 같은 전체 열을 가져오는 것을 지양하고, 필요한 열만 추출한다.
- OLTP 성의 단일 행에 대한 삽입, 변경, 삭제와 같은 작업은 지양한다.
- 트랜잭션이 필요하지 않다.
위와 같은 시나리오에 적절하게 사용한다면 성능상의 큰 이점을 볼 수 있다. 다만, ClickHouse의 특성상 사용에 제약이 많고 사용이 그리 쉽지만은 않다. Cluster를 구성하는 아키텍처부터 데이터의 물리적인 저장 구조와 데이터를 담는 Table의 Engine 그리고 추출 쿼리까지 모든 것에 신경을 써야 비로소 ClickHouse가 제공하는 획기적인 성능을 볼 수 있다.
본 카테고리에서는 ClickHouse를 테스트 해보고 도입하면서 경험한 이야기를 풀어나갈 예정이다.
'오픈소스 > ClickHouse' 카테고리의 다른 글
[ClickHouse] INDEX 구조와 동작 원리 - ③ (0) | 2023.07.06 |
---|---|
[ClickHouse] INDEX 구조와 동작 원리 - ② (0) | 2023.07.06 |
[ClickHouse] INDEX 구조와 동작 원리 - ① (0) | 2023.07.06 |
[ClickHouse] Data 구조 (0) | 2023.06.30 |
[ClickHouse] Shard & Replica 개념 (0) | 2023.06.14 |