我有一个非常大的CSV文件,其中包含每天到来的每个客户的200万日志数据,我们必须开发分析工具,给出各种CSV文件数据组的摘要。
我们使用Mysql-InnoDB进行开发,但运行速度非常慢。我们已经在表和硬件上应用了适当的索引,也很好。
Mysql是否支持这次的分析工具,或者我是否需要检查任何其他数据库?
每个SQL Select查询需要15-20秒的时间来从单个表中获取输出。
发布于 2017-03-22 19:40:43
我假设您的数据是只插入的,并且您主要希望构建向客户显示一些指标的仪表板。
你可以用不同的方式来解决这个问题。与直接将CSV数据存储在SQL数据库中不同,您可以首先使用Spark或Spring batch或AirFlow处理CSV,具体取决于语言选项。这样做可以减少必须存储的数据量。
您可以考虑的另一种方法是处理CSV并将其推送到BigQuery或Redshift。这些数据库旨在处理和查询大型数据。
要加快查询速度,还可以创建实体化视图以快速构建仪表板。我不推荐这样做,因为这不是一种可伸缩性很强的方法。
我建议您首先处理数据并生成所需的指标,然后将其存储在SQL中,并在其上构建仪表板,而不是直接保存它们。
https://stackoverflow.com/questions/42943134
复制相似问题