ODBCDriver2 형식
ODBCDriver2 형식
ODBCDriver2 형식은 HTTP를 통해 ClickHouse ODBC 드라이버로 쿼리 결과를 전송하는 데 사용되는 바이너리, 출력 전용 형식이에요. 드라이버가 default_format을 ODBCDriver2로 설정하여 요청하며, 사용자가 직접 선택하는 경우는 거의 없습니다. NULL 값은 길이 -1로 인코딩됩니다.
출처: 문서
본문
| Input | Output | Alias |
|---|---|---|
| ✗ | ✔ |
설명 (Description)
ODBCDriver2 형식은 HTTP를 통해 ClickHouse ODBC 드라이버로 쿼리 결과를 전송하는 데 사용되는 바이너리, 출력 전용 형식입니다. 드라이버는 default_format을 ODBCDriver2로 설정하여 요청하며, 사용자는 일반적으로 직접 선택하지 않아요.
스트림의 모든 정수는 little-endian 바이트 순서로 인코딩된 부호 있는 32비트 값입니다. 문자열은 바이트 길이 다음에 그 바이트들로 인코딩됩니다. 출력은 다음과 같은 구조를 갖습니다:
- 두 개의 헤더 행이 이어진다는 것을 나타내는 값
2. number_of_columns + 1값, 문자열name, 그리고 각 컬럼 이름을 포함하는 이름 헤더.number_of_columns + 1값, 문자열type, 그리고 각 ClickHouse 데이터 타입 이름을 포함하는 타입 헤더.LowCardinality래퍼는 이러한 타입 이름에서 제거됩니다.- 데이터 행. 각 행은 모든 결과 컬럼에 대해 텍스트로 직렬화된 길이 접두사 있는 값 하나를 포함합니다. 데이터 행에는 자체 행 또는 컬럼 수가 포함되지 않으며, 스트림은
EOF에서 끝납니다.
NULL 값은 길이 -1로 인코딩됩니다. 빈 비-null 문자열은 길이 0입니다. Totals(총계)가 있으면 동일한 행 인코딩을 사용하며 일반 행 뒤에 옵니다.
사용 예시 (Example usage)
다음 쿼리는 형식 테스트가 다루는 값을 대표적으로 보여줍니다:
SELECT
1 AS x,
[2, 3] AS y,
'Hello' AS z,
NULL AS a
FORMAT ODBCDriver2
결과가 바이너리이므로 터미널이 아닌 파일로 보냅니다:
clickhouse-client --query \
"SELECT 1 AS x, [2, 3] AS y, 'Hello' AS z, NULL AS a FORMAT ODBCDriver2" \
> result.bin
일반적인 사용에서 드라이버는 HTTP 요청에 default_format=ODBCDriver2를 추가하고 응답을 디코딩합니다.
형식 설정 (Format settings)
ODBCDriver2는 개별 값에 대해 표준 텍스트 직렬화 설정을 사용합니다. 형식 자체에 특정된 설정은 없어요.