Es gibt jetzt eine Flow-Table-Struktur im Projekt, die ungefähr wie folgt aussieht:
id sdkVersion jarVersion CountryCode imei createTime
Die vorherige Anforderung bestand darin, die Gesamtzahl durch Gruppieren von sdkVersion, jarVersion und CountryCode zu ermitteln und die Gesamtzahl nach der IMEI-Sortierung wie folgt zu ermitteln:
select sdkVersion,jarVersion,countryCode,count(*),count(distinct imei) from xxx where createTime = 'xxxx-xx-xx' group by sdkVersion,jarVersion,countryCode
Finden Sie alle Daten des Vortages heraus und fassen Sie sie in einer Tabelle zusammen. Der Aufbau ist ungefähr wie folgt:
id sdkVersion jarVersion CountryCode count(*) count(distinct imei) createTime
Dann besteht die aktuelle Anforderung darin, die Kombination eines beliebigen Breitengrads abzufragen, d um viele Tabellen für verschiedene Breitengradkombinationen zu erstellen. Gibt es eine gute Lösung für dieses Problem? Oder kann es mit einem speziellen statistischen Rahmen gelöst werden?
楼主可以去看看PipelineDB流式数据库
apache kylin, 亚秒级olap
每日汇总的话,实时性要求并不高,500W 记录也还在可以处理的范围内,视图 + 定时计划,可以满足要求,不需要建多表。
题主最好能说明一下有什么瓶颈或者痛点,毕竟 mysql 是个成熟产品,换用新锐技术有一定风险。
写存储过程,每天定时跑就行了