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비트 값입니다. 문자열은 바이트 길이 다음에 그 바이트들로 인코딩됩니다. 출력은 다음과 같은 구조를 갖습니다:

  1. 두 개의 헤더 행이 이어진다는 것을 나타내는 값 2.
  2. number_of_columns + 1 값, 문자열 name, 그리고 각 컬럼 이름을 포함하는 이름 헤더.
  3. number_of_columns + 1 값, 문자열 type, 그리고 각 ClickHouse 데이터 타입 이름을 포함하는 타입 헤더. LowCardinality 래퍼는 이러한 타입 이름에서 제거됩니다.
  4. 데이터 행. 각 행은 모든 결과 컬럼에 대해 텍스트로 직렬화된 길이 접두사 있는 값 하나를 포함합니다. 데이터 행에는 자체 행 또는 컬럼 수가 포함되지 않으며, 스트림은 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는 개별 값에 대해 표준 텍스트 직렬화 설정을 사용합니다. 형식 자체에 특정된 설정은 없어요.

더 알아보기 (Learn more)