0

我将 QuestDb 与 Influx Line Protocol 一起使用。当我发送新指标时,QuestDB 会自动创建一个表,并且对于我的所有数字,它都使用 DOUBLE 类型。它还可以为消息中的其他字符串字段创建标签和字符串的符号,以及为以“i”结尾的数字创建 LONG。

所以我可以发送

sensors,location=ny temperature=22,flag=6i,name="out" 1465839830100400200

它会创建

location SYMBOL
temperature DOUBLE
flag LONG
name STRING

如果我想要 FLOAT 而不是 DOUBLE 或 INT、SHORT 或 BYTE 而不是 LONG,如何控制创建的类型?

4

1 回答 1

0

Influx Line Protocol 没有必要的类型粒度来涵盖所有 QuestDB 类型。使用不同数据类型的方法是在发送 ILP 指标数据之前预先创建 in QuestDB 表。所以如果你创建一个这样的表

create table abc (
  location SYMBOL,
  temperature FLOAT,
  flag BYTE,
  name STRING,
  date DATE,
  ts TIMESTAMPE
) timestamp(ts) partition by MONTH

然后您可以发送此 ILP 数据

sensors,location=ny temperature=22,flag=6i,name="out",date=1465839830100400 1465839830100400200000

date是纪元毫秒,之后空间ts以纳微秒为单位。

最后一个纳秒时间戳可以省略,然后服务器将在将每条消息附加到表时为其添加时间戳。

于 2021-05-24T21:47:58.033 回答