イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | イベント受信時間。 |
| event_name | Utf8 | 安定した論理イベント名。 |
| schema_version | Utf8 | v2 などの明示的な契約バージョン。 |
| producer_version | Utf8 | アプリケーションのビルドまたはワーカーのリリース。 |
クエリをコピーする
WITH version_counts AS (
SELECT
event_name,
producer_version,
schema_version,
COUNT(*) AS events
FROM product_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY event_name, producer_version, schema_version
),
producer_totals AS (
SELECT
event_name,
producer_version,
SUM(events) AS producer_events
FROM version_counts
GROUP BY event_name, producer_version
)
SELECT
counts.event_name,
counts.producer_version,
counts.schema_version,
counts.events,
100.0 * counts.events / NULLIF(totals.producer_events, 0)
AS version_share_pct
FROM version_counts AS counts
JOIN producer_totals AS totals
ON totals.event_name = counts.event_name
AND totals.producer_version = counts.producer_version
ORDER BY counts.event_name, counts.producer_version, counts.events DESC;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
プロデューサ別のスキーマ バージョンのシェア
Web デプロイメントは v2 に収束しましたが、ワーカー リリースは依然としてかなりの v1 シェアを生成しています。
| event_name | producer_version | schema_version | events | version_share_pct |
|---|---|---|---|---|
| checkout_completed | web-1848 | v2 | 9,840 | 99.72 |
| checkout_completed | worker-411 | v1 | 742 | 38.11 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1最初の CTE は、観測されたすべてのイベント コントラクトをプロデューサーおよびスキーマ バージョンごとにカウントします。
- 2プロデューサーの合計は、大量リリースと少量リリースを公平に比較するために必要な分母を作成します。
- 3両方のバージョンを出力に保持すると、最新バージョンのみをレポートするのではなく、混合ロールアウトが表示されます。
決定すべきエッジケース
- バージョン管理されていない履歴イベントには、サイレント NULL ではなく明示的なレガシー ラベルが必要です。
- モバイルおよびデスクトップ クライアントのロールアウト期間は、サーバー リリースよりもはるかに長い場合があります。
- バージョン ラベルは、セマンティックな変更が一緒に文書化されている場合にのみ役立ちます。
推奨されるダッシュボード
- バー: version_share_pct by producer_version
- 傾向: 導入期間にわたるレガシー バージョンのシェア
- 表: 複数のアクティブなバージョンを持つイベント名
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。