적용 대상:
Databricks SQL
Databricks Runtime 16.1 이상
지정된 Protobuf 메시지 정의를 사용하여 이진 Protobuf 값을 A STRUCT 로 변환합니다.
Syntax
from_protobuf(data, messageName [, descFilePath [, options] ])
from_protobuf(data, messageName, options)
Arguments
-
data:BINARYProtobuf 메시지를 포함하는 표현식입니다. -
messageName: Protobuf 메시지를 디코딩할 이름을 명명하는 상수STRING표현식입니다. -
descFilePath: Protobuf 디스크립터 파일 또는 디스크립터 파일을 포함하는 상수BINARY값으로 가는 선택적 상수STRING경로. 와 를 포함한protoc --descriptor_set_out--include_imports디스크립터 파일을 생성합니다. 스키마 레지스트리를 구성할 때options만 생략하세요descFilePath. -
options: 변환 옵션을 포함하는 선택적 상수MAP<STRING, STRING>표현식입니다.
Returns
필드와 타입이 Protobuf 메시지 정의와 일치하는 A.STRUCT
data가 NULL이면 결과는 NULL입니다.
Protobuf 메시지 정의는 의 data스키마와 일치해야 합니다. 스키마가 일치하지 않으면 함수가 실패하거나 임의의 결과를 반환할 수 있습니다.
Options
전체 옵션 목록은 Protobuf를 참조하세요.
예제
다음 예시는 이 Protobuf 메시지에서 생성된 디스크립터 파일을 사용합니다:
message Person {
string name = 1;
int32 id = 2;
}
이진 Protobuf 값을 해독:
> SELECT from_protobuf(
unhex('0A05416C696365102A'),
'Person',
'/path/to/person.desc');
{"name":"Alice","id":42}