Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Seite enthält Referenzinformationen für die OpenTelemetry-Tabellenschemas (OTLP) und die Datenzuordnung, die von Zerobus Ingest OTLP verwendet wird.
Tabellenschema
Wenn OTLP-Daten eingehen, konvertiert Zerobus Ingest jeden Datensatz aus der geschachtelten OTLP-Ressourcen-/Bereichs-/Datensatzhierarchie in eine flache, denormalisierte Zeile. Ressourcenattribute und Informationen zum Bereichsbereich werden direkt in jede Zeile eingebettet, sodass die Daten sofort ohne Verknüpfungen abfragt werden können.
Alle Attributfelder (attributes, resource.attributes, instrumentation_scope.attributesbody für Protokolle, metadata für Metriken) werden als VARIANT Spalten gespeichert.
VARIANT ist ein halbstrukturierter Typ in Delta Lake, der JSON-Daten speichert und dabei die ursprünglichen Typen bewahrt.
Jeder Datensatz wird mit Datenbricks-spezifischen Feldern erweitert:
| Feld | Beschreibung | Quelle |
|---|---|---|
record_id |
Eine vom System generierte ID für eindeutige Identifikation und zeitgeordnete Sortierung. | Generiert basierend auf der Zeit |
time |
Zeitstempel in Mikrosekunden aus der Unix-Epoche. | Zeitstempel (in Mikrosekunden) abgeleitet von start_time_unix_nano (Spans) oder time_unix_nano (Protokolle, Metriken) |
date |
Datumspartitionsspalte zur effizienten Filterung des Zeitbereichs. | Abgeleitet von time |
service_name |
Spalte auf oberster Ebene zur effizienten Filterung nach Dienstnamen, wie in der OTel-Semantikkonvention definiert. | Extrahiert aus resource.attributes["service.name"] |
Numerische Genauigkeit und Vorzeichentypen
Aufgrund einiger Delta-Einschränkungen sollten Sie bitte Folgendes beachten:
-
Ganzzahlige Metrikwerte verlieren an Genauigkeit oberhalb von 2^53.
Gauge,Sum, undExemplarDatenpunkte, die ihren Wert alsas_int64-Bit-Ganzzahl angeben, werden inDOUBLEumgewandelt, da Zerobus Ingest alle Metrikwerte in einer einzigen Gleitkommaspalte speichert.DOUBLErepräsentiert nur ganze Zahlen genau bis 2^53, etwa 9 Billiarden, sodass größereas_intWerte nach der Umrechnung an exakter Genauigkeit verlieren. Dies ist hauptsächlich für sehr große kumulative Zähler relevant, wie lebenslange Byte- oder Anfragesummen. - Unsignierte OTLP-Felder werden als signiert gespeichert.
INTundBIGINTsind immer in Delta signiert, aber OTLP definiert einige numerische Felder als unsigniert (uint32,uint64,fixed64) oder als sehr große Zähler mit fester Breite. Felder wie*_time_unix_nano,flags,dropped_attributes_count, usw. werden as-is in einer signiertenINToderBIGINTSpalte gespeichert. Ein Wert über dem vorzeichenmäßigen Maximum (i32::MAXfürINT,i64::MAXfürBIGINT) wird zu einer negativen Zahl umgewickelt, anstatt Fehler zu erzeugen.
Schemazuordnung
Zerobus Ingest ordnet OTLP-Daten den Delta-Tabellenspalten zu, wie unten beschrieben.
Denormalisierung
Im OTLP-Protokoll werden Telemetriedaten wie folgt geschachtelt.
ResourceSpans (or ResourceLogs, ResourceMetrics)
└── Resource (attributes, schema_url)
└── ScopeSpans (or ScopeLogs, ScopeMetrics)
└── InstrumentationScope (name, version, attributes)
└── Span (or LogRecord, Metric)
Zerobus Ingest vereinfacht diese Hierarchie, sodass jede Zeile den vollständigen Kontext enthält:
-
resource: Eine Struktur mit den Ressourcenattributen (asVARIANT) unddropped_attributes_count. -
resource_schema_url: Die Schema-URL aus den eingeschlossenen ResourceSpans, ResourceLogs oder ResourceMetrics. -
instrumentation_scope: Eine Struktur, die den Bereichsnamen, die Version, attribute (asVARIANT) unddropped_attributes_count. -
span_schema_url/log_schema_url/metric_schema_url: Die Schema-URL aus den eingeschlossenen ScopeSpans, ScopeLogs oder ScopeMetrics.
ID-Codierung
trace_id, span_idund parent_span_id werden als hexadekodierte Zeichenfolgen in Kleinbuchstaben gespeichert:
-
trace_id: 32-stellige Hexzeichenfolge (16 Bytes) -
span_id: 16-stellige Hexadexzeichenfolge (8 Bytes)
Enumerationscodierung
Enumerationswerte (kind, status.code, aggregation_temporality, severity_number) werden als ihre Zeichenfolgennamen gespeichert, wie in der OTLP-Spezifikation definiert. Beispiel: SPAN_KIND_SERVER, , STATUS_CODE_OKAGGREGATION_TEMPORALITY_DELTA.
Nächste Schritte
- Konfigurieren Von OpenTelemetry-Clients (OTLP) zum Senden von Daten an den Unity-Katalog: Konfigurieren Sie ein OpenTelemetry SDK oder Collector zum Senden von Ablaufverfolgungen, Protokollen und Metriken an Zerobus Ingest.
- Abfrage OpenTelemetry-Daten: Beispiel-SQL-Abfragen zum Untersuchen Ihrer Telemetriedaten.
- Zerobus Ingest-Fehlerbehandlung: Behandeln häufiger Fehler und Fehlercodes.
- Zerobus-Ingest-Quoten: Überprüfen Sie Durchsatz- und Speicherbeschränkungen für Zerobus-Ingest.