【问题标题】:Cannot insert to QuestDb using Influx Line Protocol无法使用 Influx Line 协议插入 QuestDb
【发布时间】:2021-03-30 22:29:31
【问题描述】:

我正在尝试使用 Influx Line Protocol 将数据插入 QuestDb,但在查询表时看不到任何内容。我的代码很简单,ILP行取自QuestDb ILP示例

Poco::Net::SocketAddress socket_address{ "127.0.0.1", 9009 };
Poco::Net::StreamSocket socket{ socket_address };
unsigned char ilp_message[]{ "readings,city=London,make=Omron temperature=23.5,humidity=0.343 1465839830100400000" };
int bytes_sent = socket.sendBytes(ilp_message, sizeof(ilp_message));

但我在日志中看到了

 I i.q.c.l.t.LineTcpConnectionContext [18] peer disconnected with partial measurement, 83 unprocessed bytes

83 是我尝试发送的确切消息大小。

【问题讨论】:

  • 当行不以\n结尾时会发生此错误

标签: questdb


【解决方案1】:

我看起来你错过了 ILP 字符串末尾的换行符。新行将表明该行已完成。

【讨论】:

【解决方案2】:

所有字符串都需要引号。所以 ...city="伦敦".....

【讨论】:

  • 在 QuestDB 示例中,city=London 是一个符号,这就是它不需要用引号引起来的原因。如果城市列已预定义为字符串数据类型,则需要在 ILP 中将字符串值括在引号内
【解决方案3】:

请注意,如果该列已在表中定义为字符串,并且您的 ILP 中的字符串值包含空格,则 ILP 中的每个空格值都需要转义才能成功插入 QuestDB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多