본문으로 바로가기
본문으로 바로가기

클라이언트 패킷

valuenamedescription
0Hello클라이언트 핸드셰이크 시작
1Query쿼리 요청
2Data데이터 블록
3Cancel쿼리 취소
4Ping핑(Ping) 요청
5TableStatus테이블 상태 요청

Data 패킷은 압축할 수 있습니다.

Hello

예를 들어, 54451 프로토콜 버전을 지원하는 Go Client v1.10을 사용하며 default 데이터베이스에 default 사용자와 secret 비밀번호로 연결하려고 합니다.

fieldtypevaluedescription
client_nameString"Go Client"클라이언트 구현 이름
version_majorUVarInt1클라이언트 메이저 버전
version_minorUVarInt10클라이언트 마이너 버전
protocol_versionUVarInt54451TCP 프로토콜 버전
databaseString"default"데이터베이스 이름
usernameString"default"사용자 이름
passwordString"secret"비밀번호

프로토콜 버전

프로토콜 버전은 클라이언트의 TCP 프로토콜 버전입니다.

일반적으로 최신 호환 서버 리비전과 동일하지만, 서버 리비전 자체와 혼동해서는 안 됩니다.

기본값

모든 값은 명시적으로 설정해야 하며, 서버 측에는 기본값이 설정되어 있지 않습니다. 클라이언트 측에서는 "default" 데이터베이스, "default" 사용자 이름, ""(빈 문자열) 비밀번호를 기본값으로 사용합니다.

Query

fieldtypevaluedescription
query_idString1ff-a123쿼리 ID, UUIDv4일 수 있음
client_infoClientInfoSee type클라이언트 데이터
settingsSettingsSee type설정 목록
secretStringsecret서버 간 통신에 사용하는 secret
stageUVarInt2해당 쿼리 단계까지 실행
compressionUVarInt0비활성화=0, 활성화=1
bodyStringSELECT 1쿼리 텍스트

클라이언트 정보

fieldtypedescription
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클라이언트 패치 버전
otelBoolTrace 필드가 존재하는지 여부
trace_idFixedString(16)Trace ID
span_idFixedString(8)Span ID
trace_stateString트레이싱 상태
trace_flagsByte트레이싱 플래그

설정

fieldtypevaluedescription
keyStringsend_logs_level설정 키
valueStringtrace설정 값
importantBooltrue무시 가능 여부

목록으로 인코딩되며, key와 value가 비어 있으면 목록의 끝을 나타냅니다.

단계

valuenamedescription
0FetchColumns컬럼 유형만 가져옵니다
1WithMergeableState병합 가능한 상태까지 처리합니다
2Complete완전히 완료될 때까지 처리합니다(기본값이어야 합니다)

데이터

fieldtypedescription
infoBlockInfo인코딩된 블록 정보
columnsUVarInt컬럼 수
rowsUVarInt행 수
columns[]Column데이터가 포함된 컬럼들

컬럼

fieldtypevaluedescription
nameStringfoo컬럼 이름
typeStringDateTime64(9)컬럼 유형
databytes~컬럼 데이터

취소

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

Ping

패킷 본문은 없습니다. 서버는 pong으로 응답해야 합니다.