기본 사항
참고
클라이언트 프로토콜 참조 문서는 준비 중입니다.
예제는 대부분 Go로만 제공됩니다.
이 문서는 ClickHouse TCP 클라이언트에서 사용하는 이진 프로토콜을 설명합니다.
Varint
길이, 패킷 코드 등에는 unsigned varint 인코딩을 사용합니다. binary.PutUvarint 및 binary.ReadUvarint를 사용합니다.
참고
Signed varint는 사용하지 않습니다.
String
가변 길이 문자열은 (length, value) 형태로 인코딩되며, 여기서 length는 varint이고 value는 UTF-8 문자열입니다.
참조
OOM(Out Of Memory)을 방지하기 위해 length를 검증해야 합니다:
0 ≤ len < MAX
- 인코딩
- 디코딩
- Hex dump
- Base64
- Go
정수
팁
ClickHouse는 고정 크기 정수 타입에 **리틀 엔디언(Little Endian)**을 사용합니다.
Int32
- 헥사 덤프
- Base64
Boolean
Boolean 값은 1바이트로 표현되며, 1은 true, 0은 false를 나타냅니다.