我目前有一个接受 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 的数量和价值或交易的总金额之类的东西,并作为各种此类交易 JSON 的集合**
我想对如何进行一些建议:1)将这些JSON文件存储在服务器上,即文件系统,即2)我应该使用什么样的数据库来查询这些具有如此复杂结构的JSON文件
我的研究产生了几种可能性:1)使用 MongoDB 数据库存储对象的 JSON 代表并通过数据库进行查询。JSON 文件将如何存储?将事务 JSON 存储在 MongoDB 数据库中的最佳方式是什么?2) 将包含唯一全局 ID、用户 ID 和服务器上 JSON 文件地址的 SQL 数据库与这些文件上的聚合代码结合起来。我怀疑这是否可以缩放
如果有人对这个问题有任何见解,我会很高兴。谢谢。