HTTP 관련 설정
HTTP 관련 설정
ClickHouse HTTP 인터페이스의 다양한 동작 방식을 제어하는 설정들이에요. URL 경로 해석, 연결·수신·전송 타임아웃, 압축, 응답 버퍼링 등을 다룬답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.
출처: 문서
본문
이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.
http_allow_database_as_path
활성화하면 HTTP 인터페이스가 URL 경로의 /database/ 컴포넌트를 인식하고 이를 현재 데이터베이스로 사용해요.
이는 라우팅된 경로-스타일 요청을 해석할지 제어하는 사용자별 설정이에요. 라우팅 자체는 서버 수준의 http_allow_path_requests 구성 설정(기본적으로 꺼져 있음)으로 전역적으로 관리되는데, HTTP 인터페이스가 경로-스타일 요청(예: /my_db/my_table.csv)을 쿼리 핸들러로 라우팅하려면 이 설정이 활성화되어야 해요. 그 라우팅 결정은 요청이 인증되기 전에 이루어지므로 사용자별 설정에 의존할 수 없어요. http_allow_path_requests가 꺼져 있으면 알 수 없는 경로는 그냥 404를 반환해요. 라우팅 후 이 설정은 인증된 사용자의 유효 설정과 대조해 다시 확인되므로 사용자, 역할, 프로필별로 선택적으로 활성화할 수 있어요.
http_allow_filters_as_path
활성화하면 HTTP 인터페이스가 경로의 /name=value/ 컴포넌트(hive 파티셔닝 스타일)를 인식하고 이를 AND로 결합된 필터로 변환해요. 연산자 >, <, >=, <=, !=, <>도 인식돼요.
http_allow_database_as_path처럼 이는 사용자별 설정이며, 경로-스타일 요청의 라우팅은 서버 수준의 http_allow_path_requests 구성 설정(라우팅이 인증 전에 발생)으로 전역적으로 관리돼요.
http_allow_filters_as_unrecognized_url_parameters
활성화하면 알려진 파라미터, 설정, 또는 param_* 접두사로 인식되지 않는 모든 URL 파라미터가 필터로 처리되고 AND로 결합돼요. 두 가지 형태가 허용돼요:
- 일반적인
name=value는 동등성 ``name= 'value'가 돼요(식별자는 백쿼트, 값은 문자열 리터럴로 따옴표 처리). - 비교 연산자(
!=,>,<,>=,<=,<>)는 비교가 돼요. 파라미터에 걸쳐 나뉘거나(?a!=2,?a>=2) URL에=가 없어 나눌 수 없을 때 인라인으로 작성돼요(?a<>2,?f(x)>3). 이 경우 재조립된name[=value]는 완전한 SQL 표현식으로 파싱돼요.
http_allow_table_as_file
활성화하면 HTTP 인터페이스가 마지막 URL 경로 컴포넌트를 table, table.format, table.format.compression 형태의 테이블 이름으로 인식해요. 경로는 SELECT * FROM table로 해석돼요.
http_allow_database_as_path처럼 이는 사용자별 설정이며, 경로-스타일 요청의 라우팅은 서버 수준의 http_allow_path_requests 구성 설정(라우팅이 인증 전에 발생)으로 전역적으로 관리돼요.
http_connection_timeout
HTTP 연결 타임아웃(초)이에요.
가능한 값:
- 양의 정수.
- 0 - 비활성화(무한 타임아웃).
http_make_head_request
http_make_head_request 설정은 HTTP에서 데이터를 읽는 동안 HEAD 요청을 실행해 읽을 파일에 대한 정보(예: 크기)를 얻을 수 있게 해요. 기본적으로 활성화되어 있으므로, 서버가 HEAD 요청을 지원하지 않는 경우 이 설정을 비활성화하는 것이 좋을 수 있어요.
http_native_compression_disable_checksumming_on_decompress
클라이언트의 HTTP POST 데이터를 압축 해제할 때 체크섬 검증을 활성화하거나 비활성화해요. ClickHouse 네이티브 압축 포맷에만 사용돼요(gzip이나 deflate와는 사용되지 않음).
자세한 내용은 HTTP 인터페이스 설명을 읽어 보세요.
가능한 값:
- 0 — 비활성화.
- 1 — 활성화.
http_receive_timeout
HTTP 수신 타임아웃(초)이에요.
가능한 값: 양의 정수(초). 0은 무한 타임아웃이 아니며 연결 설정 실패를 일으킬 수 있어요(POSIX 소켓 타임아웃은 양의 간격이 필요함).
http_send_timeout
HTTP 전송 타임아웃(초)이에요.
가능한 값: 양의 정수(초). 0은 무한 타임아웃이 아니며 연결 설정 실패를 일으킬 수 있어요(POSIX 소켓 타임아웃은 양의 간격이 필요함).
기본 프로필에만 적용되고, 변경 사항이 적용되려면 서버 재시작이 필요해요.
http_skip_not_found_url_for_globs
HTTP_NOT_FOUND 오류가 있는 glob에 대해 URL을 건너뛰어요.
http_wait_end_of_query
서버 측에서 HTTP 응답 버퍼링을 활성화해요.
http_write_exception_in_output_format
유효한 출력을 만들기 위해 예외를 출력 포맷으로 작성해요. JSON 및 XML 포맷에서 작동해요.
http_zlib_compression_level
enable_http_compression = 1일 때 HTTP 요청에 대한 응답의 데이터 압축 수준을 설정해요.
가능한 값: 1부터 12까지의 숫자. 9보다 높은 수준은 libdeflate가 있는 기본 빌드가 필요해요. libdeflate가 없는 빌드는 1~9 수준을 지원해요.