基于终端埋点的业务场景,目前想实现一个基于以下格式的埋点协议,基于这样结构的数据进行数据分析。
1.1||iOS 12.4||meeting212lk@xx.com||1278797398423sdfeef||1920*1080||CN||1001||{"id":202,"cpu":23,"memory":12,"type":1,"des":"login event"}
1.1||iOS 12.4||meeting212lk@xx.com||1278797398423sdfeef||1920*1080||CN||1002||{"type":1,"time":100,"rate":0.12,"des":"login crash"}
以上格式说明:
id_version:1.1
system_version:iOS 12.4
account:meeting212lk@xx.com
uuid:1278797398423sdfeef
resolution:1920*1080
language:CN
eventid:1001
args:{"id":202,"cpu":23,"memory":12,"type":1,"des":"login event"}
注意:这里 args 作为实时数据分析的扩展字段,每一个 key 都有可能进行数据指标维度得统计。并且每个 eventid 对应的 args 扩展字段( json )都是不一定的。
例如统计:
现状:目前使用 grafana 进行数据指标呈现,InfluxDB 进行原始数据存储,可以进行简单的数据实时分析。但是 InfluxDB 不支持 JSON 字段的索引。一个简单的办法就是对每一个 eventid 进行分表,但是带来的问题就是 InfluxDB 不支持 join 查询,不能对多个 eventid 进行查询。
想请教一下,在这种场景得情况下,想把 args 字段作为通用字段,是否可以实现实时查询和统计的功能。
例如:druid、clickhouse、flink 等等技术栈是否符合这种嵌套 json 字段查询场景。druid 需要事先定义好 schema,进行预聚合,所以可以达到实时分析的目的,但是这种 json 类型的字段,在 druid 中是否可以进行快速查询和分析。
或是是否有更好的技术实现这样的场景
是否这种 OLAP 平台只能支撑某一个固定结构(定义好结构,并且确定指标维度)的实时查询
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.