본문 바로가기
CDBMS/Clickhouse

[Clickhouse] Ver. 21.12 Release note 요약

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

목적

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

 

읽기 전에

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

 

Backward Incompatible Change

  • Ver. 21.12
    • Kafka/RabbitMQ/FileLog에 직접적인 select가 허용되지 않음. 직접적으로 select 하고 싶을 경우 사용자는 스토리지 레벨에서 kafka{rabbitmq}_commit_on_select=1(기본값은 0)로 설정해야 함
    • 아래와 같이 일부 파라미터의 이름이 변경됨
        • output_format_csv_null_representation
        • output_format_tsv_null_representation
        • format_csv_null_representation
        • format_tsv_null_representation
    • ReplicatedMergeTree에서 리더 선출 메커니즘이 제거됨. 왜냐하면 20.6부터 다중 리더가 지원되기 때문. 하지만 우리 서비스는 20.6이 최소이므로 해당 사항 없음

 

New Feature

  • Ver. 21.12
    • Bool 데이터 타입이 지원됨
    • File, URL, HDFS 스토리지 및 INSERT INTO 테이블 함수에서 PARTITION BY가 지원됨
    • WITH FILL 수정자에 대해 STEP 항목에 INTERVAL 타입이 지원됨
    • 설정 파일에 있는 전역 스레드 풀의 모든 설정을 노출함
    • LZ4를 사용하여 파일에 쓰기 전에 로그를 압축하는 기능이 추가됨
    • CROSS JOIN 의미상의 JOIN ON 1=1가 지원됨(JOIN 표현식으로 CROSS 조인을 구현하겠다는 뜻인듯)

 

Bug Fix

  • Ver. 21.12
    • group by/order by/limit에 위치 인수가 활성화됨(order by 1, 2을 의미하는 듯)
    • Dictionary 테이블이 같은 이름인 XML-dictionary을 보는 경우 "Cannot attach 1 tables due to cyclic dependencies" 에러가 발생하며 서버가 시작될 수 없는 버그가 수정됨
    • 만약 replicated_can_become_leader가 일부 replica에서 비활성화되었다면 quorum으로 삽입 시 활동중인 replica의 수가 잘못 결정되는 버그가 수정됨
    • part를 detach할 때 "Directory ... already exists and is not empty" 에러가 발생하는 버그가 수정됨
    • SQL 내 재귀적인 UDF의 충돌이 발생하는 버그가 수정됨
    • 동시에 ATTACH PARTITION 쿼리 수행 시 드물게 segfault가 발생하는 버그가 수정됨
    • 명시된 클러스터 이름이 Replicated 데이터베이스의 이름일 경우 ON CLUSTER 쿼리 시 "there are no such cluster here" 에러가 반환되는 버그가 수정됨
    • MATERIALIZE COLUMN 내 널 포인터 에러가 수정됨
    • 인덱스 분석에서 notLike 함수가 잘못 수행 되어 제거됨

 

Improvement

  • Ver. 21.12
    • PostgreSQL 스타일인 ALTER MODIFY COLUMN 구문이 지원됨
    • clickhouse-keeper는 중복된 ID나 엔드포인트를 포함할 때 설정 변경을 적용하거나 시작하는 것을 거절함
    • 해당 매크로가 설정 파일에 없는 상태에서 ReplicatedMergeTree 인자에 매크로를 확장할 때 Replicated 데이터베이스 인자의 샤드와 replica 이름을 사용함
    • http_send_timeout, http_receive_timeout의 기본값을 1800(30분)에서 180(3분)으로 변경
    • 시스템 테이블에 SHOW CREATE TABLE 사용 시 인위적인 생성 쿼리가 반환됨
    • 초기 사용자의 role은 row policies를 찾는데 사용됨
    • 사용되지 않는 설정이 변경된 경우 system.warnings 시스템 테이블에 경고가 보여짐
    • IF EXISTS 수정자가 RENAME DATATBASE/TABLE/DICTRIONARY 쿼리에 지원됨
    • clickhouse-keeper 내부 통신을 위한 기본 포트가 44444에서 9234로 변경됨

 

Performance Improvement

  • Ver. 21.12
    • JOIN ON, ref에서 상수 조건에 대한 최적화가 추가됨
    • avg, sumCount 집계 함수의 성능이 개선됨
    • JSON, XML 출력 포맷에 대한 성능이 개선됨
    • 쿼리 파싱 성능이 개선됨

 

Experimental Feature

  • Ver. 21.12
    • 클릭하우스 내에서 WINDOW VIEW가 스트림 처리 가능하게 됨
    • Log군에 대한 BACKUP/RESTORE 명령어가 구현됨

 

Build/Testing/Packaging Improvement

  • Ver. 21.12
    • -

 

참고

728x90
반응형