【发布时间】:2019-12-17 18:16:29
【问题描述】:
我有一个用例,其中 Druid 查询产生数百万行,这使得将响应作为行流使用很明显,每个行都有一个新行。
Druid SQL over HTTP 对此有很好的支持,resultFormat 配置支持 objectLines、arrayLines 和 csv 启用基于流的响应消费。
但是,我使用的是 Druid 的原生查询,似乎没有考虑 resultFormat 配置。响应是一个 JSONArray 就像 -
[
{
"version" : "v1",
"timestamp" : "2012-01-01T00:00:00.000Z",
"event" : {
"country" : <some_dim_value_one>,
"device" : <some_dim_value_two>,
"total_usage" : <some_value_one>,
"data_transfer" :<some_value_two>,
"avg_usage" : <some_avg_usage_value>
}
},
{
"version" : "v1",
"timestamp" : "2012-01-01T00:00:12.000Z",
"event" : {
"dim1" : <some_other_dim_value_one>,
"dim2" : <some_other_dim_value_two>,
"sample_name1" : <some_other_value_one>,
"sample_name2" :<some_other_value_two>,
"avg_usage" : <some_other_avg_usage_value>
}
},
...
]
此响应不包含换行符,难以作为流处理。它需要下载整个结果集,然后使用jq 等工具进行解析,以提取每行的行。
P.S 我已经测试过jd --stream,它又不是很快。因此想知道是否有任何东西可以将本机查询结果作为换行符分隔的行。
【问题讨论】:
标签: sql json database jq druid