私は現在、JSONファイル(ユーザートランザクションデータを含むJSONシリアル化オブジェクト)を受け入れ、それをサーバーに保存するAPIを持っています。このようなすべてのJSONファイルには、一意のグローバルIDとそれが関連付けられている一意のユーザーがあります。そのようなファイルは毎日何十億も生成されています。ユーザーは、自分に関連付けられているすべてのJSONファイルをクエリして、それらのファイルに基づいて計算された一連の集計結果を生成できるようになります。
保存する必要のある一般的なJSONファイルは次のようになります。
[ { "currencyCode" : "INR",
"receiptNumber" : { "value" : "1E466GDX5X2C" },
"retailTransaction" : [ { "grandTotal" : 90000.0,
"lineItem" : [ { "otherAttributes" : { },
"sale" : { "description" : "Samsung galaxy S3",
"discountAmount" : { "currency" : "INR",
"value" : 2500
},
"itemSubType" : "SmartPhone",
"otherAttributes" : { },
"unitCostPrice" : { "quantity" : 1,
"value" : 35000
}
},
"sequenceNumber" : 1000
},
{ "customerOrderForPickup" : { "description" : "iPhone5",
"discountAmount" : { "currency" : "INR",
"value" : 5000
},
"itemSubType" : "SmartPhone",
"otherAttributes" : { },
"unitCostPrice" : { "quantity" : 1,
"value" : 55000
}
},
"otherAttributes" : { },
"sequenceNumber" : 1000
}
],
"otherAttributes" : { },
"reason" : "Delivery",
"total" : [ { "otherAttributes" : { },
"type" : "TransactionGrossAmount",
"value" : 35000
} ]
},
null
],
"sequenceNumber" : 125435,
"vatRegistrationNumber" : "10868758650"
} ]
上記のJSONは、他のクラスのオブジェクトの単一または配列を属性として含む複雑なオブジェクトのシリアル化されたバージョンです。したがって、「receiptNumber」はJSONファイルのユニバーサルIDです。
customerOrderForPickupの数量や値、トランザクションのgrandTotalなどをクエリし、そのようなさまざまなトランザクションJSONの集計として入力する必要があります**
1)これらのJSONファイルをサーバー、つまりファイルシステムに保存する方法についていくつか提案したいと思います。2)このような複雑な構造を持つこれらのJSONファイルをクエリするためにどのようなデータベースを使用する必要がありますか。
私の調査の結果、いくつかの可能性がありました。1)MongoDBデータベースを使用して、オブジェクトのJSON表現を保存し、データベースを介してクエリを実行します。JSONファイルはどのように保存されますか?トランザクションJSONをMongoDBデータベースに保存するための最良の方法は何でしょうか?2)サーバー上の一意のグローバルID、ユーザーID、JSONファイルのアドレスを含むSQLデータベースを、これらのファイルの集約コードと結合します。これをスケーリングできるかどうかは疑問です
誰かが問題について何か洞察を持っていればうれしいでしょう。ありがとう。