我有一个 mysql 表,由于其巨大的大小,它需要 20-30 分钟来响应一个简单的选择查询。我在想是否可以将其导入hadoop进行处理。这会是个好主意吗?如果我将使用 hive 执行相同的查询,会有任何性能提升??如果是,那么我应该如何将我的表导入 hadoop?由于 table 具有复合主键,因此 sqoop 不是一个选项。还有一件事,我应该使用 HBase 吗?哪种方法会更好?
谢谢
Hive 是面向批处理的,考虑使用Impala,它用于交互式即席查询并且比 Hive 更快。Hive 比 Impala 更老,所以它有很多文档和帮助也很容易找到。
还有Apache Drill,但仍处于孵化器阶段。还有Amazon RedShift,但它目前处于有限的预览阶段。然后是Google BigQuery。在 Hadoop 中获取数据并在其上处理数据有多种选择。
所有问题都没有固定的解决方案/选择。根据您的要求,必须选择合适的工具。
在导入表的情况下,即使它有一个复合主键,我认为你可以使用sqoop的顺序导入。只有一个映射器(使用 -m 1),您将不再需要“拆分”列。
@cool.ernest.7 也许很天真,但是为什么不能导入带有复合索引的表呢?顺便说一句,你的数据库有多大?