728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Upgrade Notes
- -
Backward Incompatible Change
- 파손된 데이터 파트를 자동으로 제거하는 옵션을 제거함
- 이전에 구성된 인메모리 데이터 파트는 더이상 Write_Ahead Log에서 읽을 수 없게 됨
- Meilisearch와의 통합이 제거됨
- 디렉토리 모니터 개념이 백그라운드 INSERT로 이름이 변경됨
- 클라이언트 측에서 설정된 send_timeout을 서버 측의 receive_timeout으로 해석하지 않게 되었고 그 반대도 마찬가지임
- 다른 단위를 가진 시간 간격의 비교는 예외를 발생시키도록 함
- 실험적인 S3Queue 테이블 엔진이 완전히 재작성됨
- HTTP 엔드포인트의 임의 경로가 더이상 /query 엔드포인트의 요청으로 해석되지 않음
New Feature
- 여러 배열에 람다 함수 적용을 위한 arrayFold 함수를 추가함
- Npy 포맷 지원이 추가됨
- 공간 채우기 곡선 키를 사용한 테이블의 인덱싱을 개선함
- 특정 프로젝션 최적화의 강제 설정을 추가함
- 외부 데이터를 통한 비동기 삽입이 지원됨
- 시각화 데이터 다운샘플링을 위한 lttb 집계 함수를 추가함
- CHECK TABLE의 성능 및 사용성이 개선됨
- JSON 데이터 병합을 위한 jsonMergePatch 함수를 추가함
- Kusto Query Language 방언 지원의 두 번째 부분이 추가됨
- 배열에서 무작위 샘플을 반환하는 arrayRandomSample 함수가 추가됨
ArgMin/ArgMax 집계 조합자 소개로 최소/최대 값만으로 집계가 가능하도록 함- Protobuf 포맷의 캐시를 삭제할 수 있도록 지원함
- 외부 HTTP Basic 인증기가 추가됨
- 부호가 없는 정수의 바이트를 반전시키는 byteSwap 함수가 추가됨
- SQL 쿼리 문자열의 포맷팅 버전을 반환하는 formatQuery 함수가 추가됨
- ELF 실행 파일/라이브러리/객체 파일에서 디버그 심볼을 읽는 DWARF 입력 포맷을 추가함
- RabbitMQ, NATS, FileLog 엔진에서 파싱 실패한 레코드와 오류를 저장할 수 있도록 지원함
- 모든 자식 노드 수를 반환하여 Keeper 클라이언트를 개선함
- 설정 조회를 위한 SHOW SETTING 문을 추가함
- system.parts_columns 테이블에 서브스트림과 파일명 필드를 추가함
- SHOW MERGES 쿼리 지원을 추가함
- 기본적으로 빈 기본 키로 테이블 생성을 설정할 수 있는 옵션이 추가됨
Performance Improvement
- 윈도우 함수 평가 후에 병렬 스트림 처리를 허용하기 위한 스트림 수를 보존하는 옵션을 추가함
- 데이터가 작을 경우 더 많은 스트림을 해제할 수 있도록 함
- RoaringBitmaps를 직렬화 전에 최적화할 수 있도록 함
- 반복 데이터에 따라 역색인의 공간 소비를 크게 줄일 수 있는 내부 비트맵을 최적화함
- Context 잠금에 대한 경합 수정으로 짧은 실행 시간의 동시 쿼리 성능을 개선함
- 역색인 생성 성능을 30% 개선함
- rowgroup 수준의 ORC 필터 다운 푸시 지원함
- 많은 임시 파일을 사용하는 외부 집계 성능을 개선함
- 기본적으로 이차 인덱스에 대한 마크 캐시의 크기를 적절하게 설정하여 반복적인 로딩을 방지하도록 함
- 스킵 인덱스를 읽을 때 불필요한 인덱스 그래뉼의 재구성을 방지하도록 함
- 실행 중에 CAST 함수 캐싱으로 IN 함수 성능을 개선함
- ColumnVector::insertMany 및 ColumnVector::insertManyFrom의 성능을 개선함
- Map 구독 연산을 최적화함
- Parquet에서 구조체 필드의 프루닝 지원을 개선함
- 쿼리 실행 시 병렬 복제본 수를 조정할 수 있는 기능을 추가함
- 많은 임시 파일이 생성된 경우 외부 집계 메모리 소비를 최적화함
- 비동기 소켓 모드에서 실행되는 분산 쿼리가 max_threads 제한을 준수하도록 개선함
- Zookeeper 분산 DDL 큐에서 DDL 실행 시 스킵 가능한 항목을 캐싱함
- 실험적인 역색인에서 너무 많은 일치를 가진 토큰을 저장하지 않도록 함
- EmbeddedRocksDB 테이블의 쓰기 성능이 개선됨
- 파티션 내 많은 파트가 있는 경우 Clickhouse의 전반적인 복원력을 개선함
- 계층적 사전의 메모리 소비를 감소함
- 모든 사전에 dictionary_use_async_executor 설정을 지원함
- AggregateFunctionTokKGenericData 역직렬화 시 메모리 사용을 과다하게 하는 것을 방지하도록 함
- Keeper에서 많은 감시가 있을 때 AsyncMetrics 스레드의 CPU 사용률을 감소시킴
- EmbeddedRocksDB 저장소에 대한 근사 count 쿼리 최적화 설정을 추가함
Experimental Feature
- -
Improvement
- 문자열 인자를 지원하는 날짜 함수를 추가함
- 날짜, 시간 형변환 오버플로우 동작 설정을 추가함
- ALTER TABLE B.. 쿼리에서 쿼리 파라미터 지원을 구현함
- EXPLAIN에서 프로세서 ID를 더 예쁘게 출력함
- 직접 사전 생성시에 수명 필드를 거부할 수 있도록 함
- 파티션 쿼리에 파라미터를 허용하도록 함
- system.zookeeper_connection에 xid 컬럼을 추가함
- 설정 리로드 후 system.server_settings엣서 올바른 서버 설정을 표시하도록 함
- 쿼리에서 수학적 마이너스("-") 문자 지원을 추가함
- 실험적 복제 DB 엔진에 복제 그룹을 추가함
- S3 오류 재시도보다 쿼리 실패를 피하도록 s3_retry_attempts 값을 더 크게 설정함
- 호스트네임 레벤슈타인 거리를 이용한 로드 밸런싱 모드를 추가함
- 로그에서 비밀 정보를 숨기는 기능이 개선됨
- 쿼리 플랜 상단에서만 프로젝션 분석을 수행하도록 함
- DESCRIBE 쿼리 결과에 가상 컬럼 포함 설정을 추가함
- OPTIMIZE 시 topimize_throw_if_noop=1 오류를 개선함
- 동일한 Postgres 테이블을 따르는 여러 MaterializedPostgreSQL 테이블을 허용함
- 짧은 문자열에서 음수 DateTime64 및 DateTime의 분수 부분 파싱을 허용함
- information_schema.tables 및 information_schema.columns을 개선함
- clickhouse-client의 "0 rows in set" 표시를 변경함
- RENAME TABLE 명령에서 TABLE 키워드 없이 테이블 이름을 변경할 수 있도록 함
- system.clusters에 internal_replicaiton을 추가함
- 프록시 설정 개선 및 문서를 추가함
- 테입블 종료 후에 INSERT에 대한 keeper 작업 재시도를 방지함
- SHOW COLUMNS 및 관련 설정에 대해 개선을 함
- ReplicatedMergeTree 테이블 시작 시에 예상치 못한 파트에 대한 체크 및 복구를 개선함
- 고급 대시보드가 이제 터치 기기에서 차트를 드래그하는 것을 지원함
- 기본 쿼리 형식을 사용하여 예외 출력을 설정할 수 있도록 함
- MATERIALIZED VIEW 관련 일반적인 문제에 대한 개선된 메시지를 제공하도록 함
- 현재 DB를 삭제한 후에도 몇 가지 쿼리 실행 및 DB 전환을 가능하도록 함
- 문자열 인자를 지원하는 날짜 및 시간 함수를 확장함
- 간단한 DELETE 쿼리로 삭제된 행을 읽을 수 있는 apply_delete_mask 설정을 추가함
- JSON 객체로 Tuple을 직렬화할 때 null 값을 건너뛸 수 있는 기능을 추가함
- 문자열 인코딩 날짜 인자를 지원하는 날짜 함수를 확장함
- CSV 형식에서 CR (\r)을 포함한 비따옴표 문자열을 허용함
- 내장 구성을 사용하여 clickhouse-keeper 실행이 가능하도록 함
- Kafka와의 데이터 fetching 시작 문제를 방지하기 위한 최대 구성값 제한을 설정함
- minSampleSizeContinous 함수의 오타 수정 및 이전 이름을 유지함
- 서버 종료 전에 디스크에 손상된 파트 경로를 출력하도록 함
Build/Testing/Packaging Improvement
- 도커 내 DB 초기화 절차를 개선함
Bug Fix
- 역색인 파일의 하드링킹 스킵을 변경함
- 정규 표현식과 match 함수 관련 버그를 수정함
- ARRAY JOIN을 사용한 최적화에서 'Cannot find column' 오류가 수정됨
- accurateCastOrNull에 대한 수정을 다시 추가함
- AS 없이 생성된 Distributed 테이블의 컬럼에 대한 DEFAULT 감지를 수정함
- LDAP 할당된 역할 업데이트에서의 데드락을 수정함
- 내부 예외에 대한 오류 통계 업데이트를 억제함
- 백업 중에 데드락을 수정함
- Iceberg 파일 검색을 수정함
- 세트 내 추가 컬럼에 대한 파티션 프루닝을 수정함
- ALTER UPDATE 쿼리에서 스킵 인덱스의 재계산을 수정함
- 백그라운드 다운로드에서 파일 시스템 캐시를 수정함
- 압축기에서 버퍼 최종화 누락 시 메모리 누수 가능성을 방지함
- 희소 컬럼(sparse 컬럼)에 대한 함수 실행을 수정함
- 'SELECT FINAL FROM SummingMergeTree'에서 'Nested' 병합 오류를 수정함
- S3를 기반으로 한 복제된 병합 트리에서 분리된 파티션 삭제 불가능 오류가 수정됨
- MergeSortingPartialResultTransform에서의 충돌을 수정함
- CreatingSetsTransform에서의 데이터 레이스를 수정함
- StorageHDFS에서의 메모리 누수를 수정함
- 배열 캐스트 연산자의 파싱 오류를 수정함
- 가상 컬럼에 OR 필터를 사용한 쿼리의 필터링 오류를 수정함
- MongoDB와의 연결 문제를 수정함
- MySQL 인터페이스에서 불리언 값의 표현 방식을 수정함
- SHOW COLUMNS 명령어에만 use_mysql_types_in_show_columns를 적용하도록 수정함
- 커스텀 HTTP 핸들러와 쿼리 파라미터 동작 문제를 수정함
- Values 포맷에 대한 비처리 데이터 검사를 수정함
- ODBC를 통한 MS SQL Server 상호작용에서 'Invalid cursor state' 오류를 수정함
- 최대 실행 시간 초과 및 'break' 오버플로 모드를 수정함
- QueryNormailizer에서 순환 별칭으로 인한 충돌을 수정함
- 잘못된 최적화를 비활성화하고 테스트를 추가함
- 쿼리에서 OR 필터를 사용하여 가상 컬럼을 필터링하는 과정의 오류를 재수정함
- Iceberg 스토리지 기능에 대한 여러 수정 및 개선을 도입함
- CreatingSetsTransform에서 발생할 수 있는 데이터 레이스 문제의 추가 수정을 진행함
- precise_float_parsing 설정이 true로 설된 경우 부적합한 문자열을 부동소수점으로 파싱하려고 할 때 예외를 발생시키도록 변경함
- CTE에 상태를 가진 함수가 포함되어 있을 경우 조건부 하향식 최적화를 비활성화하도록 함
- ASTSElectWithUnionQuery의 정규화 과정에서 쿼리에서 FORMAT을 잘못 제거하는 문제를 수정함
- Native ORC 입력 포맷 사용 시 발생할 수 있는 잠재적인 세그먼트 오류 수정을 시도함
- 희소(sparse) 컬럼을 사용할 때 윈도우 함수의 처리를 수정함
- StorageNull이 서브컬럼을 지원하도록 수정함
- 복제된 변형/병합 작업 중 발생하는 재시도 가능한 오류를 오류 로그에 기록하지 않도록 수정함
- SHOW DATABASE LIMIT <N> 쿼리의 처리를 수정함
- dateTime64ToSnowFlake64() 함수에서 비기본 스케일을 가진 경우의 처리를 수정함
- Arrow 포맷에서 사전 컬럼의 입출력 처리를 수정함
- 스키마 레지스트리에서 AvroConfluent 형식의 스키마를 가져올 때 발생하는 문제를 수정함
- Buffer 테이블에서 동시에 ALTER와 INSERT 작업을 수행할 때 발생할 수 있는 'Block structure mismatch' 오류를 수정함
- 최소 사용 공간(JBOD) 정책을 사용할 때 발생하는 공간 계산 오류를 수정함
- 테이블 함수 내에서 서브쿼리를 평가할 때 스칼라 값이 누락되는 문제를 수정함
- http_write_exception_in_output_format=1 설정이 활성화된 경우 잘못된 쿼리 결과를 반환하는 문제를 수정함
- JSON→JSONEachrow 변환에 대한 설정이 변경될 때 스킴 ㅏ캐시 처리를 수정함
- odbc-bridge에 오류 핸들러를 추가함
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 23.12 Release note 요약 (0) | 2024.05.27 |
---|---|
[Clickhouse] Ver. 23.11 Release note 요약 (0) | 2024.05.26 |
[Clickhouse] Ver. 23.9 Release note 요약 (0) | 2024.05.24 |
[Clickhouse] Ver. 23.8 Release note 요약 (0) | 2024.05.23 |
[Clickhouse] Ver. 23.7 Release note 요약 (0) | 2024.05.22 |