from_protobuf 関数

適用対象:チェックマーク付き: はい 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}