clickhouse
-
Clickhouse Materialized views개발/데이터베이스 2025. 11. 7. 22:41
테이블에 데이터가 추가될 때마다 특정한 쿼리를 실행하고 결과를 target 테이블에 전송하는 테이블이다. 데이터가 추가될수록 결과가 타겟 테이블에 전송되고 중간 result 는 업데이트되고 병합된다. 병합된 결과는 기존 데이터에 대한 쿼리와 동등하다. target 테이블에 미리 계산된 결과를 전달하고 싶을때 사용하는 테이블이라고 보면됨. 아래 up_down_votes_per_day_mv 테이블은 up_down_votes_per_day 테이블에 일별 데이터를 모아서 전송해주는 역할을 하는 materialized 테이블이다CREATE MATERIALIZED VIEW up_down_votes_per_day_mv TO up_down_votes_per_day ASSELECT toStartOfDay(Creation..
-
Clickhouse Skip Index개발/데이터베이스 2025. 11. 7. 20:33
Understanding ClickHouse Data Skipping Indexes | ClickHouse DocsSkip indexes enable ClickHouse to skip reading significant chunks of data that are guaranteed to have no matching values.clickhouse.com 전통적인 방식에서는 B-tree 구조로 데이터베이스가 행을 log(n) 시간에 찾을 수 있게 했다. 하지만 클릭하우스의 경우 개별 row 가 존재하는게 아니기 때문에 작동하지 않는다. 대신 클릭하우스에선 skip 인덱스라는 걸 사용해서 불필요한 데이터 chunk 를 읽지 않아도 되는 방식을 제공한다. 각 구조마다 Skip 인덱스 표시가 되어 있어서 청크..
-
Clickhouse JSON 칼럼개발/데이터베이스 2025. 10. 27. 17:12
How we built a new powerful JSON data type for ClickHouseWe’re excited to introduce our new and significantly enhanced JSON data type, purpose-built to deliver high-performance handling of JSON data. Our core engineer, Pavel Kruglov, dives into how we built this feature on top of ClickHouse's columnar storage.clickhouse.com공식 블로그 글을 읽고 공부했던 내용을 정리했다Variant Variant 칼럼이란게 있다. 기존 구조에서는 칼럼에는 하나의 데이터..
-
클릭하우스 업데이트는 왜 느릴까?개발/데이터베이스 2025. 9. 13. 10:23
How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built enginesClickHouse is a column store, but that doesn’t mean updates are slow. In this post, we explore how purpose-built engines like ReplacingMergeTree deliver fast, efficient UPDATE-like behavior through smart insert semantics.clickhouse.com클릭하우스 블로그 글에서 이론에 관한 부분만 요약해서 정리Row vs Column Store 데이터베이스 Row Store (행 기반..
-
Sentry 에서 Clickhouse 를 택한 이유개발/데이터베이스 2024. 8. 20. 21:38
Sentry 에서 Snuba 라는 검색 인프라를 도입한 이유를 설명한 아티클인데 이벤트 데이터베이스를 Postgres 에서 Clickhouse 로 넘어간 이유를 중점적으로 다루고 있어 Clickhouse 또는 OLAP 에 관심 있는 개발자라면 참고할 만하다. Sentry 는 모바일이나 서버에서 보내는 에러를 실시간으로 수집하고 사용자에게 알럿을 보내주는 오픈소스 모니터링 툴이다. 하루에도 수백만개의 에러가 들어오곤하니 대용량 데이터의 실시간 처리가 무엇보다 중요한 서비스다. Sentry 에선 원래 이벤트 데이터를 Postgres 에 넣어두고 비정규화 방식을 적용하면서 관리했다. 예를 들어 Time Seen 처럼 누적 통계 데이터 값을 읽어오는 경우 매번 count 쿼리를 치는게 아니라 Time Seen ..
-
OLAP vs OLTP 데이터베이스개발/데이터베이스 2024. 4. 16. 11:36
데이터베이스는 어떤 기능에 초점을 두느냐에 따라 OLAP, OLTP 데이터베이스로 나뉜다. 좀 거칠게 단순화하면 쓰기 성능은 떨어지더라도 읽기 성능을 극대화 할때는 OLAP (Online Analytic Processing), 읽기 성능이 떨어지더라도 안정적인 트랜잭션을 제공하는데 초점을 둔다면 OLTP (Online Transaction Processing) 데이터베이스로 구분할 수 있다. 사용 케이스에 따라 구분할 수 있는데 은행, 온라인 쇼핑, 항공기 예약처럼 사용자의 쓰기 데이터가 빠르게 처리돼야 하는 경우 OLTP 데이터베이스를 사용하고 데이터 분석 툴처럼 복잡한 쿼리 검색이 빠르게 처리돼야 하는 경우 OLAP 데이터베이스를 사용한다. MySQL, PostgreSQL, Maria DB 처럼 우리..
-
Clickhouse 가 빠른 이유개발/데이터베이스 2024. 4. 11. 11:48
Clickhouse 는 Online Analytic Processing(OLAP) 에 최적화된 데이터베이스로 다른 데이터베이스에 비해 월등한 검색 속도를 자랑한다. 이번 포스트에서는 어떤 요소들 때문에 Clickhouse 가 속도가 빠른지 정리했다 Column oriented DBMS Clickhouse 는 칼럼형 데이터베이스를 사용하고 있다. 칼럼형 구조가 생소할 수 있는데 먼저 이것과 반대되는 개념인 로우형(Row-oriented) 데이터베이스에 대해서 먼저 알아보자 Row-oriented DBMS 같은 행에 있는 데이터 단위로 저장되는 형태다. MySQL 과 PostgreSQL 이 대표적인 Row 형 데이터베이스다 만약 (시간, 주소, 전화번호) 정보를 저장하는 데이터베이스라면 세가지 데이터를 같은..