Database/Clickhouse
-
[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] 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] ReplicatedMergeTree 알아보기Database/Clickhouse 2024. 2. 18. 07:05
- 목차 Clickhouse Cluster 구현하기. 먼저 아래의 2개 이상의 Clickhouse Node 가 실행되는 Multi Replica 구성을 만들어야합니다. 아래 링크는 docker-compose 를 통해서 Clickhouse Cluster 를 구축하는 내용을 적은 페이지인데요. 간단한 명령어들로 구성된 페이지이기 때문에 클러스터 구축을 선행하시는 것을 추천드립니다. https://westlife0615.tistory.com/686#7 [Clickhouse] Shard & Replica Cluster 구성하기 - 목차 들어가며. 이번 글에서는 docker-compose 를 활용하여 Clickhouse Cluster 를 구성하는 내용을 작성하려고 합니다. ClickHouse 의 docker-co..
-
[Clickhouse] Docker 로 Clickhouse 구현하기Database/Clickhouse 2024. 2. 17. 17:05
- 목차 들어가며. 이번 글에서는 Docker 를 활용해서 Clickhouse 를 구축하는 글을 작성하려고 합니다. 사용할 Docker Image 는 bitnami/clickhouse 이미지입니다. 간단한 MergeTree 엔진의 Table 을 생성하고 데이터를 취급하는 예시들을 작성할 예정입니다. bitnami/clickhouse 이미지를 사용하는 이유는 추후에 Kubernetes 에서 Clickhouse 를 구축하는 상황에서 Bitnami Helm Repo 의 Clickhouse Chart 가 사용됩니다. 그래서 yandex 를 포함한 다른 배포버전보다 bitnami 를 선택하였습니다. Clickhouse Docker Container 구현하기. 아래 명령어를 통해서 Clickhouse Contain..
-
[ClickHouse] Multi Sharding 구현하기 ( Docker, Shards )Database/Clickhouse 2024. 2. 17. 16:21
- 목차 들어가며.ClickHouse 는 Multi Sharding 을 구현할 수 있습니다.Distributed Table Engine 을 통해서 생성되는 MergeTree Family 들이 존재하며,Distributed Table 들은 Partition Key 를 통해서 여러 ClickHouse Node 들로 분배되어 저장됩니다.Distributed Table 을 잘 설명할 수 있는 사진 몇장을 아래에 첨부해두었습니다.이 이미지 자료를 통해서 좀 더 상세히 설명드리면,ClickHouse 는 여러 노드들로 구성되어 하나의 클러스터를 구성할 수 있습니다.만약 2개의 서버로 클러스터를 구성한다면 2개의 Sharding 을 적용하거나1개의 Shard 에서 Primary - Replica 를 1개씩 적용할 수도..
-
[Clickhouse] Shard & Replica Cluster 구성하기Database/Clickhouse 2024. 2. 14. 07:14
- 목차 들어가며. 이번 글에서는 docker-compose 를 활용하여 Clickhouse Cluster 를 구성하는 내용을 작성하려고 합니다. ClickHouse 의 docker-compose Recipes 에서 설명하는 내용을 토대로 작성하였구요. Shard 와 Replica 의 다양한 조합과 Clickhouse-Keeper 가 함께 클러스터를 구성합니다. 아래 링크는 Clickhouse docker-compose Recipes 에 대한 Github 링크입니다. https://github.com/ClickHouse/examples/tree/main/docker-compose-recipes/recipes https://github.com/ClickHouse ClickHouse ClickHouse ha..
-
[ClickHouse] Compact Wide Parts 알아보기 ( part_type )Database/Clickhouse 2024. 1. 16. 21:17
- 목차 들어가며. 이번 글에서는 ClickHouse MergeTree 의 part_type 에 대해서 알아보려고 합니다. 먼저 Parts 에 대한 자세한 설명은 아래 링크로 대신하도록 하겠습니다. https://westlife0615.tistory.com/737 [ClickHouse] Parts & Partition 알아보기 - 목차 들어가며. 이번 글에서는 ClickHouse 의 MergeTree 엔진에서 사용되는 Parts 와 Partition 에 대해서 알아보려고 합니다. Partition 은 MergeTree Table 에 생성되는 데이터의 물리적인 단위입니다. Table 은 P westlife0615.tistory.com https://westlife0615.tistory.com/565 [Cl..
-
[ClickHouse] Block 알아보기Database/Clickhouse 2024. 1. 10. 06:46
- 목차 들어가며. 이번 글에서는 ClickHouse 의 Block 의 개념에 대해서 알아보려고 합니다. ClickHouse MergeTree 엔진의 Table 을 생성하고, 해당 테이블에 데이터를 추가하게 되면 Parts 가 생성됩니다. ClickHouse Parts 의 개념은 아래의 페이지에서 알 수 있는데요. Parts 에 대해서 간단한 설명을 해보려고 합니다. https://clickhouse.com/docs/en/operations/system-tables/parts parts | ClickHouse Docs system_tables-parts} clickhouse.com Parts 란 ? https://westlife0615.tistory.com/737 [ClickHouse] Parts & P..
-
ClickHouse MergeTree 알아보기Database/Clickhouse 2023. 11. 7. 08:10
- 목차 소개. ClickHouse 는 러시아의 검색 사이트인 Yandex 에서 개발한 Column 기반의 데이터베이스입니다. 분석용 데이터베이스로 사용되구요. Row 기반이 아닌 Column 기반으로 데이터를 취급하는 것이 큰 특징입니다. 흔히 로그성 데이터들이 ClickHouse 가 취급하는 데이터들입니다. 로그성 데이터의 예를 들면, - 시스템 또는 서버의 로그 데이터 - 서버의 상태 정보들 (CPU, Memory 사용량, Network IO 등) - 웹/앱 내부에서 사용자들의 행동데이터 - IoT 센서 데이터 등이 존재합니다. 이러한 로그성 데이터들의 큰 특징은 High Volume Write 가 빈번합니다. 즉, 데이터의 생성의 양이 매우 많습니다. 일반적인 경우의 데이터 생성 시나리오와는 크게..
-
[ ClickHouse ] arrayMap Function 알아보기Database/Clickhouse 2023. 9. 6. 13:12
- 목차 키워드.- ArrayMap arrayMap 사용해보기.arrayMap 함수는 Array(String) 와 같은 Array 타입의 데이터를 대상으로 Map Function 을 적용할 수 있습니다.일종의 Array 의 각 Item 을 변형하는 Mapper 함수와 같이 동작합니다. 간단한 활용 예시는 아래와 같습니다.user_actions 이라는 이름의 MergeTree 테이블을 생성하였구요.Array(String) 타입의 action 칼럼을 대상으로 arrayMap 함수를 적용합니다.create table default.user_actions( user String, action Array(String), acted_at DateTime) engine = MergeTre..