Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

기본 사항

이 문서에서는 ClickHouse TCP 클라이언트용 바이너리 프로토콜을 설명합니다.

Varint

길이, 패킷 코드 및 그 밖의 경우에는 unsigned varint 인코딩을 사용합니다. binary.PutUvarintbinary.ReadUvarint를 사용하십시오.

String

가변 길이 문자열은 *(length, value)*로 인코딩되며, 여기서 lengthvarint이고 value는 utf8 문자열입니다.

s := "Hello, world!"

// 문자열 길이를 uvarint로 씁니다.
buf := make([]byte, binary.MaxVarintLen64)
n := binary.PutUvarint(buf, uint64(len(s)))
buf = buf[:n]

// 문자열 값을 씁니다.
buf = append(buf, s...)
00000000  0d 48 65 6c 6c 6f 2c 20  77 6f 72 6c 64 21        |.Hello, world!|

정수

Int32

v := int32(1000)

// 인코딩.
buf := make([]byte, 8)
binary.LittleEndian.PutUint32(buf, uint32(v))

// 디코딩.
d := int32(binary.LittleEndian.Uint32(buf))
fmt.Println(d) // 1000
00000000  e8 03 00 00 00 00 00 00                           |........|

불리언

불리언 값은 1바이트로 표현되며, 1true이고 0false입니다.

Navigation