from_protobuf 함수

적용 대상:확인 표시 있음 Databricks SQL 확인 표시 있음 Databricks Runtime 16.1 이상

지정된 Protobuf 메시지 정의를 사용하여 이진 Protobuf 값을 A STRUCT 로 변환합니다.

Syntax

from_protobuf(data, messageName [, descFilePath [, options] ])
from_protobuf(data, messageName, options)

Arguments

  • data: BINARY Protobuf 메시지를 포함하는 표현식입니다.
  • 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}