Zerobus Ingest の OpenTelemetry テーブル参照
このページでは、Zerobus Ingest OTLPで使用されるOpenTelemetry(OTLP)テーブルスキーマとデータマッピングに関する参考情報を提供します。
テーブルスキーマ
OTLPデータが到着すると、Zerobus IngestはネストされたOTLP/scope/record階層の各レコードをフラットな非正規化行に変換します。 リソース属性と計測範囲情報は各行に直接埋め込まれているため、結合することなくデータを即座にクエリできます。
すべての属性フィールド(ログの場合はattributes 、 resource.attributes 、 instrumentation_scope.attributes 、 body 、メトリクスの場合はmetadata )はVARIANT列として保存されます。VARIANTは Delta Lake の半構造化型で、JSON データを格納しつつ元の型を保持します。
各レコードには、Databricks固有のフィールドが追加されています。
フィールド | 説明 | ソース |
|---|---|---|
| 一意の識別と時間順ソートのための、システム生成ID。 | 時間に基づいて生成されます |
| Unixエポックからのマイクロ秒単位のタイムスタンプ。 | タイムスタンプ(マイクロ秒単位)。 |
| 日付パーティション列は、効率的な時間範囲フィルタリングに使用されます。 | 由来 |
| OTelセマンティック規約で定義されているサービス名による効率的なフィルタリングのための最上位列。 | から抽出 |
数値の精度と符号付き型
Delta 型の制限により、以下の点にご注意ください:
- 整数メトリクス値は 2^53 を超えると精度が失われます。
Gauge、Sum、およびExemplarのデータポイントは、その値を 64 ビット整数であるas_intとして報告する場合、DOUBLEに変換されます。これは、Zerobus Ingest がすべてのメトリクス値を単一の浮動小数点列に格納するためです。DOUBLEは 2^53(約 9000 兆)までの整数しか正確に表現できないため、それより大きいas_int値は変換されると正確な精度が失われます。これは主に、生涯バイト数やリクエスト総数などの非常に大きな累積カウンターにおいて重要となります。 - 符号なしOTLPフィールドは符号付きとして格納されます。
INTとBIGINTはDeltaでは常に符号付きですが、OTLPでは一部の数値フィールドが符号なし (uint32、uint64、fixed64) または非常に大きな固定幅カウンターとして定義されています。*_time_unix_nano、flags、dropped_attributes_countなどのフィールドは、符号付きのINTまたはBIGINT列にそのまま格納されます。符号付き最大値 (INTの場合はi32::MAX、BIGINTの場合はi64::MAX) を超える値は、エラーにならずに負の数にラップされます。
スキーママッピング
Zerobus Ingestは、以下に説明するように、OTLPデータをDeltaテーブルの列にマッピングします。
非正規化
OTLPプロトコルでは、テレメトリデータは次のようにネストされます。
ResourceSpans (or ResourceLogs, ResourceMetrics)
└── Resource (attributes, schema_url)
└── ScopeSpans (or ScopeLogs, ScopeMetrics)
└── InstrumentationScope (name, version, attributes)
└── Span (or LogRecord, Metric)
Zerobus Ingestはこの階層構造を平坦化し、各行に完全なコンテキストが含まれるようにします。
resourceリソース属性(VARIANT)とdropped_attributes_countを含む構造体。resource_schema_url: 囲んでいる ResourceSpans、ResourceLogs、または ResourceMetrics のスキーマ URL。instrumentation_scope: スコープ名、バージョン、属性 (VARIANTとして)、およびdropped_attributes_countを含む構造体。span_schema_url/log_schema_url/metric_schema_url: 囲んでいる ScopeSpans、ScopeLogs、または ScopeMetrics のスキーマ URL。
IDエンコーディング
trace_id``span_id 、 parent_span_idは小文字の16進数エンコードされた文字列として格納されます。
trace_id: 32文字の16進数文字列(16バイト)span_id: 16文字の16進数文字列(8バイト)
列挙型エンコーディング
列挙値( kind 、 status.code 、 aggregation_temporality 、 severity_number )は、OTLP仕様で定義されている文字列名として格納されます。例えば、 SPAN_KIND_SERVER 、 STATUS_CODE_OK 、 AGGREGATION_TEMPORALITY_DELTA 。
次のステップ
- OpenTelemetry (OTLP) クライアントを設定してデータをUnity Catalogに送信する: OpenTelemetry SDKまたは Collector を設定してトレース、ログ、およびメトリクスを Zerobus Ingest に送信する。
- OpenTelemetry データのクエリ: テレメトリデータを探索するための SQL クエリの例。
- Zerobus Ingestのエラー処理:一般的なエラーとエラーコードのトラブルシューティング。
- Zerobus Ingest コネクタのクォータ: Zerobus Ingest の throughput および保持制限を確認します。