Cloud용 v24.8 변경 로그
v24.8 릴리스를 기준으로 한 ClickHouse Cloud 서비스 관련 주요 변경 사항입니다.
하위 호환되지 않는 변경 사항
-
Variant 데이터 타입의 바이너리 직렬화를 변경했습니다. 단일 variant만 있거나 NULL 값만 있는 그래뉼에 대해 동일한 discriminator를 여러 번 기록하지 않도록 compact 모드를 추가했습니다. 기본적으로 활성화된 MergeTree 설정
use_compact_variant_discriminators_serialization을 추가했습니다. Variant 타입은 여전히 실험적이며, 직렬화 방식의 하위 호환되지 않는 변경은 이전에 지원팀과 협력하여 이 기능을 미리 활성화한 경우가 아니라면 영향을 주지 않아야 합니다. #62774 (Kruglov Pavel). -
Replicated 데이터베이스에서
CREATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...구문을 금지했습니다. 이 PR은 여전히 ReplicatedMergeTree를 사용하는 사용자에게만 적용됩니다. #63963 (vdimir). -
메트рик
KeeperOutstandingRequets의 이름을KeeperOutstandingRequests로 변경했습니다. 이는 #66179에서 보고된 오타를 수정한 것입니다. #66206 (Robert Schulze). -
clickhouse-client와clickhouse-local은 이제 기본값으로 multi-query 모드(기존 single-query 모드 대신)를 사용합니다. 예를 들어clickhouse-client -q "SELECT 1; SELECT 2"명령이 이제 동작하며, 이전에는--multiquery(또는-n) 옵션을 추가해야 했습니다. 따라서--multiquery/-n스위치는 더 이상 필요하지 않습니다. multi-query SQL 문에서INSERT쿼리는FORMAT절에 따라 특별히 처리됩니다.FORMAT이 VALUES(가장 일반적인 경우)인 경우,INSERT문 끝은 쿼리 끝의 세미콜론;으로 표시됩니다. 그 외의 모든FORMAT(예: CSV 또는JSONEachRow)에서는 쿼리 끝의 두 개의 개행 문자\n\n이INSERT문 끝을 나타냅니다. #63898 (wxybear). -
이전 버전에서는 LowCardinality 데이터 타입 이름에
WithDictionary를 덧붙여 LowCardinality 데이터 타입에 대한 대체 구문을 사용할 수 있었습니다. 이는 초기 동작 구현이었으며, 문서화되지 않았고 공개적으로 노출되지도 않았습니다. 이제 이 구문은 사용 중단(deprecated)되었습니다. 이 구문을 사용한 경우, 테이블에 대해ALTER를 수행하여 데이터 타입 이름을 LowCardinality로 변경해야 합니다. #66842(Alexey Milovidov). -
분산 대상 테이블과 함께 사용되는 storage
Buffer관련 논리 오류를 수정했습니다. 이는 하위 호환되지 않는 변경입니다. 분산 대상 테이블과 함께Buffer를 사용하는 쿼리는, 해당 테이블이 쿼리 내에 두 번 이상 등장하는 경우(예: self-join) 동작이 중단될 수 있습니다. #67015 (vdimir). -
이전 버전에서는 Gamma 함수에 기반한 랜덤 분포 함수(Chi-Squared, Student, Fisher 등)를 0에 가까운 음수 인수로 호출하면 계산에 오랜 시간이 걸리거나 무한 루프에 빠질 수 있었습니다. 새 버전에서는 이러한 함수들을 0 또는 음수 인수로 호출하면 예외를 발생시킵니다. 이는 #67297을 해결합니다. #67326 (Alexey Milovidov).
-
이전 버전에서는
arrayWithConstant가 매우 큰 배열을 생성하도록 요청될 경우 느릴 수 있었습니다. 새 버전에서는 배열 하나당 1 GB로 제한합니다. 이는 #32754를 해결합니다. #67741 (Alexey Milovidov). -
REPLACE수정자 포매팅을 수정했습니다(괄호 생략을 금지). #67774 (Azat Khuzhin).
New feature
-
tuple함수를 확장하여 쿼리에서 이름이 있는 튜플(named tuple)을 구성할 수 있도록 했습니다. 튜플에서 이름을 추출하는 함수tupleNames를 도입했습니다. #54881 (Amos Bird). -
full_sorting_join알고리즘에서ASOF JOIN을 지원하도록 했습니다. #54493 이슈를 해결합니다. #55051 (vdimir). -
새로운 테이블 함수
fuzzQuery가 추가되었습니다. 이 함수는 지정된 쿼리 문자열을 임의 변형으로 수정할 수 있게 합니다. 예:SELECT query FROM fuzzQuery('SELECT 1');. #62103 (pufit). -
새로운 윈도우 함수
percent_rank를 추가했습니다. #62747 (lgbo). -
clickhouse-client에서 JWT 인증을 지원하도록 했습니다. #62829 (Konstantin Bogdanov). -
SQL 함수
changeYear,changeMonth,changeDay,changeHour,changeMinute,changeSecond를 추가했습니다. 예를 들어,SELECT changeMonth(toDate('2024-06-14'), 7)은(는) 날짜2024-07-14를 반환합니다. #63186 (cucumber95). -
디스크에 주기적으로 플러시되는
system.errors테이블의 오류 값 이력을 포함하는system.error_log를 추가했습니다. #65381 (Pablo Marcos). -
집계 함수
groupConcat을 추가했습니다.arrayStringConcat( groupArray(column), ',')와 거의 동일합니다. 문자열 구분자와 처리할 요소 개수, 이렇게 2개의 파라미터를 받을 수 있습니다. #65451 (Yarik Briukhovetskyi). -
AzureQueue스토리지를 추가했습니다. #65458 (Kseniia Sumarokova). -
Parquet 파일에 페이지 인덱스(page index)를 기록할지 여부를 활성화/비활성화하는 새로운 설정을 추가했습니다. #65475 (lgbo).
-
테이블 함수
file사용 시 디렉터리 경로 끝에 와일드카드*를 자동으로 추가합니다. #66019 (Zhidong (David) Guo). -
비대화형 모드에서 클라이언트에
--memory-usage옵션을 추가했습니다. #66393 (vdimir). -
S3 테이블 엔진용 가상 컬럼
_etag를 추가했습니다. #65312를 수정합니다. #65386 (skyoct) -
이 Pull Request는 서로 다른 엔진(File, URL, S3, AzureBlobStorage, HDFS)에 대해 Hive 스타일 파티셔닝(Hive-style partitioning)을 도입합니다. Hive 스타일 파티셔닝은 데이터를 파티션된 하위 디렉터리로 구성하여 대규모 데이터셋을 효율적으로 쿼리하고 관리할 수 있게 합니다. 현재는 적절한 이름과 데이터를 가진 가상 컬럼만 생성합니다. 후속 PR에서 적절한 데이터 필터링(성능 향상)을 도입할 예정입니다. #65997 (Yarik Briukhovetskyi).
-
Spark 호환성을 위해
printf함수를 추가했습니다. #66257 (李扬). -
함수
readWKTLineString을 사용하여 WKT 포맷의 MULTILINESTRING 지오메트리 읽기를 지원하도록 했습니다. #67647 (Jacob Reckhard). -
쿼리 캐시(query cache)에 태깅(네임스페이스) 메커니즘을 추가했습니다. 동일한 쿼리라도 태그가 다르면 쿼리 캐시에서 서로 다른 것으로 간주합니다. 예:
SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'와SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'는 이제 서로 다른 쿼리 캐시 엔트리를 생성합니다. #68235(sakulali).