728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Backward Incompatible Change
- Ver. 21.6
- uniqState, uniqHLL12State, uniqCombinedState, uniqCombined64State가 UUID 타입과 호환되지 않음
Upgrade Notes
- Ver. 21.6
- UUID 타입의 값은 integer 타입과 비교될 수 없음. 예를 들어 uuid != 0이 아닌 uuid != '00000000-0000-0000-0000-000000000000'로 해야 함
New Feature
- Ver. 21.6
- PostgreSQL과 같은 캐스팅 연산자로 ::가 추가됨. 예를 들어 [1, 2]::Aray(UInt8), 0.1::decimal(4, 4)이 가능함
- 다음과 같은 big integer 관련 기능이 지원되며 LowCardinality(UUID)가 지원됨
- UInt128 데이터 타입이 지원됨
- dictionaries에 big integers가 지원됨
- gcd/lcm 함수에 big integers가 지원됨
- 배열 검색이나 조건부 함수에 big integers가 지원됨
- generateRandom 테이블 함수와 clickhouse-obfuscator에 big integers가 지원됨
- table comment가 구현됨
- system.stack_trace 시스템 테이블에 thread_name 열이 추가됨
- insert_null_as_default=1일 경우 INSERT ... SELECT와 INSERT ... SELECT ... UNION ALL ... 쿼리에 NULL 대신 기본 값이 삽입됨
- clickhouse-local에 --progress 옵션이 추가되어 진행 상황을 알 수 있는 기능이 추가됨
- SYSTEM QUERY RELOAD MODEL, SYSTEM QUERY RELOAD MODELS가 추가됨
- EXPLAIN PLAN 쿼리에 json(boolean이며 기본적으로 0) 옵션이 추가됨. 활성화할 경우 단일 JSON형식으로 출력되며 TSVRaw 형식에 유용함
- MergeTree* 테이블에 대해 EXPLAIN PIPELINE 쿼리에 INDEXES(boolean이며 기본적으로0) 옵션이 추가됨. 활성화되면 사용된 인덱스와 각각의 인덱스에 필터된 parts, granules의 수를 알 수 있음
Bug Fix
- Ver. 21.6
- SYSTEM RESTART REPLICA 혹은 SYSTEM SYNC REPLICA 쿼리 수행이 영원히 지속되는 버그가 수정됨. 이는 매우 적은 RAM으로 서버가 구동중일 때 발생하던 버그임
- 쿼리 실행 도중 HDFS에 접근할 수 없게 되어 서버가 비정상적으로 종료되는 버그가 수정됨
- SELECT ... FINAL 쿼리에 대한 EXPLAIN PIPELINE이 잘못된 pipieline을 표시하는 버그가 수정됨
- ALTER 쿼리가 replica의 다운타임 동안 수행된 경우 오래된 replica에 의해 metat updates가 무시되는 버그가 수정됨
- UNION 사용시 filter-pushdown 최적화 후에 "Block structure mismatch" 에러가 발생할 수 있는 버그가 수정됨
Improvement
- Ver. 21.6
- MergeTree 테이블군에 _partition_value 가상 컬럼이 추가됨. 이를 통해 결정적인 방법으로 파티션 pruning할 수 있음. 이 것은 mutation에 대해 partition matcher를 구현하는데 필요함
- prefer_column_name_to_alias=1 가 GROUP BY, HAVING, ORDER BY에 사용되는 열 이름 또한 선호하도록 변경됨
- DateTime64로 ORDER BY WITH FILL이 지원됨
- 서버 시작 시 OS 이름, 커널 버전, CPU 아키텍처에 대한 정보도 기록(log)함
- system.distribution_queue 시스템 테이블에 broken_data_files, broken_data_compressed_bytes 열이 추가됨. 마크된 분산 테이블에 비동기 삽입에 대한 파일의 수를 나타내는 BrokenDistributedFilesToInsert 열이 추가됨
- system.tables 쿼리는 더이상 주키퍼로 이동하지 않음(주키퍼에서 인지를 못한다는 것인지?)
- 분산 테이블의 하위 컬럼을 읽을 수 있게 됨
- Kafka 엔진에서 Parquet 형식이 지원됨
Performance Improvement
- Ver. 21.6
- sum, count, avg 함수의 융합으로 sumCount 함수가 지원됨. 이 수는 optimize_fuse_sum_count_avg 파라미터에 의해 제어가 됨. 해당 함수는 sum과 count 두 열의 튜플로 값이 반환됨
- Buffer 엔진 사용시 total_bytes/total_rows에 대해 락을 습득하지 않음으로써 성능 개선이 됨
Experimental Feature
- Ver. 21.6
- MergeTree* 테이블에 PROJECTION이 추가됨
Build/Testing/Packaging Improvement
- Ver. 21.6
- -
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 21.8 Release note 요약 (0) | 2024.04.16 |
---|---|
[Clickhouse] Ver. 21.7 Release note 요약 (0) | 2024.04.15 |
[Clickhouse] Ver. 21.5 Release note 요약 (0) | 2024.04.13 |
[Clickhouse] Ver. 21.4 Release note 요약 (0) | 2024.04.12 |
[Clickhouse] Ver. 21.3 Release note 요약 (0) | 2024.04.11 |