728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Backward Incompatible Change
- Ver. 20.12.3.3
- use_compact_format_in_distributed_parts_names 파라미터가 기본적으로 사용함으로 설정됨
- File engine을 사용하여 테이블을 생성할 때, SETTINGS 항목에서 file 형식과 관련된(format_csv_delimiter 등) 사용자 설정이 가능하게 됨. 이 설정은 모든 INSERT와 SELECT에 사용됨
New Feature
- Ver. 20.12.3.3
- ALTER TABLE ... DROP|DETACH PART 'part_name' 구문이 추가됨
- ALTER UPDATE/DELETE IN PARTITION 구문이 추가됨
- 중첩된 유형이 String일 경우 Nullable, LowCardinality, Array, Tuple에 대한 COLLATE가 지원됨. 또한 ColumnString.cpp의 데이터 정렬과 연관된 코드의 refactor가 추가됨
- 현재 리스닝 중인 tcpPort 정보를 반환하는 tcpPort() 함수가 추가됨
- acosh, asinh, atan2, atanh, cosh, hypot, log1p, sinh의 수학 관련 함수가 추가됨
- 다른 replica 간에 merges를 배포할 수 있는 execute_merges_on_single_replica_time_threshold 파라미터가 추가됨
- SQL 표준 호환성을 위해 aggregate_functions_null_for_empty 파라미터가 추가됨. 이 기능은 모든 집계함수에 -OrNull을 추가하여 재작성함
- clickhouse-client에서 --history_file 파라미터를 통하여 history file의 경로를 바꿀 수 있게 됨
Bug Fix
- Ver. 20.12.3.3
- pool_size 가 1 초과일 때, 경합 상태로 인하여 ON CLUSTER 쿼리에서 클러스터가 순환(혹은 교차) 복제되었는지 여부가 잘못 결정되는 버그가 수정됨
- LIMIT이 있는 분산 쿼리에 대해 기록된 "Unexpected packet Data received from client" 에러가 발생할 수 있는 버그가 수정됨
Improvement
- Ver. 20.12.3.3
- TTL, mutation, collapsing merge 알고리즘에 의해 가지치기(삭제)된 후에 비어버린 parts는 제거됨
- 분산 테이블에서 비동기 전송에 대한 디렉토리의 compact format이 사용 가능하게 됨. 이 것은 use_compact_format_in_distributed_parts_names를 1로 설정하면 되며 기본적으로 1로 설정되어 있음
- system.distribution_queue 시스템 테이블에서 data_path 내 패스워드를 마스킹함
- 컬럼 변환기를 통해 존재하지 않는 컬럼을 바꿀 경우 에러를 반환함
- 동시에 작업을 할 때 모든 쓰레드에 대해 메모리가 충분하지 않다면 병렬 파싱을 하지 않음. 또한 파싱할 각 부분은 독립적인 문자열이어야 하므로(?) min_chunk_bytes_for_parallel_parsing을 초과하는 매우 큰 레코드 건수를 삽입하려고 하면 "Memory limit exceede" 에러가 반환될 수 있음.
- Distributed engine을 시작할 때 비동기 INSERT에 대한 비어있는 폴더가 제거됨
- 서버 시작 없이 <auxiliary_zookeepers> 설정이 config.xml 파일에서 변경될 수 있고 reload하면 됨
Performance Improvement
Ver. 20.12.3.3
- 부분 정렬 사용 시 Floyd-Rivest 알고리즘을 사용함
- ReplicatedMergeTree engines family의 경우 replicated fetch에 대해 별도의 thread pool을 사용함. pool의 크기는 background_fetches_pool_size에 의해 제한되며 서버 재시작을 해야 값이 변경됨. 기본값은 3이며 최대 병렬 fetch 량이 3임을 의미함
- 정확한 match를 통해 파티션 프루닝이 안전하게 이루어짐. 예를 들어 intHash64(x) % 100로 파티션되어 있다면, 쿼리 또한 그대로 intHash64(x) % 100로 가짐(옵티마이저에 의해 실행계획상에서 얘기하는건지?)
Experimental Feature
- -
Build/Testing/Packaging Improvement
- -
Contents that needs to be tested
- -
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 21.2 Release note 요약 (0) | 2024.04.10 |
---|---|
[Clickhouse] Ver. 21.1 Release note 요약 (0) | 2024.01.08 |
[Clickhouse] Ver. 20.11 Release note 요약 (0) | 2023.12.24 |
[Clickhouse] Ver. 20.10 Release note 요약 (0) | 2023.12.22 |
[Clickhouse] Ver. 20.9 Release note 요약 (0) | 2023.12.21 |