我有一个表中的输入数据。表格数据看起来像 <Customer_id> <Item_id> <Item name>
。对于客户带来的每件商品,表中都有单独的一行。例如,如果c1购买i1,i2,i3,i4,i5,则表中将有5行。
现在,我要插入elasticsearch的数据是这样的:
{
"c1": [
{
"item_id": "i1",
"item_name": "ABC"
},
{
"item_id": "i2",
"item_name": "XYZ"
},
.....
],
"c2": [
{
"item_id": 4,
"item_name": "PQR"
}
]
}
如何在logstash中如上所述修改输入?
而且我的架构看起来像这样:
物品:item_id,item_name
购买:cust_id,item_id
另外,能否请您提出要进行上述输出的SQL查询?
我采用的方法是创建一个SQL查询,将这些行Customer_ID
组合在一起,并用于GROUP_CONCAT
收集该组的所有项目。
然后,您可以将logstash jdbc输入与上面提出的SQL查询一起使用,您应该会很好。
更新
我对您的SQL查询进行了如下修改:
SELECT CONCAT('{"',cust_id,'": [',GROUP_CONCAT(CONCAT('{"item_id":',buy.item_id,','),CONCAT('"item_name": "',item.item_name,'"}')), ']}')
FROM item, buy
WHERE buy.item_id = item.item_id
GROUP BY cust_id
这样会产生类似您需要的行的行:
{"1": [{"item_id":1,"item_name": "abc"},{"item_id":2,"item_name": "xyz"}]}
{"2": [{"item_id":4,"item_name": "pqr"}]}
问题内容: 我希望我不会错过doco中任何明显的内容,如果可以的话,我相信有人会帮助您。 我正在使用asp.net webapi返回带有日期字段的DTO。这些使用JSON.Net(格式为‘2013-03-11T12:37:38.693’)进行序列化。 我想使用过滤器,但是在INPUT元素中,这是否可行,或者我应该创建一个新的过滤器或指令来完成此操作? 我缺少任何捷径吗? 问题答案: 简而言之:如果
我有下面的servlet过滤器。
我正在我的web应用程序中使用spring cloud sleuth。不幸的是,我接到呼叫的第三方正在X-B3-TraceId标头中发送UUID。但是,spring中的TraceFilter在从字符串转换为十六进制时可能会检测出错误,因为UUID中有“-”字符。因此,我决定编写自己的过滤器,它将在TraceFilter之前拦截请求,并从标头中删除跟踪id。这是我的配置: 这是spring clou
1.3.3. 过滤输入 过滤是Web应用安全的基础。它是你验证数据合法性的过程。通过在输入时确认对所有的数据进行过滤,你可以避免被污染(未过滤)数据在你的程序中被误信及误用。大多数流行的PHP应用的漏洞最终都是因为没有对输入进行恰当过滤造成的。 我所指的过滤输入是指三个不同的步骤: l识别输入 l过滤输入 l区分已过滤及被污染数据 把识别输入做为第一步是因为如果你不知道它是什么,你也就不能正确地过
我们经常会要求用户在文本框中输入特定的数据,或者输入特定格式的数据。例如,必须包含某些字符,或者必须匹配某种模式。由于文本框在默认情况下没有提供多少验证数据的手段,因此必须使用JavaScript 来完成此类过滤输入的操作。而综合运用事件和DOM 手段,就可以将普通的文本框转换成能够理解用户输入数据的功能型控件。 1. 屏蔽字符 有时候,我们需要用户输入的文本中包含或不包含某些字符。例如,电话号码
我正在学习反应和反应形式,并试图创建一个动态和可扩展的形式。我已经设置了具有的状态,并基于该类型,显示相应的输入类型(因此它可以是文本、文本区域、单选、选择、日期或复选框)。我试图写一个函数,这样它将动态设置基于的表单输入,但我卡住了试图实现相同的变化。 所以如果,或,等等。 请检查此工作代码沙盒。 看看这个完整的代码片段:- 我仍在努力学习并花时间与ReactJS在一起,因此任何帮助都将不胜感激