如何在 Riak 中插入地图列表?我也可以通过 Solr 查询列表。
这是我的目标数据模型:
{
"id":"fa0b758cf8de4a40a54f215563bb483c",
"version":"g2wAAAABaAJtAAAADN4oTJvAfuENAAE8fWEBag==",
"creator":"ADMIN",
"creatorAppId":"RIAK_QA_APP1",
"creation":1470350862095,
"customerId":"68af96dae60ccac4e6",
"customerName":"John Appleseed",
"orders":[
{
"orderId":"238dhu38ehj",
"orderType":"sporting",
"orderDescription":"Baseball Batt",
"dateOfPurchase":"5470354262012",
"delivery":"2 day express",
"processTimeMS":56,
"customerAttributes":[
{
"key":"lastSessionDuration",
"value":"1 day"
},
{
"key":"memberSince",
"value":"1470350862095"
}
]
},
{
"orderId":"9sdjh349hn",
"orderType":"furniture",
"orderDescription":"Sectional Couch",
"dateOfPurchase":"0970354262087",
"delivery":"Overnight",
"processTimeMS":78,
"customerAttributes":[
{
"key":"lastSessionDuration",
"value":"1 day"
},
{
"key":"memberSince",
"value":"1470350862095"
}
]
},
{
"orderId":"1009shdj473",
"orderType":"gaming",
"orderDescription":"FIFA 2016 - XBox One",
"dateOfPurchase":"1470354342013",
"delivery":"UPS Ground",
"processTimeMS":68,
"customerAttributes":[
{
"key":"lastSessionDuration",
"value":"1 day"
},
{
"key":"memberSince",
"value":"1470350862095"
}
]
}
]
}
当前的数据模型分别保存每个订单项目,导致大量的 Riak 写入。当我们的消息系统开始每秒推送数千条消息时,这将成为瓶颈。所以这里的意图(有点 POC)是将每个客户的所有订单项目合并到一个"orders"
列表中,并作为一个资源持续存在......类似于一个批次。
关于这一点,Riak 是否支持任何类型的批量插入?我无法找到解决方案,所以我通过合并数据手动执行此操作。