728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Backward Incompatible Change
- Ver. 21.3
- table TTL을 사용하여 이전 구문으로 MergeTree tabtle을 생성할 수 없음. 하지만 이전 테이블을 Attach하는 것은 가능함
- 모든 대소문자를 구분하지 않는 함수의 이름이 표준 표현으로 재작성됨
New Feature
- Ver. 21.3
- file 엔진 설정과 관련하여 engine_file_empty_if_not_exists, engine_file_truncate_on_insert 파라미터가 추가됨
- system.part_log 시스템 테이블에 event_time_microseconds 열이 추가됨
- 분산 테이블에서 특정한 샤드로 데이터를 삽입할 수 있도록 insert_shard_id 파라미터가 추가됨
- extractTextFromHTML 함수가 추가됨
- MergeTree* 엔진에 대한 테이블 수준의 쿼리 동시성 제어 파라미터가 2가지 추가됨
- max_concurrent_queries : 이 테이블과 관련된 동시 수행할 수 있는 쿼리의 수를 제한함
- min_marks_to_honor_max_concurrent_queries : 쿼리가 최소한 이 marks 수를 읽는 경우에만 이전 설정을 적용하도록 함
Bug Fix
- Ver. 21.3
- 주키퍼에 대한 중복 재연결과 단일 클릭하우스 서버에 대한 이중 활성화된 세션의 가능성이 수정됨
- non replicated MergeTree 테이블 엔진에 대해 조건에 테이블 자체가 포함된 경우 ALTER DELETE mutation에서 데드락이 발생하는 버그가 수정됨
- ALTER MODIFY COLUMN 쿼리가 파티션 키, skip indices, TTLs 등을 올바르게 변경하도록 수정됨
- EXPLIAN 명령어가 UNION과 충돌하는 버그가 수정됨
- 사용자 지정(기본이 아닌) 주키퍼 클러스터 내 Replicated*MergeTree가 삭제될 경우 metadata가 누수되는 버그가 수정됨
- ALTER MODIFY COLUMN 구문에 의해 생성된 mutation이 의도적으로 실패하는 버그가 수정됨
- 쿼리 취소 시 "Empty task was returned from async task queue" 에러가 반환되는 버그가 수정됨
- 원격 쿼리로부터 알 수 없는 패킷을 받은 경우 충돌이 발생할 수 있는 버그가 수정됨
- float 타입의 키에 대해 transform 함수가 적절히 동작하지 않는 버그가 수정됨
- 서브쿼리에 WITH alias를 전파할 때 무한 루프에 빠지는 버그가 수정됨
- Replicated 테이블 엔진군에 대하여 실패된 백그라운드 작업의 너무 잦은 재시도가 수정됨
- *CollapsingMergeTree와 ReplacingMergeTree 테이블 엔진에 대해 version 열을 삭제하거나 rename이 제한됨
Improvement
- Ver. 21.3
- 만약 삭제하고자 하는 컬럼이 materialized view에 의해 참조되고 있다면 삭제가 안됨
- distributed_group_by_no_merge를 통해 initiator에서 정렬된 블록에 대해서만 병합함
- 배열과 튜플의 결합된 데이터 타입에 대한 직렬화가 개선됨
- 분산 DDL 작업 수행과 DDL 큐 정리 사이의 경쟁이 수정됨. 이제 활성화된 작업자가 있다면 주키퍼에서 DDL task는 제거되지 않음
- integer가 Decimal에 맞지 않는 경우 이제 "ARGUMENT_OUT_OF_BOUND" 에러가 반환됨
- SYSTEM FULSH DISTRIBUTED 명령어가 락 되지 않음(무엇과 비교하여?)
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT를 제공하여 startup 시 access_management 파라미터를 설정할 수 있음. 기본 값은 활성안함임
- Quota 개선을 위해 SHOW TABLES 구문은 이제 2개의 쿼리가 아닌 하나의 쿼리로 계산됨. SYSTEM 쿼리는 이제 quota를 소모함
- system.zookeeper 시스템 테이블에서 path IN (set) 구문이 지원됨
- system.tables 시스템 테이블에서 MaterializeMySQL 테이블의 모든 상세 정보를 볼 수 있음
- 분산 테이블에 데이터를 삽입할 때 매치되는게 없다면 블록의 구조를 변환함
- system.distributed_ddl_queue 테이블이 개선됨. 재시작 후 MaxDDLEntryID는 마지막 값으로 초기화됨. 이러한 PR 전, 새로운 DDL 작업이 수행될 때까지 MaxDDLEntryID는 0으로 유지됨
Performance Improvement
- Ver. 21.3
- 테이블에 행 수준 보안 표현식이 명시될 경우 PREWHERE과 그에 해당하는 최적화가 지원됨
- distributed_aggregation_memory_efficient 파라미터가 기본적으로 동작됨. 이 것은 메모리 사용률을 낮추고 분산 쿼리의 성능을 개선함
- 여러 fixed size 키에 대한 GROUP BY 성능이 개선됨
- http 서버를 일부 다시 구현하여 들어오고 나가는 데이터의 복사본을 줄임. 이 것은 http를 통해 긴 레코드를 삽입할 때 최대 1.5배까지 성능이 개선됨
- Memory table에 대해 compress 파라미터가 추가됨. 이는 테이블이 더 적은 RAM을 사용하게 함. 다음과 같은 이유로 Memory 테이블이 MergeTree 테이블보다 속도가 느릴 수 있음
- 압축의 부재
- 블록의 정적인 사이즈
- indices와 prewhere의 부재
- do_not_merge_across_partitions_select_final 설정이 활성화되었을 때, level > 0 이고 단일 part에 대하여 SELECT ... FINAL 구문이 병렬로 처리됨
Experimental Feature
- Ver. 21.3
- 실험적인 Replicated database 엔진이 추가됨. 이 것은 여러 호스트들 사이에 DDL 쿼리를 복제함
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.5 Release note 요약 (0) | 2024.04.13 |
---|---|
[Clickhouse] Ver. 21.4 Release note 요약 (0) | 2024.04.12 |
[Clickhouse] Ver. 21.2 Release note 요약 (0) | 2024.04.10 |
[Clickhouse] Ver. 21.1 Release note 요약 (0) | 2024.01.08 |
[Clickhouse] Ver. 20.12 Release note 요약 (0) | 2024.01.07 |