【问题标题】:How to use ILP data types with QuestDB data types?如何将 ILP 数据类型与 QuestDB 数据类型一起使用?
【发布时间】:2021-05-23 22:22:58
【问题描述】:

我将 QuestDb 与 Influx Line 协议一起使用。当我发送新指标时,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,如何控制创建的类型?

【问题讨论】:

    标签: questdb


    【解决方案1】:

    Influx Line Protocol 没有必要的类型粒度来涵盖所有 QuestDB 类型。使用不同数据类型的方法是在发送 ILP 指标数据之前预先创建 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 是纳微秒。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多