메인 콘텐츠로 건너뛰기
이름설명
0Hello클라이언트 핸드셰이크 시작
1Query쿼리 요청
2데이터데이터 블록
3Cancel쿼리 취소
4PingPing 요청
5TableStatus테이블 상태 요청
Data 패킷은 압축할 수 있습니다.

Hello

예를 들어, 54451 프로토콜 버전을 지원하는 Go Client v1.10을 사용해 default 데이터베이스에 default 사용자와 secret 비밀번호로 연결하려고 한다고 가정합니다.
필드유형설명
client_nameString"Go Client"클라이언트 구현 이름
version_majorUVarInt1클라이언트 메이저 버전
version_minorUVarInt10클라이언트 마이너 버전
protocol_versionUVarInt54451TCP 프로토콜 버전
databaseString"default"데이터베이스 이름
usernameString"default"사용자 이름
passwordString"secret"비밀번호

프로토콜 버전

프로토콜 버전은 클라이언트가 사용하는 TCP 프로토콜 버전입니다. 일반적으로 최신 호환 서버 리비전과 같지만, 이와 혼동해서는 안 됩니다.

기본값

모든 값은 명시적으로 설정해야 하며, 서버 측에는 기본값이 없습니다. 클라이언트 측의 기본값은 "default" 데이터베이스(database), "default" 사용자 이름, 그리고 "" (빈 문자열) 비밀번호입니다.

쿼리

field유형설명
query_idString1ff-a123쿼리 ID, UUIDv4일 수 있습니다
client_infoClientInfo유형 참조클라이언트 정보
settings설정유형 참조설정 목록
secretStringsecret서버 간 공유 비밀
stageUVarInt2쿼리 단계까지 실행
compressionUVarInt0비활성화=0, 활성화=1
bodyStringSELECT 1쿼리 텍스트

클라이언트 정보

필드유형설명
query_kindbyteNone=0, Initial=1, Secondary=2
initial_userString초기 사용자
initial_query_idString초기 쿼리 ID
initial_addressString초기 주소
initial_timeInt64초기 시간
interfacebyteTCP=1, HTTP=2
os_userStringOS 사용자
client_hostnameString클라이언트 호스트명
client_nameString클라이언트 이름
version_majorUVarInt클라이언트 메이저 버전
version_minorUVarInt클라이언트 마이너 버전
protocol_versionUVarInt클라이언트 프로토콜 버전
quota_keyStringQUOTA 키
distributed_depthUVarInt분산 깊이
version_patchUVarInt클라이언트 패치 버전
otelBool트레이스 필드 포함
trace_idFixedString(16)트레이스 ID
span_idFixedString(8)스팬 ID
trace_stateString트레이싱 상태
trace_flagsByte트레이싱 플래그

설정

필드유형설명
keyStringsend_logs_level설정의 키
valueStringtrace설정의 값
importantBooltrue무시 가능 여부
목록 형태로 인코딩되며, key와 value가 비어 있으면 목록의 끝을 나타냅니다.

단계

이름설명
0FetchColumns컬럼 타입만 가져옵니다
1WithMergeableState머지 가능한 상태까지
2Complete완전한 상태까지(기본값이어야 합니다)

데이터

필드유형설명
infoBlockInfo인코딩된 블록 정보
columnsUVarInt컬럼 수
rowsUVarInt행 수
columns[]컬럼데이터를 포함하는 컬럼

컬럼

필드유형설명
nameStringfoo컬럼 이름
typeStringDateTime64(9)컬럼 유형
databytes~컬럼 데이터

Cancel

패킷 본문은 없습니다. 서버는 쿼리를 취소해야 합니다.

Ping

패킷 본문은 없습니다. 서버는 pong으로 응답해야 합니다.
마지막 수정일 2026년 6월 10일