728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Upgrade Notes
- -
Backward Incompatible Change
- system.text_log의 microsesconds 컬럼과 system.metric_log의 millisencds 컬럼이 제거됨
- 메타데이터 캐시 기능 사용이 중단됨. 이 기능은 실험적이었으며 위험한 기능임
- TSL 연결에서 3DES 지원이 중단됨
New Feature
- zip/7z/tar 아카이브에서 직접 가져오기 기능이 추가됨
- system.trace_log에 ptr 컬럼이 추가되었으며 trace_type = 'MemorySample'에 대해 할당ㄹ 주소를 포함함
- azureBlobStorageCluster 테이블 함수가 추가됨
- 클러스터, clusterAllReplicas, remote 및 remoteSecure를 테이블 이름 없이 사용할 수 있게 됨
- Kafka 소비자를 모니터링하기 위한 시스템 테이블이 추가됨
- max_sessions_for_user 설정이 추가됨
- toUTCTimestamp/fromUTCTimestamp 함수가 추가되어 spak의 to_utc_timestamp/from_uic_timestamp와 동일하게 동작함
- structureToCapnProtoSchema/structureToProtobufSchema 함수가 추가되어, Clickhouse 테이블 구조를 CapnProto/Protobuf 포맷 스키마로 변환할 수 있음
- system.query_log에 새로운 필드 qury_cache_usage가 추가되어, 쿼리 캐시의 사용 여부와 방법을 보여줌
- startsWithUTF8 및 endsWithUTF8 함수가 신규 추가됨
- TSV/CustomeSeparated/JSONCompactEachRow에서 변수 개수의 컬럼을 허용하며 변수 개수의 컬럼을 사용해 스키마 추론을 수행할 수 있게 됨
- SYSTEM STOP/START PULLING REPLICATION LOG 쿼리가 추가되어, ReplicatedMergeTree의 테스트를 용이하게 함
- 변이(mutations) 작업에서 상수 비결정적 함수를 실행할 수 있게 됨
- 데이터를 읽지 않고 파일 목록을 나열할 수 있는 input foramt One이 추가됨
- tupleConcat 함수가 추가됨
- TRUNCATE DATABASE 작업을 지원함
- primary key 처리에 사용되는 스레드의 수를 제한하는 max_threads_for_indexes 설정이 추가됨
- SipHash keyed 함수가 다시 추가됨
- arrayRotateLeft, arrayRotateRight, ArrayShiftLeft, arrayShiftRight 함수가 추가됨
- system.clustsers 테이블에 cluster라는 별칭으로 column명이 추가됨
- 고급 대시보드에서 대량 편집(저장/로드)를 허용함
- 고급 대시보드에서 차트를 최대화하고 이동할 수 있는 옵션이 추가됨
- 배열을 더하고 빼는 지원이 추가됨
- 문자열 리터럴을 테이블 이름으로 사용할 수 있는 지원이 추가됨
Experimental Feature
- 새로운 테이블 엔진인 S3Queue가 추가됨
- 복제를 통한 병렬 읽기를 활성화함
- HNSW로 근사 이웃 탐색 방법에 대한 실험적 지원이 추가됨
Performance Improvement
- 파케이 필터 푸시다운을 지원함
- 작은 행 그룹을 배치하여 파케이 읽기를 최적화함
- 다수의 입력 형식에서 파일에 count를 최적화함
- url/file/hdfs 테이블 함수에서 읽기 전에 파일/경로에 의한 필터를 사용하도록 함
- AArch64, PowerPC, SystemZ, RISC-V에 대한 JIT 컴파일을 활성화함
- countDistinctIf를 count_distinct_implementation으로 재작성하는 설정을 추가함
- uniq 및 uniqExact 집계 함수의 상태를 병합하기 전에 병렬 변환을 통해 병합 속도를 향상시킴
- Nullable 문자열 키를 사용한 집계 성능을 최적화함
- 시간 필터 최적화를 위한 Analyzer 패스를 추가함
- uniqExact(COUNT DISTINCT) 함수에서 모든 해시 세트가 단일 레벨일 경우 병합을 최적화함
- 해시 조인 데이터 구조를 몯느 열과 함께 복제하지 않는 Join 테이블 엔진이 도입됨
- "apache arrow" 라이브러리 없이 ORC 입력 형식 구현으로 성능이 개선됨
- 대규모 시간 프레임에 대한 인터넷 연결 속도 개선을 위해 대시보드 데이터를 압축함
- 백업 및 복원 작업에 대한 스레드 풀 사용을 개선함
- 시작 시 파일 시스템 캐시 메타데이터를 병렬로 로딩하도록 함. 이는 load_metadata_threads(기본값 1)로 제어함
- prewhere에서 기본 키 열 이동을 최적화함
- Clickhouse Keeper와의 상호작용을 최적화함
- 파일/s3/url/hdfs/azure 함수에서 count에 대한 파일의 행 수를 캐싱하도록 함
- S3 테이블 함수의 속도를 개선함
Improvement
- 외부 명령어 stderr 데이터가 있을 때의 반응 설정을 추가함
- system 테이블인 part_log 및 merge 테이블에 파티션 열을 추가함
- 인덱스의 압축/마크, mmap 및 쿼리 캐시 크기를 동적으로 구성할 수 있도록 함
- 복잡한 키로 딕셔너리를 생성 시 "complex key" 레이아웃을 자동 선택하도록 함
- 새로운 동시성 제어 기능 테스트를 위한 설정을 추가함
- DB 및 테이블 이름에 대한 오타 제안 기능을 추가함
- hdfs에서 작은 파일 읽기를 최적화함
- 세션 만료 후에 불필요한 에러 로글ㄹ 감소함
- 시간 제한이 있는 대체 zookeeper 세션을 도입함
- max_partitions_per_insert_block 도달 시 로그 기록 기능을 추가함
- clickhouse-keeper-client에 대한 사용자 정의 명령을 추가함
- .azureBlobStorage 테이블 함수에서의 연결 문자열 체크를 업데이트함
- JOIN 알고리즘에서 필터링 세트에 대한 설명을 수정함
- 큰 max_block_size를 가진 Aggregator에서 메모리 소비 문제를 해결함
- SYSTEM SYNC FILESYSTEM CACHE 명령을 추가함
- clickhouse용 일반 프록시 리졸버 생성을 시도하도록 함
- 튜플 하위 컬럼을 file/s3/hdfs/url/azureBlobStorage 테이블 함수에서 읽기 기능을 지원함
- arrayIntersect 함수가 첫 번째 인수에 해당하는 순서로 값을 변환하도록 변경함
- 액세스 엔터티 생성/삭제 또는 다른 액세스 스토리지로 이동을 위한 새로운 쿼리를 추가함
- ALTER TABLE FREEZE 쿼리를 복제된 DB 엔진에서 비복제로 만들도록 함
- s3 테이블 함수가 사전 서명된 URL과 함께 작동하지 않는 문제를 수정함
- system.events 및 system.metrics 테이블에 이벤트 및 메트릭의 별칭으로 컬럼 이름을 추가함
- CREATE UNIQUE INDEX 구문을 파서에서 지원하도록 추가, UNIQUE 인덱스는 지원되지 않음
- Kafka 엔진 설정에서 정의된 매크로({database} 및 {table}) 지원을 추가함
- 백업/복원 중 파일 시스템 캐시 업데이트를 비활성화함
- S3 엔드포인트 구성을 루트에서 사용 가능하도록 개선함
- clickhouse-local에 대한 위치 인수 사용 및 글로벌 UDF 설정을 적용함
- system.asynchronous_metrics에 쿼리 캐시 메트릭을 추가함
- S3에 백업할 때 s3_storage_class 매개변수를 상요 가능하도록 함
- 백업 메타데이터 파일을 파싱하고 백업 정보를 출력하는 유틸리티를 추가함
- 대소문자를 구분하지 않는 database 및 table 이름 처리를 위한 information_schema 데이터베이스를 개선함
- CHECK TABLE 성능 및 사용성을 향상함
- 튜플에 대한 모듈로 intDiv, intDivOrZero 연산 지원을 추가함
- clickhouse-client가 XML 후에 기본 yaml 및 yml 설정을 검색할 수 있도록 변경함
- non-'clickhouse' 루트 구성과의 병합 시 다른 루트 노드 이름을 가진 구성을 건너뛰는 문제를 수정함
- 메모리 프로파일러 샘플링을 위한 할당 크기의 최소 및최대 지정이 가능하도록 함
- 정밀한 부동 소수점 파싱을 위한 설정을 추가함
- clickhosue-keeper의 기본 경로 설정을 개선함
- remote 테이블 함수에 대한 오류 메시지를 개선함
- 복원 쿼리의 SETTINGS 절에서 사용자 정의 스토리지 정책 지정을 추가함
- 백업 작업에서 S3 요청 조절 기능을 추가함
- 복제된 사용자 정의 함수 또는 접근 제어 엔터티 관리를 위한 ON CLUSTER절 무시 설정을 추가함
- JOIN 단계에 대한 EXPLAIN 작업을 추가함
- 파일 시스템 캐시 경로 제한 기능을 추가함
- Clickhouse 디버깅을 위한 사용자 정의 명령을 추가함
- 스키마 추론 중에 파일 이름에 대한 진단 정보를 추가함
- 클라이언트가 주 연결을 사용하여 제안을 로드하는 기능을 추가함
- SYSTEM STOP/START LISTEN QUERIES에 EXCEPT 절을 추가함
- 동시 쿼리 수의 기본값을 100에서 1000으로 변경함
- 동시 백그라운드 파티션 최적화 병합의 수를 제한함
- 복제된 DB에서 테이블 데이터 디렉토리를 휴지통으로 이동할 수 있는 설정을 추가함
- 서버 설정 오류에 대해 깔끔하게 실패 처리하도록 개선함
- clickhouse 서버가 cgroups를 통해 변경된 메모리 제한을 적용하도록 함
- 분산 테이블의 플러시 비활성화 가능하도록 함
- domainRFC 함수가 IPv6 주소를 지원하도록 함
- s3 CopyObject 요청에 대한 타임아웃을 연장하도록 함
- groupArray 함수의 직렬화 시 배열 크기 제한 설정을 추가함
- SCHEMA를 DATABASE의 별칭으로 추가하여 MySQL 호환성을 개선함
- 시스템 데이터베이스 내 테이블에 대한 비동기 메트릭을 추가함
- Play UI 및 대시보드의 SQL 에디터가 Grammarly를 사용하지 않도록 설정함
- 인덱스의 마크/압축 캐시의 크기 비율 및 캐시 정책을 전문가 수준에서 설정 가능하도록 함
- TCPHandler에서 쿼리 패킷의 클라이언트 정보 검증을 추가함
- keeper 클라이언트가 clickhouse의 config.xml에서 연결 문자열 검색을 시도하도록 함
- MergeTree 테이블 엔진군에서 데이터 부분(part) 잠금 유지 시간을 보여주는 profile event를 추가함
Build/Testing/Packaging Improvement
- clickhouse start 명령어에서 환경 변수를 유지하도록 함
Bug Fix
- Annoy 인덱스를 빌드업하는 동안 여러 마크가 있을 때 리셋하지 않도록함. 이는 실험적인 기능임
- RESTORE 작업 중에 임시 디렉토리의 사용을 수정함
- Nullable(IPv4) 타입에 대한 이진 산술 연산이 수정됨
- IPv4 및 IPv6 데이터 타입을 사전 속성으로 지원함
- 압축 마크의 체크섬에 대해 수정됨
- 실행 가능한 사용자 정의 함수에 대해 매개변수가 있을 때 예외를 던지지 않도록 함
- ALTER DELETE 쿼리에서 스킵 인덱스와 프로젝션의 재계산을 수정함
- clickhouse 방언으로만 제안을 로드하도록 함
- OR 표현식을 사용한 가상 컬럼으로 필터링할 때의 문제를 수정함
- 하나의 sparse 컬럼 인수를 가진 함수 튜플에서 발생할 수 있는 충돌을 수정함
- 클러스터에서 명명된 컬렉션을 올바르게 읽을 수 있도록 수정함
- 다단계 PREWHERE에서 불필요한 컬럼을 읽는 문제를 수정함
- null first 방향으로 여러 컬럼을 정렬할 때 예상치 못한 결과를 수정함
- Keeper 재구성 과정에서 발생할 수 있는 데이터 경쟁 문제를 수정함
- session_log 테이블에 대한 새로운 테스트를 추가하고 로그인과 로그아웃 사이의 불일치를 수정함
- 비동기 flush 쿼리를 사용할 때 part_log의 query_id를 올바르게 처리하도록 수정함
- 캐시로부터 "Read unexpected size"라는 오류 메시지를 받는 문제를 수정함
- PostgreSQL 엔진에서 문자 이스케이핑을 올바르게 처리하도록 수정함
- 병렬 FINAL을 사용한 쿼리를 실행할 때 컬럼 순서가 잘못되는 문제를 수정함
- ReplacingMergeTree에서 do_not_merge_across_partitions_select_final 옵션을 사용할 때 발생할 수 있는 SELECT 쿼리의 문제를 수정함
- 시스템 종료 시 비동기 삽입 큐를 먼저 플러시하도록 수정함
- UPDATE 및 DELETE 쿼리의 조건에서 JSON 서브컬럼을 사용할 때 발생할 수 있는 버그를 수정함
- full_sorting_merge 조인을 사용할 때 필터 푸시다운을 올바르게 처리하도록 수정함
- PostgreSQL 엔진을 사용할 때 발생할 수 있는 세그폴트(메모리 접근 오류)를 수정함
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 23.10 Release note 요약 (0) | 2024.05.25 |
---|---|
[Clickhouse] Ver. 23.9 Release note 요약 (0) | 2024.05.24 |
[Clickhouse] Ver. 23.7 Release note 요약 (0) | 2024.05.22 |
[Clickhouse] Ver. 23.6 Release note 요약 (0) | 2024.05.21 |
[Clickhouse] Ver. 23.5 Release note 요약 (0) | 2024.05.20 |