2

我正在研究一个流进程,它可以在我的 MySQL 数据库中获取信息并将它们解析为 NoSQL 数据库(使用 InfluxDB)。此时,我可以通过 HTTP 请求发送 NoSQL 查询,但前提是我想发送整数值。问题是当我想发送一个字符串值时,我不能在我的“文本”有效负载中使用双引号,因为它会关闭我的属性。如果我在字符串值周围使用单引号,InfluxDB 会返回错误:

    [2018-12-28_11-07-18_302] INFO     {org.wso2.siddhi.core.stream.output.sink.LogSink} - log : Event{timestamp=1545991638301, data=[{"error":"unable to parse 'SEQTIME value=267,x_date_create={1}': invalid boolean"} ], isExpired=false} (Encoded) 

有我的代码:

@sink(type='http-request',
publisher.url='http://localhost:8086/write?db=bd_sensor_values',
method='POST',
headers="'Authorization: Basic XXXXX','Content-Type: application/x-www-form-urlencoded','cache-control: no-cache','Host:localhost:8086'",
sink.id="httpRequest_id",
@map(type='text', @payload("SEQTIME value={{id}},x_date_create={{x_date_create}}")))
define stream httpRequest (id int, x_date_create string);

问题出在@payload 属性中,带有x_date_create。我试图编码我的双引号,但它没有用(也许我做错了?)

任何想法 ?谢谢 !

4

2 回答 2

2

您可以使用以下方式在结果中添加双引号

@payload(""" "SEQTIME value"="{{id}}","x_date_create"="{{x_date_create}}" """)))
于 2019-01-02T04:57:37.493 回答
0

在字符串中使用双引号和转义引号。请参阅InfluxDB 教程中的示例:

weather,location=us-midwest temperature="too\"hot\"" 1465839830100400200
于 2019-01-01T17:46:41.583 回答