전역 설정
common package에서 액세스할 수 있습니다:
클라이언트를 생성하기 전에 클라이언트 생성 설정을 구성하십시오. 생성된 session/query ID 및 제품 식별과 같은 설정은 클라이언트별 상태에 복사되므로, 이후 전역적으로 변경해도 기존 클라이언트에는 반영되지 않습니다. 바인딩 및 삽입 설정은 이와 다릅니다.
naive_datetime_binding 및 dict_parameter_format은 매개변수를 바인딩할 때 읽습니다. naive_datetime_insert는 Python datetime 객체 또는 DateTime64 ISO 문자열이 포함된 네이티브 삽입 컬럼을 직렬화할 때 읽습니다. 이러한 설정을 변경하면 기존 클라이언트에도 영향을 미칩니다. 재사용 가능한 삽입 컨텍스트는 삽입할 때마다 현재 naive_datetime_insert 값을 사용합니다.압축
enable_http_compression이 1로 설정되어 있어야 하거나, 사용자가 쿼리별로 이 설정을 변경할 권한을 가지고 있어야 합니다.
압축은 get_client 및 get_async_client의 compress 인수로 제어합니다. 기본값 True는 사용 가능한 모든 응답 인코딩을 알리고, 네이티브 삽입 블록을 lz4로 압축합니다. 압축을 비활성화하려면 compress=False로 설정하고, 특정 메서드를 요청하려면 "lz4", "zstd", "br", "gzip" 중 하나를 전달하십시오.
raw 클라이언트 메서드는 클라이언트 수준의 compress 설정을 사용하지 않습니다. raw_query와 raw_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 프록시 지원
HTTP_PROXY 및 HTTPS_PROXY 환경 변수를 인식합니다. 이 변수들은 해당 프로세스의 모든 클라이언트에 적용됩니다. 클라이언트별로 프록시를 구성하려면 http_proxy 또는 https_proxy를 get_client 또는 get_async_client에 전달하세요.
동기 클라이언트는 urllib3를 사용합니다. SOCKS 프록시를 사용하려면 PySocks를 설치한 다음, urllib3.contrib.socks.SOCKSProxyManager를 pool_mgr 인수로 get_client에 전달하세요. pool_mgr는 async 클라이언트에서 지원되지 않습니다.
Variant, Dynamic, 및 JSON 데이터 타입
Variant, Dynamic, JSON 데이터 타입을 지원합니다. 이전 Object('json') 타입은 clickhouse-connect 0.14에서 제거되었으며 현재는 지원되지 않습니다.
사용 시 참고 사항
Variant값은 해당 Python 타입으로 읽힙니다. 네이티브 삽입에서는 Python 값의 타입에 따라 멤버를 선택합니다.- 여러
Variant멤버가 동일한 Python 타입에 매핑되는 경우, 멤버를 명시적으로 선택하려면 값을clickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName")로 감싸십시오. typedVariant 읽기 포맷은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 변환 경로도 사용하므로, 일반적인 스칼라 타입보다 더 느릴 수 있습니다.