Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于gsCurrentTime()的GridDB时间序列容器的Rowkey_C_Griddb - Fatal编程技术网

基于gsCurrentTime()的GridDB时间序列容器的Rowkey

基于gsCurrentTime()的GridDB时间序列容器的Rowkey,c,griddb,C,Griddb,我有很多传感器的输入,每个传感器只产生一到两行输入,所以为每个传感器创建一个新的容器没有什么意义。数据的顺序不应丢失,因此我考虑了在输入行出现时对其进行枚举,并相应地分配数字。然后,我想提供有关数据输入之间间隔的附加信息。在第一次将id调整为不再是连续的之后,我现在考虑将时间戳作为行键,并在将数据写入行时分配它们。我发现在其他数据库中提到这可能会导致问题,因为数据现在包含的信息在技术上与它没有直接关联。 因此,rowkey本质上是由以下内容设置的:gsSetRowFieldByTimestamp

我有很多传感器的输入,每个传感器只产生一到两行输入,所以为每个传感器创建一个新的容器没有什么意义。数据的顺序不应丢失,因此我考虑了在输入行出现时对其进行枚举,并相应地分配数字。然后,我想提供有关数据输入之间间隔的附加信息。在第一次将id调整为不再是连续的之后,我现在考虑将时间戳作为行键,并在将数据写入行时分配它们。我发现在其他数据库中提到这可能会导致问题,因为数据现在包含的信息在技术上与它没有直接关联。
因此,rowkey本质上是由以下内容设置的:
gsSetRowFieldByTimestamp(row,0,gsCurrentTime())

使用上述时间函数为timeseries提供rowkey是否合适?任何可预见的问题,除了可能很明显的一个问题,即这实际上首先阻碍了gsCurrentTime()分辨率的插入?

,即使传感器只有几列,我相信数据模式仍然应该是每个设备一个容器。是的,这看起来很浪费,但这是一种方式。如果使用集群,GridDB需要多个容器在其节点之间划分数据。使用多查询将消除应用程序读取端的任何性能问题


现在,如果您坚持使用单一容器,请务必注意,您的数据采集器必须是单线程的,以避免理论上的行键冲突。是的,请在Java中使用gsCurrentTime()或TimestampUtils.current。

请发布您尝试过的内容,以及它如何没有产生您想要的结果。这已经是问题的一部分了,不是吗?首先它是一个简单的id顺序,比如1,2,3,4,然后我意识到这会使数据点在绘制图表时看起来是等距的,所以我增加了id,对应于输入事件之间的时间。1230015221523等。这是可行的,但也会产生一些毫无意义的数字,因为这些数字只是对数据的引用,所以在数据库中查找数据很困难。这就是我使用插入时间的原因。这个问题没有代码。因此,它既没有显示您尝试了什么,也没有显示“预期输出”或“实际输出”。因此,这个问题不符合这个想法。因此,我们无法重现问题,也无法帮助您调试它。