clickhouse-io
ClickHouse 분석 및 쿼리 최적화 마스터하기
ClickHouse 컬럼 지향 데이터베이스로 고성능 분석 시스템을 구축하세요. 쿼리 최적화, 머티리얼라이즈드 뷰, 실시간 데이터 파이프라인에 대한 검증된 패턴을 학습합니다.
스킬 ZIP 다운로드
Claude에서 업로드
설정 → 기능 → 스킬 → 스킬 업로드로 이동
토글을 켜고 사용 시작
테스트해 보기
"clickhouse-io" 사용 중입니다. date, market_id, volume, trades 컬럼을 포함한 시장 분석 테이블 생성
예상 결과:
월별 파티셔닝, date 와 market_id 로 정렬된 순서, 그리고 최적의 압축과 쿼리 성능을 위한 적절한 데이터 타입 (Date, String, UInt64, UInt32) 을 가진 MergeTree 테이블을 생성합니다.
"clickhouse-io" 사용 중입니다. 대규모 테이블에서 volume 다음 date 로 필터링하는 쿼리 최적화
예상 결과:
인덱스된 컬럼 (date, market_id) 을 먼저 필터링하도록 WHERE 절 순서를 재조정하고, 백분위수 계산을 위해 quantile() 사용을 제안하며, 일반적인 필터 패턴에 적합한 프로젝션 추가를 권장합니다.
"clickhouse-io" 사용 중입니다. 시간당 메트릭에 대한 실시간 집계 설정
예상 결과:
AggregateFunction 컬럼을 가진 AggregatingMergeTree 대상 테이블을 생성하고, sumState/countState/uniqState 함수를 사용한 머티리얼라이즈드 뷰를 정의하며, sumMerge/countMerge/uniqMerge 를 사용하는 쿼리 패턴을 제공합니다.
보안 감사
안전This skill contains documentation and code examples for ClickHouse database usage. Static analyzer flagged 86 patterns that are all false positives: backticks in markdown denote SQL code blocks (not shell execution), environment variable references are configuration examples, and system table queries are legitimate ClickHouse monitoring features. No executable code or security risks present.
품질 점수
만들 수 있는 것
분석 플랫폼을 구축하는 데이터 엔지니어
대규모 이벤트 추적 및 사용자 분석을 위한 확장 가능한 테이블 스키마를 설계하고 효율적인 데이터 수집 파이프라인을 구현합니다.
쿼리를 최적화하는 백엔드 개발자
대규모 데이터셋에서 대기 시간을 줄이고 적절한 인덱싱 전략을 구현하기 위한 ClickHouse 고유의 쿼리 패턴을 학습합니다.
실시간 대시보드를 만드는 분석가
머티리얼라이즈드 뷰와 사전 집계 패턴을 사용하여 수십억 행에서 1 초 미만의 대시보드 쿼리를 지원합니다.
이 프롬프트를 사용해 보세요
user_id, event_type, timestamp, properties 컬럼을 포함한 사용자 활동 이벤트 저장을 위한 ClickHouse 테이블 스키마를 생성하세요. 중복 제거에 적절한 엔진을 사용하고 월별로 파티셔닝하세요.
1 억 행 이상에서 느리게 실행되는 이 ClickHouse 쿼리를 검토하세요. WHERE 절, 인덱스 및 집계 함수에 대한 최적화 사항을 제안해주세요: [쿼리 붙여넣기]
이벤트 테이블에서 시간당 일일 활성 사용자 수와 총 이벤트 수를 사전 집계하는 머티리얼라이즈드 뷰를 생성하세요. 대상 테이블 스키마와 MV 정의를 포함하세요.
PostgreSQL 에서 ClickHouse 로 데이터를 매시간 동기화하는 ETL 파이프라인을 설계하세요. 추출, 변환 로직 및 오류 처리가 포함된 배치 삽입 패턴을 포함하세요.
모범 사례
- 테이블을 시간 (월 또는 일) 단위로 파티셔닝하되 성능에 영향을 미치는 과도한 파티셔닝은 피하세요
- 기본 키를 가장 자주 필터링되는 컬럼 순으로 정렬하고 카디널리티가 높은 것을 먼저 배치하세요
- 효율적인 데이터 수집을 위해 개별 행 삽입 대신 배치 삽입을 사용하세요
- 1 초 미만의 쿼리 대기 시간을 달성하기 위해 사전 집계된 메트릭에 머티리얼라이즈드 뷰를 활용하세요
피하기
- 필요한 컬럼을 지정하는 대신 SELECT * 사용 - I/O 및 메모리 사용량 증가
- 배칭 대신 소규모 빈번한 삽입 수행 - 과도한 파트 생성 유발
- 쿼리에서 FINAL 수식어 의존 - 쿼리 시점에 비용이 큰 데이터 병합 강제
- 분석 쿼리에서 너무 많은 JOIN 생성 - 더 나은 성능을 위해 데이터를 비정규화하세요