PUT _transform/user-summary-transform
{"source":{"index":"user-events-*"},"pivot":{"group_by":{"user_id":{"terms":{"field":"user_id"}}},"aggregations":{"total_amount":{"sum":{"field":"amount"}},"visit_count":{"value_count":{"field":"action"}},"last_seen":{"max":{"field":"timestamp"}},"top_action":{"terms":{"field":"action","size":1}}}},"description":"用户行为汇总","dest":{"index":"user-summary"},"frequency":"30s","sync":{"time":{"field":"timestamp","delay":"60s"}}}
PUT _transform/hourly-metrics
{"source":{"index":"orders-*"},"pivot":{"group_by":{"hour":{"date_histogram":{"field":"order_time","fixed_interval":"1h"}},"region":{"terms":{"field":"region"}}},"aggregations":{"order_count":{"value_count":{"field":"order_id"}},"revenue":{"sum":{"field":"amount"}},"avg_amount":{"avg":{"field":"amount"}}}},"dest":{"index":"metrics-hourly"},"frequency":"60s","sync":{"time":{"field":"order_time","delay":"5m"}}}
聚合结果可用于 Kibana 实时大屏。
方案 3:最新状态同步(Latest)
场景
将用户最新资料同步到搜索索引。
PUT _transform/user-latest-transform
{"source":{"index":"user-changelog"},"latest":{"unique_key":["user_id"],"sort":"timestamp"},"dest":{"index":"user-search"},"frequency":"15s"}