写入操作支不支持事务?
天翼云时序数据库Influx版是暂时不支持事务,因为该产品是时间序列数据库,而不是关系数据库。它的主要用例不是用户编辑旧数据的用例。
时间序列数据库的主要用例是大量原始数据进入,然后进行一些过滤或转换为其他测量或数据库。想象一个单向数据流。在这种情况下,不需要太多事务,因为旧数据没有得到太多更新。
当将数据写入天翼云时序数据库Influx版时,应避免哪些文字和字符?
在进行sdk开发时,写入的数据应避免influx的关键字,如 标识符是连续查询名字、数据库名字、field key、measurement的名字、保留策略名字、tag key和用户名 。
为了避免这些关键字和字符带来的潜在问题,建议使用其他具有描述性的标识符来代替。可以选择合适的命名规范,以确保标识符的唯一性和可读性。总之,避免使用内置的关键字作为标识符,可以确保数据写入和查询操作的顺利进行,并避免潜在的命名冲突问题。
如何写入整型的field value?
当写入整数时,在field value末尾加上i。如果您不加上i,天翼云时序数据库Influx版会把field value当作浮点数。
写入整数:value = 50i写入浮点数:value=50 。
写入操作的顺序重要吗?
不重要。 在写入数据时,不需要保证数据按照时间顺序进行写入。无论你以什么顺序写入数据,它们总是按照时间戳进行排序和存储。
但是乱序数据写入会影响性能,写入操作应该尽量按照正确的时间顺序进行。如果数据的时间戳存在误差或乱序的情况,可以在写入之前进行排序或调整时间戳,以保证数据尽量按照正确的时间顺序写入数据库。
写入的数据会重复吗?
不会,在写入数据时,还是需要注意数据的重复。
如果重复写入相同的数据,会覆盖前面的数据。如果新写入的数据和之前已经写入的数据时间戳相同,可能会导致数据被覆盖,进而影响查询结果。因此,需要尽量确保写入的数据是唯一的,并且没有重复。
时间戳的精度是否重要?
重要。 为了最大限度地提高性能 ,天翼云时序数据库Influx版写入时尽量使用 粗糙的时间精度 。
在下面两个例子中,第一个是纳秒,第二个是秒 ,虽然性能会提高,但是代价是精度越粗糙,越有可能出现具有相同时间戳的重复数据点,可能会覆盖其它数据点 。
WriteApi writeApi = client.getWriteApi(); String record = "cpu_usage,server=server5 value=150"; writeApi.writeRecords("test", "test", WritePrecision.NS, Collections.singletonList(record)); WriteApi writeApi = client.getWriteApi(); String record = "cpu_usage,server=server5 value=150"; writeApi.writeRecords("test", "test", WritePrecision.S, Collections.singletonList(record));