본문으로 바로가기
본문으로 바로가기

비용 최적화: 커뮤니티 전략

이 가이드는 커뮤니티 밋업에서 얻은 인사이트를 모은 컬렉션의 일부입니다. 이 페이지의 내용은 특정 환경과 설정에서 ClickHouse 비용을 효과적으로 최적화한 커뮤니티의 경험과 노하우를 정리한 것입니다. 더 많은 실제 해결책과 인사이트는 문제 유형별로 찾아보기를 참고하십시오.

ClickHouse Cloud가 운영 비용 관리에 어떻게 도움이 되는지에 대해 알아보십시오.

압축 전략: 프로덕션 환경에서의 LZ4 vs ZSTD

Microsoft Clarity가 수백 테라바이트의 데이터를 처리해야 했을 때, 압축 방식 선택이 비용에 극적인 영향을 미친다는 사실을 발견했습니다. 이 규모에서는 저장소를 1비트라도 절약하는 것이 중요하며, 성능과 저장소 비용 간의 고전적인 트레이드오프에 직면했습니다. Microsoft Clarity는 계정 전체에서 압축되지 않은 데이터 기준 월 2페타바이트의 방대한 데이터를 처리하고, 8개의 노드에서 시간당 약 60,000건의 쿼리를 처리하며, 수백만 개의 웹사이트로부터 발생하는 수십억 개의 페이지뷰를 제공합니다. 이 정도 규모에서는 압축 전략이 핵심 비용 요소가 됩니다.

처음에는 ClickHouse의 기본 LZ4 압축을 사용했지만, ZSTD를 통해 상당한 비용 절감이 가능하다는 것을 발견했습니다. LZ4가 더 빠르지만, ZSTD는 약간의 성능 저하를 감수하는 대신 더 높은 압축률을 제공합니다. 두 방식을 모두 테스트한 후, 이들은 저장소 절감을 우선하는 전략적 결정을 내렸습니다. 그 결과는 매우 의미 있었으며, 대용량 테이블에서 저장소를 50% 절감하면서도 수집 및 쿼리 성능 저하는 감당 가능한 수준에 그쳤습니다.

핵심 결과:

  • ZSTD 압축을 통해 대용량 테이블에서 50% 저장소 절감
  • 월 2페타바이트 데이터 처리 용량
  • 수집 및 쿼리에 대한 성능 영향은 관리 가능한 수준
  • 수백 테라바이트 규모에서 상당한 비용 절감

컬럼 기반 보존 전략

가장 강력한 비용 최적화 기법 중 하나는 실제로 어떤 컬럼이 사용되는지 분석하는 것입니다. Microsoft Clarity는 ClickHouse의 내장 텔레메트리 기능을 활용해 정교한 컬럼 기반 보존 전략을 구현합니다. ClickHouse는 컬럼별 스토리지 사용량에 대한 상세한 메트릭뿐만 아니라, 어떤 컬럼이 얼마나 자주, 얼마나 오래 쿼리되는지와 전체 사용 통계까지 포함하는 포괄적인 쿼리 패턴 정보를 제공합니다.

이러한 데이터 기반 접근 방식으로 보존 정책과 컬럼 수명주기 관리에 대해 전략적인 결정을 내릴 수 있습니다. 이 텔레메트리 데이터를 분석하면 Microsoft는 상당한 공간을 차지하지만 쿼리는 거의 받지 않는 스토리지 핫스팟, 즉 특정 컬럼을 식별할 수 있습니다. 이러한 저사용 컬럼에 대해서는 보존 기간을 30개월에서 1개월로 줄이거나, 아예 쿼리되지 않는 경우 컬럼을 완전히 삭제하는 등 공격적인 보존 정책을 적용할 수 있습니다. 이러한 선택적 보존 전략은 사용자 경험에 영향을 주지 않으면서 스토리지 비용을 절감합니다.

전략:

  • ClickHouse 텔레메트리를 사용해 컬럼 사용 패턴 분석
  • 스토리지 사용량은 높고 쿼리는 적은 컬럼 식별
  • 선택적 보존 정책 적용
  • 데이터 기반 결정을 위해 쿼리 패턴 모니터링

관련 문서

파티션 기반 데이터 관리

Microsoft Clarity는 파티션 전략이 성능과 운영 단순성 모두에 영향을 미친다는 사실을 확인했습니다. 이들이 사용하는 방식은 날짜 기준으로 파티션을 나누고, 시간 기준으로 ORDER BY 하는 것입니다. 이 전략은 단순히 정리 효율성을 높이는 데 그치지 않고, 매우 간단한 데이터 정리 수행, 고객 대상 서비스의 요금 계산 단순화, 그리고 행 기반 삭제를 통한 GDPR 준수 요구사항 충족 등 여러 이점을 제공합니다.

주요 이점:

  • 매우 간단한 데이터 정리 (파티션 삭제 vs 행 단위 삭제)
  • 단순화된 요금 계산
  • 파티션 제거(partition elimination)를 통한 더 나은 쿼리 성능
  • 더 쉬운 운영 관리

관련 문서

문자열-정수 변환 전략

애널리틱스 플랫폼은 수백만 개의 행에 반복적으로 등장하는 범주형 데이터 때문에 종종 저장 공간 문제에 직면합니다. Microsoft 엔지니어링 팀은 검색 애널리틱스 데이터에서 이 문제를 겪었고, 영향을 받은 데이터셋에서 저장 공간을 약 60% 절감하는 효과적인 솔루션을 개발했습니다.

Microsoft의 웹 애널리틱스 시스템에서 검색 결과는 날씨 카드, 스포츠 정보, 뉴스 기사, 사실 기반 응답 등 다양한 유형의 답변을 트리거합니다. 각 쿼리 결과에는 weather_answer, sports_answer, factual_answer와 같은 설명적인 문자열이 태그로 붙었습니다. 수십억 건의 검색 쿼리가 처리되면서 이러한 문자열 값이 ClickHouse에 반복적으로 저장되었고, 막대한 저장 공간을 차지하는 동시에 쿼리 시 비용이 많이 드는 문자열 비교가 필요했습니다.

Microsoft는 별도의 MySQL 데이터베이스를 사용하는 문자열-정수 매핑 시스템을 구현했습니다. ClickHouse에는 실제 문자열 대신 정수 ID만 저장합니다. UI를 통해 weather_answer에 대한 데이터를 요청하는 쿼리가 실행되면, 쿼리 최적화기는 먼저 MySQL 매핑 테이블을 조회하여 해당 정수 ID를 가져온 뒤, ClickHouse로 전송하기 전에 그 정수를 사용하도록 쿼리를 변환합니다.

이 아키텍처는 사용자 경험은 그대로 유지하면서도, 백엔드 저장 및 쿼리 처리는 훨씬 효율적인 정수 기반으로 동작하도록 합니다. 대시보드에서는 여전히 weather_answer와 같은 의미 있는 레이블을 볼 수 있고, 매핑 시스템이 모든 변환을 투명하게 처리하므로 사용자 인터페이스나 사용자 워크플로를 변경할 필요가 없습니다.

핵심 이점:

  • 영향을 받은 데이터셋에서 약 60%의 저장 공간 절감
  • 정수 비교를 통한 더 빠른 쿼리 성능
  • 조인 및 집계를 위한 메모리 사용량 감소
  • 대용량 결과 집합에 대한 네트워크 전송 비용 감소
참고

이는 Microsoft Clarity의 데이터 시나리오에 특화된 예시입니다. 모든 데이터를 ClickHouse에 보관하거나 데이터를 ClickHouse로 이동하는 데 제약이 없다면 딕셔너리 사용을 고려하십시오.

동영상 자료

이 커뮤니티의 비용 최적화 인사이트는 수백 테라바이트에서 페타바이트 규모의 데이터를 처리하는 기업들이 사용하는 전략을 담고 있으며, 실제 운영 환경에서 ClickHouse 운영 비용을 절감하는 실질적인 접근 방식을 보여줍니다.