適用対象:
Databricks SQL
Databricks Runtime 16.1 以降
指定されたProtobufメッセージ定義を用いて、バイナリのProtobuf値を STRUCT に変換します。
Syntax
from_protobuf(data, messageName [, descFilePath [, options] ])
from_protobuf(data, messageName, options)
Arguments
-
data:Protobufメッセージを含むBINARY式です。 -
messageName: Protobufメッセージをデコードする定数STRING式です。 -
descFilePath: Protobuf記述ファイルへのオプションの定数STRINGパス、または記述ファイルを含む定数BINARY値。protoc --descriptor_set_outと--include_importsでディスクリプタファイルを生成します。 スキーマレジストリを設定する時だけdescFilePathoptions省略してください。 -
options:変換オプションを含む任意の定数MAP<STRING, STRING>式。
Returns
Protobufメッセージの定義に一致するフィールドと型を持つ STRUCT 。
data が NULL の場合、結果は NULL です。
Protobufメッセージの定義は dataのスキーマに一致しなければなりません。 スキーマが一致しない場合、関数が失敗したり任意の結果を返すことがあります。
オプション
オプションの完全な一覧については、 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}