【问题标题】:Need advice on efficiently inserting millions of time series data into a Cassandra DB需要关于有效地将数百万时间序列数据插入 Cassandra 数据库的建议
【发布时间】:2016-08-21 16:18:24
【问题描述】:

我想使用 Cassandra 数据库来存储来自测试站点的时间序列数据。我正在使用Pattern 2 from the "Getting started with Time Series Data Modeling" tutorial,但没有存储日期以将行大小限制为日期,而是作为int 计算自 1970-01-01 以来经过的天数,该值的时间戳是自纪元以来的纳秒(我们的一些测量设备非常精确,需要精确度)。我的值表如下所示:

CREATE TABLE values (channel_id INT, day INT, time BIGINT, value DOUBLE, PRIMARY KEY ((channel_id, day), time))

我创建了一个简单的基准,考虑到using asynchronity and prepared statements for batch loading instead of batches

  def valueBenchmark(numVals: Int): Unit = {
    val vs = session.prepare(
      "insert into values (channel_id, day, time, " +
      "value) values (?, ?, ?, ?)")
    val currentFutures = mutable.MutableList[ResultSetFuture]()
    for(i <- 0 until numVals) {
      currentFutures += session.executeAsync(vs.bind(-1: JInt,
        i / 100000: JInt, i.toLong: JLong, 0.0: JDouble))
      if(currentFutures.length >= 10000) {
        currentFutures.foreach(_.getUninterruptibly)
        currentFutures.clear()
      }
    }
    if(currentFutures.nonEmpty) {
      currentFutures.foreach(_.getUninterruptibly)
    }
  }

JIntJLongJDouble 分别只是 java.lang.Integerjava.lang.Longjava.lang.Double

当我针对 1000 万个值运行此基准测试时,本地安装的单节点 Cassandra 大约需要两分钟。我的电脑配备了 16 GiB 的 RAM 和一个四核 i7 CPU。我觉得这很慢。这是 Cassandra 插入的正常性能吗?

我已经阅读了这些:

还有什么我可以检查的吗?

【问题讨论】:

  • 能否在您的问题中添加您的 JVM 内存参数?

标签: scala cassandra


【解决方案1】:

简单的数学:

1000 万次插入/2 分钟 ≈ 83 333,33333 次插入/秒,这对于单台机器来说非常棒,您是否期望更快?

顺便问一下,您的硬盘驱动器的规格是什么? SSD 还是旋转磁盘?

您应该知道,大量插入场景比 I/O 更受 CPU 限制。尝试在具有 8 个物理内核(即 16 个具有超线程的 vcore)的机器上执行相同的测试并比较结果。

【讨论】:

  • 它们是SSD,如果这个值很大,那么一切都很好。无论如何,我们计划稍后在集群中使用它。磁盘是 SSD,关于 CPU 内核,这是有道理的。我在一个带有两个 vCPU 和 4GiB RAM 的小型 VM 上尝试了相反的方法,它的速度要慢得多(正如我所料)。毕竟,这种性能对于我们的场景来说已经绰绰有余了。
  • 对于这种情况有什么建议的JVM内存参数吗?
  • 如果你有很多内存(最低 32G),使用 G1 GC 配置并将 JVM 堆大小设置为一个大值(≥ 16gb)
猜你喜欢
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多