我有一个非常大的CSV文件,每天为每个客户提供200万个日志数据,我们必须开发分析工具,根据CSV文件数据提供各种组的摘要。
我们使用Mysql-InnoDB开发但运行速度很慢。我们在表和硬件上应用了适当的索引也很好。
Mysql是否能够支持此时的分析工具,还是需要检查其他任何数据库?
每个SQL Select查询包含15-20秒以从单个表中获取输出。
答案 0 :(得分:1)
我假设您只是插入的数据,并且您主要希望构建向客户显示某些指标的仪表板。
您可以通过其他方式解决此问题。您可以根据语言选项首先使用Spark或Spring批处理或AirFlow处理CSV,而不是直接将CSV数据存储在SQL数据库中。这样做可以减少必须存储的数据量。
您可以考虑的另一种方法是处理CSV并将其推送到BigQuery或Redshift之类的东西。这些数据库旨在处理和查询大数据。
要加固查询,您还可以创建实体化视图以快速构建仪表板。我不建议这样做,因为它不是一个非常可扩展的方法。
我建议您首先处理数据并生成所需的指标,并将它们存储在SQL中并在其上构建仪表板,而不是直接保存它们。