from_protobuf-Funktion

Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 16.1 und höher

Wandelt einen binären Protobuf-Wert mithilfe der spezifizierten Protobuf-Nachrichtendefinition in ein STRUCT um.

Syntax

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

Arguments

  • data: Ein Ausdruck mit BINARY einer Protobuf-Nachricht.
  • messageName: Ein ständiger STRING Ausdruck, der die Protobuf-Nachricht zum Entschlüsseln benennen.
  • descFilePath: Ein optionaler konstanter STRING Pfad zu einer Protobuf-Deskriptordatei oder ein konstanter BINARY Wert, der die Deskriptordatei enthält. Generiere die Deskriptordatei mit protoc --descriptor_set_out und --include_imports. Nur auslassen descFilePath , wenn options ein Schema-Register konfiguriert wird.
  • options: Ein optionaler Konstantenausdruck MAP<STRING, STRING> mit Konvertierungsoptionen.

Rücklieferungen

A STRUCT , dessen Felder und Typen mit der Definition der Protobuf-Nachricht übereinstimmen.

Wenn data ist NULL, ist das Ergebnis NULL.

Die Protobuf-Nachrichtendefinition muss mit dem Schema von dataübereinstimmen. Wenn die Schemata nicht übereinstimmen, kann die Funktion ausfallen oder ein beliebiges Ergebnis zurückgeben.

Options

Eine vollständige Liste der Optionen finden Sie unter Protobuf.

Beispiele

Das folgende Beispiel verwendet eine Deskriptordatei, die aus dieser Protobuf-Nachricht generiert wird:

message Person {
  string name = 1;
  int32 id = 2;
}

Entschlüsseln Sie einen binären Protobuf-Wert:

> SELECT from_protobuf(
    unhex('0A05416C696365102A'),
    'Person',
    '/path/to/person.desc');
  {"name":"Alice","id":42}