Skip to main content
ClickHouse Connect는 고급 활용 사례를 위한 다양한 추가 옵션을 제공합니다.

전역 설정

ClickHouse Connect의 동작을 전역적으로 제어하는 몇 가지 설정이 있습니다. 이러한 설정은 최상위 common package에서 액세스할 수 있습니다:
클라이언트를 생성하기 전에 클라이언트 생성 설정을 구성하십시오. 생성된 session/query ID 및 제품 식별과 같은 설정은 클라이언트별 상태에 복사되므로, 이후 전역적으로 변경해도 기존 클라이언트에는 반영되지 않습니다. 바인딩 및 삽입 설정은 이와 다릅니다. naive_datetime_bindingdict_parameter_format은 매개변수를 바인딩할 때 읽습니다. naive_datetime_insert는 Python datetime 객체 또는 DateTime64 ISO 문자열이 포함된 네이티브 삽입 컬럼을 직렬화할 때 읽습니다. 이러한 설정을 변경하면 기존 클라이언트에도 영향을 미칩니다. 재사용 가능한 삽입 컨텍스트는 삽입할 때마다 현재 naive_datetime_insert 값을 사용합니다.
현재 다음 전역 설정이 정의되어 있습니다.

압축

ClickHouse Connect는 lz4, zstd, brotli, gzip, deflate 응답 압축을 지원합니다. 네이티브 삽입은 lz4, zstd, brotli, gzip을 지원합니다. 압축을 사용하면 네트워크 전송량을 줄이는 대신 CPU 시간을 더 사용합니다. 압축된 데이터를 받으려면 ClickHouse 서버의 enable_http_compression이 1로 설정되어 있어야 하거나, 사용자가 쿼리별로 이 설정을 변경할 권한을 가지고 있어야 합니다. 압축은 get_clientget_async_clientcompress 인수로 제어합니다. 기본값 True는 사용 가능한 모든 응답 인코딩을 알리고, 네이티브 삽입 블록을 lz4로 압축합니다. 압축을 비활성화하려면 compress=False로 설정하고, 특정 메서드를 요청하려면 "lz4", "zstd", "br", "gzip" 중 하나를 전달하십시오. raw 클라이언트 메서드는 클라이언트 수준의 compress 설정을 사용하지 않습니다. raw_queryraw_stream은 비압축 데이터를 반환하며, raw_insert는 payload에 이미 적용된 압축을 설명하는 자체 compression 인수를 받습니다. lz4 및 zstd 지원은 ClickHouse Connect와 함께 설치됩니다. Python 3.14에서는 zstd가 표준 라이브러리 compression.zstd 모듈을 사용합니다. Python 3.10부터 3.13까지는 backports.zstd를 사용합니다. zstd 지원 없이 빌드된 사용자 지정 CPython 3.14+ 인터프리터도 가져오기는 가능하지만, 이 경우 zstd는 사용 가능한 메서드에서 제외되며 zstd를 명시적으로 요청할 때만 오류가 발생합니다. Brotli는 선택 사항이므로 compress="br"를 사용하기 전에 별도로 설치해야 합니다. ClickHouse 워크로드에서는 일반적으로 gzip이 lz4 또는 zstd보다 느립니다.

HTTP 프록시 지원

ClickHouse Connect는 표준 HTTP_PROXYHTTPS_PROXY 환경 변수를 인식합니다. 이 변수들은 해당 프로세스의 모든 클라이언트에 적용됩니다. 클라이언트별로 프록시를 구성하려면 http_proxy 또는 https_proxyget_client 또는 get_async_client에 전달하세요. 동기 클라이언트는 urllib3를 사용합니다. SOCKS 프록시를 사용하려면 PySocks를 설치한 다음, urllib3.contrib.socks.SOCKSProxyManagerpool_mgr 인수로 get_client에 전달하세요. pool_mgr는 async 클라이언트에서 지원되지 않습니다.

Variant, Dynamic, 및 JSON 데이터 타입

ClickHouse Connect는 현재 ClickHouse의 Variant, Dynamic, JSON 데이터 타입을 지원합니다. 이전 Object('json') 타입은 clickhouse-connect 0.14에서 제거되었으며 현재는 지원되지 않습니다.

사용 시 참고 사항

  • Variant 값은 해당 Python 타입으로 읽힙니다. 네이티브 삽입에서는 Python 값의 타입에 따라 멤버를 선택합니다.
  • 여러 Variant 멤버가 동일한 Python 타입에 매핑되는 경우, 멤버를 명시적으로 선택하려면 값을 clickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName")로 감싸십시오.
  • typed Variant 읽기 포맷은 TypedVariant(value, type_name) 객체를 반환하며, 원래 멤버 타입을 유지합니다. query_formats={"Variant": "typed"}로 활성화하십시오.
  • Dynamic 값은 해당 Python 타입으로 읽힙니다. 현재 삽입은 String 표현을 통해 전송됩니다.
  • JSON 값은 Python 딕셔너리 또는 JSON 객체 문자열로 삽입할 수 있습니다. 기본 읽기 포맷은 딕셔너리를 반환하며, JSON 문자열을 반환하려면 "string" 읽기 포맷을 사용하십시오.
  • Variant, Dynamic 또는 JSON 서브컬럼(subcolumn)을 선택하는 쿼리는 해당 서브컬럼의 구체적인 타입을 반환합니다.
JSON 또는 Dynamic 컬럼의 shared-data 영역에 저장된 일부 값은 클라이언트가 아직 디코딩할 수 없는 타입을 사용합니다. 이러한 값은 원시 바이트(raw bytes)로 반환됩니다. 이러한 복합 타입은 pure Python 변환 경로도 사용하므로, 일반적인 스칼라 타입보다 더 느릴 수 있습니다.
마지막 수정일 2026년 8월 14일