-
[ClickHouse] 클릭하우스를 도커로 띄워보기! ClickHouse with Docker Container스터디 노트 2023. 11. 21. 10:51
📌 들어가며
어제 깔짝 클릭하우스(ClickHouse)라는 플랫폼에 대해 스터디를 해봤지요.
컬럼 기반 DB로 엄청나게 빠른 데이터 조회 속도와 효율적인 저장구조를 보유하고 있다는 장점이 있었습니다.
단점으로는 트랜잭션을 지원하지 않는다는것과 수정이나 삭제 기능이 부족하며, 단건 조회의 경우에는 기존 방식보다 느리다는 점이 있었습니다.
자세한 내용은 아래 내용을 참고해주시면 됩니다 :D여튼, 어제 클릭하우스가 무엇인지에 대해 공부를 해버렸으니..그럼 어떻게 해야 할까요?
사용해서 만들어봐야겠지요.
만들어봅시다.
📌 1분만에 도커로 ClickHouse 띄우기!
기존에 각종 예제 프로젝트들을 도커기반으로 구성하여 테스트를 해보았었습니다.
개발 공부를 하면 할 수록 도커는 정말 최고의 가상화툴인 것 같다는 생각을 하게 됩니다 ㅎㅎ
일단 ClickHouse의 경우 Server와 Client로 나뉘게 됩니다.
설치를 할 때는 서버와 클라이언트를 둘 다 설치해야 하고, 기본적으로 리눅스 환경에서 설치를 할 때엔 clickhouse 홈페이지에 자세히 설치 방법들이 나와있습니다. 예제도 많이 있구요 ㅎㅎ
다만 저는 도커에 띄울 것이기 때문에 docker-compose.yml파일을 만들어주었습니다.version: '3' services: ch_server: container_name: clickhouse-server image: yandex/clickhouse-server ports: - "8123:8123" volumes: - ./db:/var/lib/clickhouse ch_client: container_name: clickhouse-client image: yandex/clickhouse-client entrypoint: - /bin/sleep command: - infinity
컨테이너 명을 작성해주고 yandex의 clickhouse-server와 clickhouse-client를 명시해줍니다.
기본적으로 ClickHouse를 설치할 경우 사용자 계정의 경우 ID는 default이고 Password는 없습니다.
계정정보를 변경하고자 하신다면 clickhouse-server가 설치된 경로인 도커 컨테이너 내 /etc/clickhouse-server/ 폴더 내 users.xml파일 내부를 변경하시면 됩니다 :D
그게 아니라면 create query로 system user를 추가하셔도 됩니다.CREATE USER [ID] HOST IP ['X.X.X.X'] IDENTIFIED WITH sha256_password BY ['password'] SETTINGS max_execution_time=300;
만약 기존 리눅스에 설치하신 후 HTTP로 외부에서 접속을 하려 할 때 접속이 안되신다면, http_server_default_response의 주석을 제거해주시면 됩니다.
이제 도커를 띄워보겠습니다.> docker-compose up -d > docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7bd9fba24ec3 yandex/clickhouse-client "/bin/sleep infinity" 16 minutes ago Up 16 minutes clickhouse-client 76cb11cb714b yandex/clickhouse-server "/entrypoint.sh" 16 minutes ago Up 16 minutes 9000/tcp, 0.0.0.0:8123->8123/tcp, 9009/tcp clickhouse-server
멋지게 ClickHouse-Server와 ClickHouse-Client가 떴습니다!
이제는 Client를 만들어서 데이터를 insert해보도록 해보도록 하겠습니다.
'스터디 노트' 카테고리의 다른 글
[Java] CompletableFuture 에 대하여 (0) 2023.11.22 [ClickHouse] 클릭하우스 자바 클라이언트 만들어 데이터 다루기 예제! ClickHouse + Java + Http Client Exam (2) 2023.11.21 [ClickHouse] 클릭하우스란 무엇일까? (0) 2023.11.20 [SQL] JOIN이란? JOIN의 종류(INNER, LEFT, RIGHT, FULL OUTER JOIN) (1) 2023.11.17 깔짝 맛보는 프로메테우스(Prometheus) + 그라파나(Grafana) 를 이용한 시스템 모니터링 대시보드 만들기 (0) 2023.11.16