什么更快/更容易转换成接受 SQL 脚本作为输入的 SQL:作为 Hive 高延迟查询或 Phoenix 的速度层的 Spark SQL?如果是这样,怎么办?我需要对数据进行大量更新/加入/分组。[hbase]
在 Cassandra CQL 之上是否有任何替代方案来支持上述(实时加入/分组)?
我很可能会使用 Spark,因为我想利用 MLlib。但是对于处理应该是我的选择去的数据?
谢谢,克拉斯特
什么更快/更容易转换成接受 SQL 脚本作为输入的 SQL:作为 Hive 高延迟查询或 Phoenix 的速度层的 Spark SQL?如果是这样,怎么办?我需要对数据进行大量更新/加入/分组。[hbase]
在 Cassandra CQL 之上是否有任何替代方案来支持上述(实时加入/分组)?
我很可能会使用 Spark,因为我想利用 MLlib。但是对于处理应该是我的选择去的数据?
谢谢,克拉斯特
http://phoenix-hbase.blogspot.com/ 我更确定 Hbase 上的 Phoenix 会运行得更快。
这是测试查询的示例查询和 PC 要求:从超过 10M 和 100M 行的表中选择 count(1)。数据是 5 个窄列。Region Servers: 4 (HBase heap: 10GB, Processor: 6 cores @ 3.3GHz Xeon) 因为 Phoenix 使用 HBASE 客户端接口加载所有查询,并且使用查询引擎仅映射 sql 任务用于 HBase 中的 map reduce 任务
你有几个选择(据我所知)
Apache phoenix 是低延迟和中型表(1M - 100M 行,但要注意具有许多列的表!)处理的不错选择。phoenix 的一大优点是它非常容易上手。我的公司已经设置了一个 HBase 集群(使用 kerberos)。要使用 Phoenix,我只需要 HMaster URL、Hbase-site.xml 和一个 keytab 来启动操作。非常快速的读写是不错的(它对我来说比较慢,因为我需要动态地做,所以我被迫使用 Java 客户端 API 而不是批量加载)
带有 Spark 的 Hive 也很棒。我不确定它在凤凰城的表现有多棒。由于 Spark 在内存中做大部分事情,我假设它应该很快。但是,我可以告诉您,如果您想将 SQL 访问公开为某种 API,那么使用 spark 变得相当困难。
Presto 是一款出色的产品,它通过 SQL 接口提供类似 Spark 的处理能力,允许您互连来自多个来源(Hive、Cassandra、MySQL ..etc)的数据
希望这可以帮助。