728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Upgrade Notes
- -
Backward Incompatible Change
- TTL 표현식에서 불확정 함수의 사용을 체크하는 방법을 수정함
- MergeTree 설정 중에 clean_deleted_rows가 사용 중단되었음. 또한 OPTIMIZE의 CLEANUP 키워드도 기본적으로 허용되지 않음
New Feature
- Refreshable Materialized views가 구현됨
- PASTE JOIN가 도압되어 ON 절 없이 행 번호를 기반으로 테이블을 조인할 수 있게 함
- ORDER BY 절이 ALL을 지정하는 것을 지원하게 되어 SELECT 절에 있는 모든 컬럼을 기준으로 정렬할 수 있음
- ALTER TABLE <table> APPLY DELETED MASK 명령어가 추가되어, 경량 삭제에 의해 작성된 마스크를 적용하고 디스크에서 삭제된 행을 제거할 수 있음
- /binary 핸들러가 추가됨
- 새로운 SQL 함수인 sqid가 추가됨
- 새로운 함수인 seriesPeriodDetectFFT가 추가됨
- Keeper가 트래픽을 수락할 준비가 되었는지 확인하기 위한 HTTP 엔드포인트가 추가됨
- 스키마 추론에 union모드가 추가되어 결과 테이블 스키마가 모든 파일 스키마의 합집합이 됨
- 새로운 설정인 input_foramt_csv_try_infer_numbers_from_strings가 추가됨
- DB 또는 테이블의 수가 설정된 임계값을 초과하면 사용자에게 경고를 표시하도록 함
- Dictrionary의 HASHED_ARRAY (및 COMPLEX_KEY_HASHED_ARRAY) 레이아웃이 SHARDS를 지원학 ㅔ됨
- 전체 pk 키 바이트와 메모리 내 할당된 pk 키 바이트의 비동기 메트릭이 추가됨
- 새로운 함수인 SHA512_256이 추가됨
- FORMAT_BYTES가 formatReadableSize의 별칭으로 추가됨
- S3 테이블 함수에 선택적 세션 토큰을 전달할 수 있게 됨
- 새로운 설정인 http_make_head_request가 추가되어 URL 테이블 엔진이 파일 크기를 결정하기 위해 HEAD 요청을 수행하지 않도록 할 수 있음
- 이제 인덱스(non-pk) 정의에서 ALIAS 컬럼을 참조할 수 있음
- 새로운 설정인 readonly가 추가되어 s3 디스크를 읽기 전용으로 지정할 수 있음
- MergeTree 테이블의 pk 분석이 이제 _part_offset(선택적으로 _part와 함께) 가상 컬럼을 포함하는 조건에 적용됨
Performance Improvement
- MergeTree 테이블의 FINAL 처리 동안 겹치지 않는 부분의 범위를 추출함
- s3 디스크 간의 복사를 서버 측 복사로 개선하여 백업/복원 작업과 clickhouse-disks 복사 명령의 성능을 향상함
- Hash join이 max_joined_block_size_rows 설정을 존중하여 ALL JOIN에 대해 큰 블록을 생성하지 않음
- 집계 메모리 할당을 더 일찍 해제하여 불필요한 외부 집계를 피할 수 있도록 함
- 문자열 직렬화 성능을 개선함
- Merge 엔진 테이블에 대한 간단한 count 최적화를 지원함
- 일부 경우에 집계를 최적화함
- hasAny 함수가 전체 텍스트 스킵 인덱스를 활용할 수 있도록 개선함
- 조건부 평가를 위한 if(cond, then, else) 함수의 최적화가 이루어짐
- MergeTree가 do_not_merge_across_partitions_select_final 설정을 자동으로 유추하도록 함
- native 타입에 대한 MIN과 MAX의 속도를 향상함
- 파일 시스템 캐시에 대한 SLRU 캐시 정책을 구현함
- 백그라운드의 fetch 작업에 대한 연결 수의 제한을 background_fetches_pool_size 설정의 값으로 증가함
- system.filesystem_cache 쿼리가 메모리 집약적이지 않도록 개선함
- 문자열의 역직렬화 시에 메모리 사용량을 감소함
- Enum 생성자의 효율성 향상
- 항상 pread 방법을 사용하도록 하여 파일 시스템 캐시에서 읽기를 개선
- 논리 표현 옵티마이저에서 AND notEquals 체인에 대한 최적화를 추가함
Experimental Feature
- -
Improvement
- Keeper에서 소프트 메모리 제한을 지원함
- 분산 테이블의 삽입이 업데이트된 클러스터 구성을 제대로 처리하도록 변경함
- 일관성 없는 병합 매개변수를 가진 복제 테이블 생성을 금지하도록 함
- system.tables에 압축되지 않은 크기를 표시함
- 분산 테이블에 대해 skip_unavailable_shards 설정을 추가함
- Enum 타입으로 substring(별칭: substr, mid) 함수 사용이 가능함
- format 함수가 모든 인수 타입을 지원하도록 개선함
- data_trunc 함수가 대소문자를 구분하지 않는 첫 번째 인수를 사용할 수 있도록 허용함
- 테이블이 존재하지 않을 때 더 나은 힌트를 제공하도록 함
- 쿼리 시간에 max_partition_size_to_drop 및 max_table_size_to_drop 서버 설정을 덮어쓸 수 있도록 함
- JSON 형식에서 이름 없는 튜플 추론을 개선함
- Keeper에 연결할 때 읽기 전용 플래그를 지원함
- 분산 전송이 "No such file or directory"로 인해 멈출 수 있는 문제를 수정함
- MaterializedPostgreSQL에서 PostgreSQL 생성된 컬럼과 기본 컬럼값을 지원함
- 서버 재시작 없이 일부 파일 시스템 캐시 구성 설정 변경 적용을 가능하도록 함
- PostgreSQL 테이블 구조에서 빈 배열을 적절하게 처리하도록 개선함
- 서버 재시작 이후 발생한 전체 오류 수를 ClickhouseErrorMetric_ALL 메트릭으로 노출함
- 환경 변수 또는 Zookeeper 참조를 사용하여 구성 파일 내 노드를 허용하고, replace=1로 비어 있지 않은 요소를 허용함
- fuzzJSON 테이블 함수를 통해 형식이 잘못된 많은 JSON 생성을 가능하게 함
- IPv6를 UInt128 변환 및 이진 산술 연산을 지원함
- 비동기 삽입 중복 제거 캐시에 대한 설정을 추가함
- sleep() 함수가 KILL QUERY로 취소 가능하도록 함
- 실험적인 Replicated DB에서 Replicated 테이블 엔진에 대한 CREATE TABLE ... AS SELECT 쿼리를 금지함
- 외부 DB에 대한 쿼리 변환을 개선하여 모든 호환 가능한 조건을 재귀적으로 얻을 수 있도록 함
- 파일 시스템 캐시 크기의 동적 리로딩을 지원함
- system.stack_trace가 SIGRTMIN이 차단된 스레드를 올바르게 지원하도록 함
- 쿼리 삽입 검사에서 Keeper 실패를 허용함
- system.asynchronous_metrics에 최대/피크 RSS(MemoryResidentMax)를 추가함
- S3 스타일 링크 사용 시 기본이 아닌 지역을 명시하지 않아도 되게 개선을 함
- 동일한 경로를 사용하는 캐시가 동일한 캐시 객체를 사용하도록 함
Build/Testing/Packaging Improvement
- -
Bug Fix
- TTL GROUP BY에서 정렬 순서 파괴 가능성을 수정함
- LTTB 버킷 전략 분할을 수정함
- Template 포맷에서 오류 후 동기화 중에 발생할 수 있는 데드락을 수정함
- Fuzzer에 의해 발견된 "non-ready set" 오류의 또 다른 사례를 수정함
- PostgreSQL array_ndims 사용과 관련된 여러 문제를 수정함
- 쓰기 잠금 타임아웃 후 RWLock 불일치를 수정함
- 뷰 체인을 구축할 때 일시적인 컬럼을 제외하지 않는 문제를 수정함
- MaterializedPostgreSQL에서 특정 문제를 수정함
- 복제된 접근 테이블의 관리를 위한 grant/revoke 쿼리에서 ON CLUSTER절을 무시하도록 함
- clickhouse-local에서 발생할 수 있는 충돌을 수정함
- 해시 조인에 대해 일부 수정함
- PostgreSQL 소스에서 발생할 수 있는 오류를 수정함
- 해시 조인에서 중첩된 LowCardinality에 대한 타입을 수정함
- system.stack_trace의 병렬 읽기로 인한 시스템 정지를 방지함
- 희소 컬럼)sparse 컬럼)의 집계에서 any(...)를 사용할 때 NULL 존중에 대해 오류가 발생하는 버극 ㅏ수정됨
- 단항 연산자 파싱 오류를 수정함
- MaterializedPostgreSQL 실험적 테이블 엔진에 대한 의존성 로딩을 수정함
- BACKUP/RESTORE ON CLUSTER에서 연결이 끊긴 노드에 대한 재시도를 수정함
- 부분적으로 실현된 프로젝션에서 외부 집계의 결과를 수정함
- *Map 조합자를 가진 집계 함수에서의 병합을 수정함
- system.kafka_consumers를 비활성화함
- Merge JOIN에서 LowCadinality 키 지원을 수정함
- InterpreterCreateQuery와 관련된 샘플 블록을 수정함
- PostgreSQL에서 이름이 지정된 컬렉션에 대한 addresses_expr 무시하는 문제가 수정됨
- CREATE INDEX에서 함수 이름을 정규화하는 과정에서 발생하는 오류를 수정함
- 첫 번째 요청 이전에 사용할 수 없는 복제본 처리를 수정함
- 리터럴 별칭의 잘못된 분류를 수정함
- Keeper에서의 잘못된 전처리를 수정함
- Poco 라이브러리에서의 UTF32Encoding 관련 정수 오버플로를 수정함
- 스칼라 서브쿼리와 큰 정수 값을 가진 병렬 복제(실험적 기능)를 수정함
- 범위를 벗어난 DateTime에 대한 accurateCastOrNull을 수정함
- MergeTree에서 넓은 파트로부터 서브컬럼을 읽는 동안 발생할 수 있는 PARAMETER_OUT_OF_BOUND 오류를 수정함
- 많은 서브쿼리를 포함한 CREATE VIEW의 속도 저하를 수정함
- JSONCompactEachRow에 대한 병렬 파싱을 수정함
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 24.1 Release note 요약 (0) | 2024.05.28 |
---|---|
[Clickhouse] Ver. 23.11 Release note 요약 (0) | 2024.05.26 |
[Clickhouse] Ver. 23.10 Release note 요약 (0) | 2024.05.25 |
[Clickhouse] Ver. 23.9 Release note 요약 (0) | 2024.05.24 |
[Clickhouse] Ver. 23.8 Release note 요약 (0) | 2024.05.23 |