본문 바로가기
CDBMS/Clickhouse

[Clickhouse] Ver. 21.10 Release note 요약

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

목적

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

 

읽기 전에

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

 

Backward Incompatible Change

  • Ver. 21.10
    • MergeTree 테이블 레벨 설정이 아래와 같이 변경됨
      • 변경 전 삭제 대상 파라미터 목록
        • replicated_max_parallel_sends
        • replicated_max_parallel_sends_for_table
        • replicated_max_parallel_fetches
        • replicated_max_parallel_fetches_for_table
      • 변경 후 파라미터
        • max_replicated_fetches_network_bandwidth
        • max_replicated_sends_network-bandwidth
        • background_fetches_pool_size

 

New Feature

  • Ver. 21.10
    • 람다 표현식을 이용하여 사용자 정의 함수(UDF)가 추가됨
      • 문법 : CREATE FUNCTION {function_name} as ({parameters]) → {function core}
      • 에시 : CREATE FUNCTION plus_one as (a) → a + 1
    • Executable 스토리지 엔진과 executable 테이블 함수가 추가됨. 이는 스트리밍 방식으로 외부 스크립트에 대한 데이터 처리가 가능함
    • ExecutablePool 스토리지 엔진이 추가됨. 이는 Executable과 유사하나 길게 실행 중인 프로세스의 pool을 사용함
    • ALTER TABLE ... MATERIALIZE COLUMN 쿼리가 추가됨
    • 데이터 import/export 시 lz4 압축 형식(gz, bz2, xz, zstd 뿐만 아니라)이 지원됨
    • enable_positional_arguments 파라미터를 통해 positional arguments가 가능함
    • SHA512 함수가 추가됨
    • user가 system.query_log 시스템 테이블에 쿼리 샘플만 기입할 수 있도록 log_queries_probability 파라미터가 추가됨
    • system.replicas 시스템 테이블에 last_queue_update_exception 컬럼이 추가됨
    • 첫 번째 서버 시작 시 유일한 서버 UUID가 발생됨
    • MySQL 엔진에 connection_wait_timeout(default는 5초, 0은 기다리지 않음) 파라미터가 추가됨
    • PostgreSQL 테이블 엔진이나 테이블 함수에 삽입 시 ON CONFLICT 항목이 추가됨
    • 호환 가능한 데이터를 attach하도록 Enum 데이터 타입의 제한이 낮아짐
    • replication_wait_for_inactive_replica_timeout 파라미터가 추가됨. 이 기능은 비활성 replica가 ALTER/OPTIMIZE/TURNCATE 쿼리를 실행하는 데 걸리는 시간을 제어(기본값 120초)함. 만약 replication_alter_partitions_sync=2고 일부 replica가 replication_wiat_for_inactive_replica_timeout 초 이상 비활성화되면 "UNFINISHED" 문구가 반환됨
    • APPLY 컬럼 변환기는 람다 인자를 통해 하나 이상의 인자를 받을 수 있음
    • tcp_keep_alive_timeout 파라미터가 기본적으로 활성화됨

 

Bug Fix

  • Ver. 21.10
    • 널 허용 컬럼에서 조인되지 않은 행의 잘못된 동작이 수정됨
    • 신규 part가 비어있는 part로 교체되었던 적이 있으면 part가 교차되는 버그가 수정됨
    • optimize_read_in_order 파라미터가 활성화되었을 때 ORDER BY를 사용한 Merge 테이블의 쿼리가 일관적이지 않은 결과를 반환하는 버그가 수정됨
    • rotate_logs_interval이 감소했을 때 clickhouse-keepeer가 끊임없이 기록하는 버그가 수정됨

 

Improvement

  • Ver. 21.10
    • 비어 있는 속성 목록으로 딕셔너리를 생성할 수 있음
    • Add new column last_queue_update_exception to system.replicas table

 

Performance Improvement

  • Ver. 21.10
    • sumIf, countIf 집계 함수의 속도가 개선됨
    • 테이블 시작 프로세스를 지연시켜 data parts 로딩 속도를 개선함
    • optimize_distributed_group_by_sharding_key가 기본적으로 활성화됨

 

Experimental Feature

  • Ver. 21.10
    • BACKUP/RESTORE 명령어가 추가됨

 

Build/Testing/Packaging Improvement

  • Ver. 21.10
    • 테스트 환경에 test 라는 로그 레벨이 추가됨. 이는 trace보다 더 상세함

 

  •  

참고

728x90
반응형