본문 바로가기
CDBMS/Clickhouse

[Clickhouse] Ver. 22.1 Release note 요약

by 연습장이 2024. 4. 21.
728x90
반응형

목적

  • upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
  • 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련

 

읽기 전에

  • 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
  • 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
  • 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음

 

Backward Incompatible Change

  • Ver. 22.1
    • left, right 함수가 이전 버전에서는 파서에만 구현되었으나 이제 완전한 기능을 갖춤. 따라서 서로 다른 클릭하우스 서버 버전이 포함된 클러스터 내에서 분산 테이블에 별칭 없이 이 함수를 쿼리에 사용할 경우 에러가 발생함
    • 스칼라 서브쿼리의 자원 사용이 이제 완전히 설명됨(추적이 가능하다는 의미인듯). system.query_log에 스칼라 서브쿼리에서 읽은 행 수를 확인할 수 있음. 진행중인 스칼라 서브쿼리 kill이 가능함

 

New Feature

  • Ver. 22.1
    • replica를 새로 추가할 경우 File, HDFS, Merge, Buffer, Distributed, ReplicatedMergeTree 테이블 엔진에 대한 create 쿼리에서 구조를 건너뛸 수 있음
    • 모든 view 종류에 대해 CREATE VIEW 구문에 COMMENT를 추가할 수 있음
    • 설정을 변경할 경우 동적으로 listening 포트와 프로토콜을 재초기화할 수 있음
    • MONTHNAME 함수가 추가됨

 

Bug Fix

  • Ver. 22.1
    • SYSTEM SUSPEND와 SYSTEM ... THREAD FUZZER가 접근 제어를 놓치는 버그가 수정됨
    • system.tables, system.dictionaries 시스템 테이블에 딕셔너리에 대한 코멘트가 보이지 않는 버그가 수정됨
    • async_insert 파라미터가 활성화된 상태에서 비동기 삽입이 쿼리 로그에 추가됨
    • replaceRegexpAll 함수의 회귀가 수정됨. 이 함수는 매치된 substring이 비어있으면 잘못 동작함
    • 매우 많은 mutation이 실행중이거나 메모리 소비가 심한 경우 MergeTree 테이블 엔진이  일부 mutation을 건너뛰는 버그가 수정됨
    • CustomSeparated, Template, Regexp, MsgPack, JSONAsString 타입으로 비동기 삽입 시 데이터를 읽을 수 없는 버그가 수정됨
    • 동일한 열에 2개 이상의 row 정책이 있을 경우 broken select 쿼리를 수정함. 같은 세션에 두 번째 쿼리부터 시작함.
    • DROP TABLE system.query_log sync 명령어 수행 시 행이 걸리는 버그가 수정됨

 

Improvement

  • Ver. 22.1
    • 1970-01-01 00:00:00 이전에 발생된 DATE TIME 변환 함수는 오버플로우 대신 0으로 채우게 됨
    • 클라이언트 내 전체 cpu 사용량, 전체 ram 사용량, 호스트별 최대 ram 사용량의 자원 사용량이 항상 보여짐
    • Materialized View에 가상 열을 사용할 수 있음
    • 현재 git revision에 대한 system.build_options 시스템 테이블의 정보가 더 추가됨
    • 클러스터 구성 내 <secure>1</secure> 형식 대신 <secure/>이 지원됨
    • Ctrl+C를 두번 누르면 진행 중인 쿼리를 기다리지 않고 clickhouse-benchmark를 즉시 종료함
    • 서브쿼리를 UDF처럼 구현하는 기능이 지원됨. 예를 들어 CREATE FUNCTION test as () → (SELECT 1)로 가능함
    • 서버를 셧다운하거나 테이블을 detach하는 동안 WAL이 사용 불가할 경우 모든 In-Memory 데이터 part를 flush함
    • 쿼리 종류에 따라 동시 쿼리를 제어하는 max_concurrent_select_queries, max_concurrent_insert_queries 파라미터가 추가됨
    • Decimal과 Float 타입 간 비교가 가능해짐
    • part가 이동한 후 system.parts 시스템 테이블 내 data part에 대한 modification_time이 갱신됨

 

Performance Improvement

  • Ver. 22.1
    • 문자열 속성이 있는 딕셔너리에 할당된 메모리가 감소됨
    • 크기 계산 로직의 최적화에 의해 clickhouse-keeper의 쓰기 성능이 개선됨
    • 시스템 테이블의 쿼리 성능이 개선됨

 

Experimental Feature

  • Ver. 22.1
    • 샘플 키 사용 없이 분산 쿼리 수행시 샤드 내에 다중 replica의 병렬 읽기가 가능함. 이 기능은 allow_experimental_parallel_reading_from_replicas=1이고 max_parallel_replicas는 임의 값으로 설정할 경우 활성화됨
    • EXPLIAN TABLE OVERRIDE 쿼리가 추가됨

 

Build/Testing/Packaging Improvement

  • Ver. 22.1
    • 널 허용 pk에 대한 테스트가 더 진행 중임

 

참고

728x90
반응형