2016-11-25 48 views
0

目前,我正在使用时间序列数据库来存储跨不同商店的销售。我有一个称为sales的测量,其中我有一个store_id标记,并且字段count设置为1。我正在使用InfluxDB的下采样功能来总结所有的count字段,以便每天只有一个计数。这很好。在这种情况下是否使用时间序列DB?

我的问题在于,我需要能够在特定的时间范围内在X轴上绘制所有产品的图形,以及每个产品在Y轴上的售价。我在想,product_id将是标签,count=1将是该领域。通过这种方式,我可以在规定的时间范围内绘制出售的所有产品。但是,我拥有数十万种产品,我不确定Influx如何对这些系列产品做出反应。

我是否应该使用别的方法来获得在X时间内销售的产品,或者有更好的方法来测量这种涌入量,还是我正确地做对了?

回答

1

这里有一些变数参与其中。

  1. 什么样的硬件你运行InfluxDB上。
  2. 您拥有的商店数量。
  3. 您将针对您的实例运行什么类型的查询。
  4. 您正在使用的InfluxDB版本。
  5. 你的实例有什么样的读/写负载。

以我的经验,一个1.1 InfluxDB实例可以在单一实例句柄约2-5亿一系列的RAM 16G光读/写负载(假设你没有做这样的事情GROUP BY product_id)。

因此,您在很大程度上决定了这种模式的可行性。 〜10店应该可以。 ~100可能不是。

这就是说,这种模式应该在InfluxDB的1.2+版本中完全正常,因为support for high cardinality tags and series is being added

+0

如果您无法通过产品ID进行分组,那么您将如何了解只有多少销售量的X产品? –

+0

你可以做'SELECT count(count)FROM sales where product_id ='X'',但是'SELECT count(count)FROM sales GROUP BY product_id'会有问题,只是因为你要求数百万个点返回一旦。 –