Riakにマップリストを挿入するにはどうすればよいですか?私はSolr経由でリストを照会することもできます。ここRiak挿入リスト
私のターゲット・データ・モデルである:
{
"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はあらゆる種類のバッチインサートをサポートしていますか?私は解決策を見つけることができませんでしたので、私は手動でデータをマージすることでこれをやります。
感謝を含める必要があります。個々の注文を更新する必要はありません。しかし、新しいオーダーアイテムを顧客オーダーリストに追加/追加する必要があります。私はそれがorderIdによって各注文を検索したいと思うでしょう。 私はあなたが言及したようにマップとオブジェクトのリストとしてそれをモデリングすることに興味があります。あなたはRiakでこれをモデル化する方法についていくつかの詳細を共有できますか? – user2208562
同じ問題です。私が「個々の注文を更新する」と書いたとき、私は追加と削除も意味していました。構造体の一部である情報についても同様です。 'orderId'での検索は簡単です。' orders.orderId'を 'string'としてインデックスし、それらを複数値にする必要があります。 – vempo
私は混乱しています。データを統合するか、モデルを個別のキーと値のペアとして保存しますか?たとえば、個別のユニークキー内の各注文と、顧客にリンクされた別のキー内の注文のリスト。 'Maps'と' Lists'によって、何らかの理由であなたのモデルを表すDTOクラスを作成したくなければ、私はJavaクラスを意味しました。 – vempo