イベントスキーマ
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| reading_id | Utf8 | 架空の測定を識別するID。 |
| measured_second | Int64 | 演習開始からセンサーが測定するまでの秒数。 |
| delivered_second | Int64 | 演習開始からネットワークのメッセージが届くまでの秒数。 |
| co2_ppm | Int64 | 架空のCO₂測定値(ppm)。健康評価には使えません。 |
DataFusion SQL
クエリをコピーする
sql
WITH per_reading AS (
SELECT reading_id, MIN(co2_ppm) AS co2_ppm
FROM sensor_deliveries
GROUP BY reading_id
),
delivery_summary AS (
SELECT COUNT(*) AS deliveries, AVG(co2_ppm) AS delivered_mean_ppm
FROM sensor_deliveries
),
measurement_summary AS (
SELECT COUNT(*) AS measurements, AVG(co2_ppm) AS measurement_mean_ppm
FROM per_reading
)
SELECT deliveries, measurements, delivered_mean_ppm, measurement_mean_ppm
FROM delivery_summary CROSS JOIN measurement_summary;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
集計単位が2つ、平均値も2つ
6回の配信は4回の測定に対応します。2つの平均値は同じ架空の数値から求めますが、答える問いが異なります。
| deliveries | measurements | delivered_mean_ppm | measurement_mean_ppm |
|---|---|---|---|
| 6 | 4 | 700 | 675 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
サンプルデータをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1最初のCTEは reading_id ごとに配信をまとめるため、r4の再送を新たな測定として数えません。
- 2届いた行の平均は700 ppm、4回の測定の平均は675 ppmです。どちらも必ずしも教室の時間加重平均ではありません。
- 3ここでMINを使えるのは、同じ reading_id の架空の配信では co2_ppm がすべて同じだからです。実データの重複を除く前に値の食い違いを確認してください。
確認するエッジケース
- 異なる2回の測定が同じCO₂値になることがあります。AVG(DISTINCT co2_ppm) はそれらを誤って1つにまとめます。
- 実際の読み取りIDは機器間で衝突したり、再起動後に再利用されたりします。実イベントをまとめる前に識別規則を決めてください。
- この架空のCO₂値で換気や健康に関する判断はできません。実際には校正、設置場所、欠測、時間範囲の確認が必要です。
推奨されるダッシュボード
- 表:選んだ演習の配信回数、測定回数、2つの平均
このクエリに必要なイベントを設定する
関連する機器とガイド
分析を続ける
自分のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。