MySQL 个用例的 Hadoop

Hadoop for MySQL use cases

我有一个数据库,其中包含 5 年来约 400 万条美国股票、共同基金和 ETF 价格的记录,我每天都在添加每种证券的每日价格。

对于我正在研究的一项功能,我需要获取每只证券的最新价格(分组最大值)并使用其他财务指标进行一些计算。 证券数量约为 40K。

但是这个数据量的分组最大值很重,需要几分钟才能执行。

当然我的表使用索引,但任务涉及获取和实时处理近 7GB 的数据。

所以我很感兴趣,这个任务是针对大数据工具和算法还是小数据量?因为在示例中我注意到他们正在处理成千上万 GB 的数据。

我的数据库是MySQL,想用Hadoop来处理数据。 这是好的做法还是我只需要使用 MySQL 优化(我的数据小吗?)或者如果在那么大的数据中使用 Hadoop 是错误的,对于这种情况你有什么建议?

注意我每天增加的项目涉及许多分析,需要根据用户请求实时完成。

注意不知道这个问题是否可以在Whosebug中提出,如果问题离题请见谅。

提前致谢!

在 Hadoop 术语中,您的数据肯定很小。最新的计算机有 16+ GB 的 RAM,因此您的数据集可以完全放入一台机器的内存中。

但是,这并不意味着您至少可以尝试将数据加载到 HDFS 中并对其执行一些操作。 Sqoop 和 Hive 将是您用来加载和进行 SQL 处理的工具。

虽然我提出了关于内存的观点,但您不需要 Hadoop(HDFS 和 YARN)是完全可行的,而是可以使用 Apache Spark w/ SparkSQL 直接从 MySQL分布式 JDBC 连接。

对于MySQL,您可以利用索引,并通过Order(M)实现目标,其中M是证券数量(40K)而不是O(N),其中N是数量table.

中的行数

这里有一个 example 需要调整。