exemONE Database ClickHouse 성능 분석
1. 개요
메뉴 경로: Performance Analysis > Database > ClickHouse
ClickHouse 인스턴스의 날짜별, 시간별 성능 추이를 분석하고, 특정 시점의 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 등 다양한 관점에서 장애 원인을 분석하는 화면입니다.
2. Trend Analysis (성능 추이 분석)
2-1. 개요
메뉴 경로: Performance Analysis > Database > ClickHouse > Performance Analysis > Trend Analysis
날짜별, 시간별 성능 추이 확인이 가능한 화면으로, 특정 시점의 정밀한 성능 분석 기능을 제공합니다. 하단 Grid에서 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 등 다양한 관점에서 장애 원인을 분석할 수 있습니다.
2-2. 기본 뷰 화면 설명

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Search Panel | 버튼 클릭 시 검색 패널을 보여줍니다. |
| 2 | Search Bar | 검색 패널에서 선택한 조건이 상단에 텍스트로 표시됩니다. |
| 3 | Trend Chart | 데이터베이스 주요 지표 Trend를 표시하며 주요 성능 지표에 대한 모니터링이 가능합니다. |
| 4 | Grid | Chart에서 클릭 시점에 수집된 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 정보를 보여줍니다. |
2-3. 상세 기능 설명
2-3-1. Search Panel

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Reset | 검색 조건을 초기화합니다. |
| 2 | Instance | 인스턴스를 선택합니다. |
| 3 | Time | 기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. |
2-3-2. Search Bar

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Search | 클릭 시 검색 패널이 나타납니다. |
| 2 | Filter Label | 검색 패널에서 선택한 조건(Instance Name, Time)이 상단에 텍스트로 표시됩니다. |
2-3-3. Trend Chart

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Chart | 검색 패널에서 조회한 대상, 기간에 맞춰 차트를 보여줍니다. Chart에 인디케이터가 나타나고, 인디케이터가 위치한 시점의 날짜와 시간을 툴팁으로 보여줍니다. |
| 2 | Stat Change | 각 차트명 우측 상단 아이콘을 클릭하여 지표를 변경합니다. 차트명 클릭 시 'Stat Chart Option' 팝업창이 나타납니다. |
2-3-4. Grid - Process (프로세스 정보)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Process 탭
클릭 시점에 수집된 Process 정보 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Process 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | Process 정보를 Grid 형태로 보여줍니다. |
| 3 | Time Navigation | Grid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다. |
Process Grid 항목:
| 항목 | 설명 |
|---|---|
| Hostname | Host 이름 |
| Current Database | 현재 사용 중인 데이터베이스 이름 |
| User | User 이름 |
| Address | Query를 실행한 IP 주소 |
| Port | Query를 실행한 Client Port 정보 |
| Elapsed Time (sec) | Query 수행 시간 |
| Query ID | Query ID |
| Query | Query Text |
| Memory Usage | Memory 사용량 |
| Peak Memory Usage | 최대 Memory 사용량 |
| Thread IDs | Query에 사용된 Thread ID |
| Is Initial Query | 사용자가 직접 실행한 쿼리인지 분산 쿼리 실행 과정에서 서버 내부적으로 실행한 쿼리인지 여부 |
| Is Cancelled | Query 실행 취소 여부 |
| Read Rows | Table에서 읽은 행 수 |
| Read Bytes | 테이블에서 읽은 Bytes 수 |
| Total Rows Approx | 읽어야 할 전체 행 수 (추정치) |
| Written Rows | Storage에 기록된 행 수 |
| Written Bytes | Storage에 기록된 bytes 수 |
| HTTP Method | Query를 유발한 HTTP Method |
| Interface | Query 전송에 사용된 Interface 종류 |
| OS User | Client를 실행한 OS User 이름 |
| Client Hostname | Client 또는 다른 TCP Client가 실행된 Client Host 이름 |
| Client Name | Client 또는 다른 TCP Client 이름 |
| Client Revision | Client Revision Version |
| Query Kind | Query 종류 |
2-3-5. Grid - Top SQL (상위 SQL)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Top SQL 탭
조회 기간에 수집된 Top SQL 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Top SQL 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | SelectBox | Order By 기준을 설정합니다. Query Duration (sec) (Default) / CPU Time / Memory Usage 중 선택 |
| 3 | Toggle | 토글 버튼 클릭을 통해 합계, 평균으로 변환합니다. |
| 4 | Grid | Top SQL 정보를 보여줍니다. |
Top SQL Grid 항목:
| 항목 | 설명 |
|---|---|
| Rank | 순위 |
| Hostname | Query를 실행한 Host 이름 |
| Current Database | DB 이름 |
| User | User 이름 |
| Normalized Query Hash | 정규화된 Query 해시값 |
| Query | Query Text |
| Query Duration (sec) | Query 실행 시간 |
| Query Count | Query 실행 횟수 |
| CPU Time | CPU Time |
| Memory Usage | Memory 사용량 |
| Read Rows | Query에서 읽은 전체 행 수 |
| Read Bytes | Query에서 읽은 Bytes 수 |
| Result Rows | SELECT 또는 INSERT 결과의 행 수 |
| Result Bytes | Query 결과 저장 시 사용된 RAM Bytes 수 |
2-3-6. Grid - Long Running Query (장시간 수행 쿼리)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Long Running Query 탭
조회 기간에 수집된 Long Running Query 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Long Running Query 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | Long Running Query 목록을 보여줍니다. |
Long Running Query Grid 항목:
| 항목 | 설명 |
|---|---|
| Rank | 순위 |
| Hostname | Host 이름 |
| Current Database | 현재 사용 중인 데이터베이스 이름 |
| User | User 이름 |
| Address | Query를 실행한 IP 주소 |
| Port | Query를 실행한 Client Port 정보 |
| Elapsed Time (sec) | Query 수행 시간 |
| Query ID | Query ID |
| Query | Query Text |
| Memory Usage | Memory 사용량 |
| Peak Memory Usage | 최대 Memory 사용량 |
| Thread IDs | Query에 사용된 Thread ID |
| Is Initial Query | 사용자가 직접 실행한 쿼리인지 분산 쿼리 실행 과정에서 서버 내부적으로 실행한 쿼리인지 여부 |
| Is Cancelled | Query 실행 취소 여부 |
| Read Rows | Table에서 읽은 행 수 |
| Read Bytes | 테이블에서 읽은 Bytes 수 |
| Total Rows Approx | 읽어야 할 전체 행 수 (추정치) |
| Written Rows | Storage에 기록된 행 수 |
| Written Bytes | Storage에 기록된 bytes 수 |
| HTTP Method | Query를 유발한 HTTP Method |
| Interface | Query 전송에 사용된 Interface 종류 |
| OS User | Client를 실행한 OS User 이름 |
| Client Hostname | Client 또는 다른 TCP Client가 실행된 Client Host 이름 |
| Client Name | Client 또는 다른 TCP Client 이름 |
| Client Revision | Client Revision Version |
| Query Kind | Query 종류 |
2-3-7. Grid - Part Log (파트 로그)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Part Log 탭
클릭 시점에 수집된 Part Log 정보를 확인할 수 있습니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Part Log 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | Part Log 정보를 Grid 형태로 보여줍니다. |
| 3 | Time Navigation | Grid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다. |
Part Log Grid 항목:
| 항목 | 설명 |
|---|---|
| Hostname | Host 이름 |
| Database | Part가 속한 Database 이름 |
| Table | Part가 속한 Table 이름 |
| Table UUID | Table UUID |
| Event Type | Part 작업의 종류 (NewPart: 새 Part 삽입 / MergeParts: Part 병합 / DownloadPart: 다른 Node에서 Download / RemovePart: Part 삭제 / MutatePart: Part 변경 / MovePart: Part를 Disk 간 이동 / FailedMutatePart: Mutations 실패 / FailedMergeParts: 병합 실패) |
| Merge Reason | 병합 사유, MERGE_PARTS 타입에만 해당 (NotAMerge: 병합이 아님 / RegularMerge: 일반 병합 / TTLDeleteMerge: TTL 삭제 병합 / TTLRecompressMerge: TTL 기반 재압축) |
| Merge Algorithm | 병합 알고리즘 종류 (Undecided: 미결정 / Vertical: 세로 병합(컬럼 단위) / Horizontal: 가로 병합(행 단위)) |
| Duration (sec) | 작업 소요 시간 |
| Event Time Microseconds | 마이크로초 정밀 타임스탬프 |
| Part Name | Part 이름 |
| Partition ID | Part가 속한 Partition ID |
| Partition | 세부 Partition 정보 |
| Part Type | Part 저장 형식 |
| Disk Name | Part가 저장된 Disk 이름 |
| Path on Disk | Part File이 저장된 경로 |
| Rows | Part의 총 행 수 |
| Size in Bytes | Part의 Disk 상 크기 |
| Bytes Uncompressed | Part 압축 해제 기준 크기 |
| Read Rows | 병합 중 읽힌 총 행 수 |
| Read Bytes | 병합 중 읽힌 bytes 수 |
| Peak Memory Usage | 병합 중 사용된 최대 Memory 량 |
| Error | 발생한 예외 에러 코드 |
| Exception | 발생한 예외 메시지 |
2-3-8. Grid - Merge (병합 정보)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Merge 탭
클릭 시점에 수집된 Merge 정보 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Merge 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | Merge 정보를 Grid 형태로 보여줍니다. |
| 3 | Time Navigation | Grid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다. |
Merge Grid 항목:
| 항목 | 설명 |
|---|---|
| Hostname | Host 이름 |
| Database | 병합이 발생한 DB 이름 |
| Table | 병합이 발생한 Table 이름 |
| Source Part Names | 병합에 사용된 원본 Part 이름 목록 |
| Result Part Name | 병합 결과 Part의 File 경로 |
| Elapsed Time (sec) | 병합 경과 시간 |
| Progress (%) | 병합 진행률 |
| Num Parts | 병합에 포함된 Part 개수 |
| Total Size Bytes Compressed | 병합된 압축 데이터의 총 크기 |
| Total Size Bytes Uncompressed | 병합된 비압축 데이터의 총 크기 |
| Total Size Marks | 병합된 Part들의 총 마크 수 |
| Bytes Read Uncompressed | 읽은 비압축 Bytes 수 |
| Rows Read | 읽은 행 수 |
| Bytes Written Uncompressed | 기록한 비압축 Bytes 수 |
| Rows Written | 기록한 행 수 |
| Columns Written | 기록한 컬럼 수 |
| Memory Usage | Memory 사용량 |
| Thread ID | 병합 작업이 실행 중인 Thread ID |
| Is Mutation | 변이 작업 여부 (1: 변이 작업 포함) |
2-3-9. Grid - Mutation (변이 정보)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Mutation 탭
클릭 시점에 수집된 Mutation 정보 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Mutation 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | Mutation 정보를 Grid 형태로 보여줍니다. |
| 3 | Time Navigation | Grid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다. |
Mutation Grid 항목:
| 항목 | 설명 |
|---|---|
| Hostname | Host 이름 |
| Database | 변이가 적용된 DB 이름 |
| Table | 변이가 적용된 Table 이름 |
| Mutation ID | 변이 작업의 ID |
| Command | 변이 명령어 |
| Create Time | 변이 명령이 실행 대기열에 등록된 시간 |
| Block Numbers.PartitionID | 복제 테이블의 경우 변이가 적용되는 Partition ID 배열 |
| Block Numbers.Number | 복제 테이블의 경우 각 Partition 별로 변이 작업에서 획득한 Block 번호 |
| Parts To Do Names | Mutation을 완료하기 위해 처리해야 하는 Data Part Name 목록 |
| Parts To Do | Mutation을 완료하기 위해 처리해야 하는 Data Part 수 |
| Is Done | Mutation이 완료되었는지 나타내는 플래그 (1=완료, 0=진행중) |
| Is Killed | 변이 작업이 수동으로 종료되었는지 여부 |
| Latest Failed Part | 최근 변이에 실패한 Part 이름 |
| Latest Fail Time | 최근 Part 변이 실패 발생 시간 |
| Latest Fail Reason | 최근 변이 실패의 예외 |
2-3-10. Grid - Alert (알람 정보)
메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Alert 탭
클릭 시점에 수집된 알람 정보 확인이 가능합니다.

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Filter | 필터 조건에 따라 Alert 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다. |
| 2 | Grid | 조회 기간 내 Alert 목록을 보여줍니다. |
Alert Grid 항목:
| 항목 | 설명 |
|---|---|
| Time | 발생 시간 |
| Alert Type | Alert 유형 |
| Alert Name | Alert 이름 |
| Level | Alert Level (Critical, Warning, Normal) |
| Value | Alert 발생 값 |
참고 문서