Database/Clickhouse
-
[ClickHouse] remote_servers 설정 알아보기Database/Clickhouse 2024. 6. 3. 06:08
- 목차 들어가며.ClickHouse 는 분산 테이블(Distributed Table) 을 통해 여러 노드에서 데이터를 처리하고 저장할 수 있습니다.이때, 각 노드 간 통신 및 데이터 분배를 위해 remote_servers 설정이 필수적입니다.remote_servers 설정을 통해서 샤딩(Sharding) 과 복제(Replication) 를 구성할 수 있습니다. 샤딩(Sharding): 데이터를 여러 노드에 나누어 저장하여, 저장 용량을 확장하고 쓰기 및 읽기 성능을 높이는 기술복제(Replication): 동일한 데이터를 여러 노드에 복제하여, 데이터 손실 방지와 장애 복구를 가능하게 하는 기술 ClickHouse 는 이 두 가지를 기반으로 수평 확장이 가능한 분산 데이터베이스를 제공합니다.이 과정에서..
-
[ClickHouse] min_insert_block_size_rows 설정 알아보기Database/Clickhouse 2024. 6. 2. 07:21
- 목차 들어가며.ClickHouse 는 MergeTree 엔진을 통해 데이터를 효율적으로 관리합니다.MergeTree 엔진은 데이터를 part 라는 단위로 관리하며, 각 part 는 데이터의 정렬된 블록을 포함합니다.min_insert_block_size_rows 는 데이터 삽입(INSERT) 시 디스크로 데이터를 플러시(Flush)하는 기준이 되는 최소 행(row) 크기를 정의하는 중요한 설정입니다. min_insert_block_size_rows 설정은 클라이언트가 INSERT 쿼리를 실행할 때, 디스크로 데이터를 플러시(Flush)하기 위한 최소 행(Row) 수를 정의하는 기준입니다.예를 들어, min_insert_block_size_rows 값이 10으로 설정되어 있고, 클라이언트가 100개의 ..
-
[ClickHouse] Logger 설정하기Database/Clickhouse 2024. 6. 2. 07:21
- 목차 들어가며.ClickHouse 는 Logger 설정을 통해 서버 동작과 관련된 다양한 정보를 효율적으로 관리할 수 있습니다.로깅 시스템을 활용하면 콘솔 출력, 파일 출력, 그리고 로그 파일의 위치 및 크기를 포함한 세부적인 설정을 사용자 환경에 맞게 조정할 수 있습니다.이러한 설정은 시스템 운영 중 발생하는 문제를 빠르게 파악하고, 로그 데이터를 체계적으로 관리하는 데 중요한 역할을 합니다. 이 글에서는 ClickHouse 의 Config xml 파일을 통해서 정적으로 Logger 를 설정하는 방식에 대해서 다루어보도록 하겠습니다. Console 출력 설정하기.ClickHouse 는 Console 출력을 통해 실시간으로 서버 동작 상태를 확인할 수 있는 기능을 제공합니다.Console 출력은 특히..
-
[ClickHouse] Mutation 알아보기Database/Clickhouse 2024. 4. 13. 07:29
- 목차 들어가며.Mutation 은 테이블의 데이터를 수정하거나 삭제하는 작업을 의미합니다.이는 ALTER TABLE ... DELETE 또는 ALTER TABLE ... UPDATE 와 같은 명령어로 실행되며, 백그라운드에서 비동기적으로 처리됩니다.Mutation은 MergeTree 엔진을 사용하는 테이블에서 지원되며, 데이터 파트를 새로운 버전으로 재작성하여 변경사항을 적용합니다. ClickHouse 의 Mutation 은 일반적인 관계형 데이터베이스 관리 시스템(RDBMS)의 DELETE 및 UPDATE 연산과 유사한 동작으로 생각하시면 됩니다.하지만 차이점들이 존재합니다. Mutation 은 ALTER TABLE 과 같이 DDL 형식으로 실행됩니다.MySQL 과 같은 DB 에서 DELETE, U..
-
[ClickHouse] Distributed Table 알아보기Database/Clickhouse 2024. 3. 18. 07:04
- 목차 들어가며.이번 글에서는 ClickHouse 의 Distributed Table 에 대해서 알아보는 시간을 가지겠습니다.먼저 3개의 Shard 과 2개의 Replica 를 가지는 ClickHouse 구조를 Docker Compose 를 통해서 실행합니다. config.xml 설정 파일은 아래와 같습니다.3개의 Shard 로 구성되며 각 Shard 는 2개의 Replica 를 가집니다.그리고 3개의 Zookeeper 가 상태 저장소로써 동작합니다. cat /tmp/config.xml zookeeper1 2181 zookeeper2 2181 ..
-
[ClickHouse] Parts & Partition 알아보기Database/Clickhouse 2024. 2. 29. 07:04
- 목차 들어가며. 이번 글에서는 ClickHouse 의 MergeTree 엔진에서 사용되는 Parts 와 Partition 에 대해서 알아보려고 합니다. Partition 은 MergeTree Table 에 생성되는 데이터의 물리적인 단위입니다. Table 은 Partition 을 기준으로 물리적인 저장 위치가 나뉘어집니다. 그래서 시계열 데이터의 경우에, Partition 을 시간 기준으로 나눌 수 있고, Table 의 데이터를 연월일시에 따라 개별적인 파일로써 관리됩니다. Parts 는 하나의 온전한 Partition 을 만들기 위해서 저장되는 임시 단위입니다. 만약 시간 단위로 Partition 이 나뉘어진다고 가정하겠습니다. 그리고 1분마다 100개의 데이터가 삽입됩니다. 이때 1시간 동안 총 ..
-
[ClickHouse] ReplicatedMergeTree 테이블 Backup 적용하기Database/Clickhouse 2024. 2. 29. 07:04
- 목차 들어가며.이번 글에서는 ReplicatedMergeTree 테이블을 Backup 과 Restore 하는 방법에 대해서 알아보도록 하겠습니다. 먼저 ReplicatedMergeTree 에 대해서 간단히 이야기해보겠습니다.ReplicatedMergeTree 는 최소 2개의 ClickHouse Replica 들이 필요합니다.그리고 이 Replica 들은 새롭게 생성된 Part 파일 정보를 서로 공유하며 Replication 을 수행하게 됩니다.이들이 복제를 위한 수단으로 Zookeeper 를 사용합니다.각 Replica 는 클라이언트의 요청에 의해서 새롭게 생성된 Part 정보를 Zookeeper Znode 에 기록하고,다른 Replica 는 Watcher 로써 생성된 Part 에 대한 알림을 받아 ..
-
[ClickHouse] primary.idx 파일 알아보기Database/Clickhouse 2024. 2. 28. 21:15
- 목차 들어가며. 이번 글에서는 ClickHouse 의 primary.idx 파일에 대해서 알아보려고 합니다. primary.idx 는 클릭하우스의 MergeTree Table 의 Primary Index 의 Entry 들을 관리하는 파일입니다. MergeTree Table 은 반드시 PRIMARY KEY 또는 ORDER BY 선언을 통해서 Primary Index 를 지정해야합니다. 이렇게 Primary Index 가 지정된 이후에 해당 테이블에 데이터가 추가되면 primary.idx 파일에 Index Entry 들이 기록되게 됩니다. 이어지는 내용에서 Index Entry 는 어떤 구조를 취하며, Parts, Granule, Sparse Index, Mark File 등에 대해서 자세히 알아보는 시..
-
[ClickHouse Config] listen_host 설정 알아보기Database/Clickhouse 2024. 2. 28. 07:23
- 목차 들어가며.이번 글에서는 ClickHouse 의 config.xml 의 설정에 대해서 알아봅니다.listen_host 설정은 ClickHouse 서버가 어떤 Network Interface 를 사용할지 결정하는 설정입니다.일반적으로 아래와 같이 어떠한 IPv4 와 IPv6 Network Interface 를 사용하도록 제약없이 사용됩니다.0.0.0.0:: 이 설정은 서버가 모든 네트워크 인터페이스에 대해 연결을 수신하도록 허용합니다. 그러나 보안과 성능을 고려한다면 네트워크 인터페이스를 구체적으로 제한하거나 설정을 세밀하게 조정해야 할 수도 있습니다. 특정 네트워크 인터페이스를 설정하는 방법.우선 설정에 대한 실습을 위해서 Docker Container 와 Docker Network 를 활용..
-
[Clickhouse] ReplicatedMergeTree 알아보기Database/Clickhouse 2024. 2. 18. 07:05
- 목차 Clickhouse Cluster 구현하기.먼저 아래의 2개 이상의 Clickhouse Node 가 실행되는 Multi Replica 구성을 만들어야합니다.아래 링크는 docker-compose 를 통해서 Clickhouse Cluster 를 구축하는 내용을 적은 페이지인데요.간단한 명령어들로 구성된 페이지이기 때문에 클러스터 구축을 선행하시는 것을 추천드립니다. https://westlife0615.tistory.com/880 [ClickHouse] remote_servers 설정 알아보기- 목차 들어가며.ClickHouse 는 분산 테이블(Distributed Table) 을 통해 여러 노드에서 데이터를 처리하고 저장할 수 있습니다.이때, 각 노드 간 통신 및 데이터 분배를 위해 remote..