【问题标题】:Cassandra Fast Read ConfigurationCassandra 快速读取配置
【发布时间】:2015-09-14 21:42:41
【问题描述】:

我在单个数据中心有 4 个 Cassandra 节点和 1 个种子。我有大约 500 万条记录,其中 Cassandra 需要大约 4 分钟来读取 MySQL 的位置,只需要 17 秒。所以我的猜测是我的配置有问题。好心人让我知道什么配置属性,所以我必须检查 Cassandra.yaml。

【问题讨论】:

  • 记录是如何跨节点分区的?您是否在一次查询中请求所有 5M 条记录?
  • 感谢 Matthew,关于我使用“Murmur3Partitioner”的默认分区。我正在做的是将所有数据加载到 BI 工具中,即 Qlik。所以回答你的问题是的。

标签: cassandra


【解决方案1】:

如果您从一个客户那里读取所有 500 万条记录,您可能正在做一个苹果与橘子的比较。

在 MySQL 中,所有数据都是本地数据并针对读取进行了优化,因为数据已就地更新。

Cassandra 是分布式的并针对写入进行了优化。写入是简单的追加,但读取的成本很高,因为需要读取并合并所有追加以获取每列的当前值。

由于数据分布在多个节点上,因此通过网络访问和检索数据会产生大量开销。

如果您将 Spark 与 Cassandra 一起使用,并将数据并行加载到 Spark 工作线程中,而不是通过网络将其改组到单个客户端,那么这将是一个更相似的比较。

Cassandra 通常擅长摄取大量数据,然后处理其中的一小部分(即分区),而不是进行表扫描操作,例如读取整个表。

【讨论】:

  • Cassandra 是 NoSQL 意味着读取很简单。我们在 cassandra 上有分区键,用于在一些使用 MYSQL 分片的节点之间分配数据。所以它可能取决于复制因子和一致性级别
猜你喜欢
  • 2019-06-17
  • 2011-03-04
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
相关资源
最近更新 更多