我正在运行一个服务,它与MongoDB集成以添加数据到MongoDB并处理分析查询。原始数据非常不结构化,在存储时会进行一些处理,使其变得更加规范,并存储在MongoDB集合中。这些转换是使用元数据执行的,元数据有点像这样:
{
"DeviceCategory":"DeviceCategoryName",
"ObjectIdentifier":"CollectionName" //Collection where document needs to be inserted
"Node": [
"node1",
"node2" // embeded nodes in raw data
],
"ExtraFields": [ //using this extra fields are added to raw data to handle queries
{
"TargetCollection": "TargetCollectionName", //collection to query for document
"QueryParams": [ //parameter needed to query
"Param1",
"Param2"
],
"Keys": [
{
"KeyToMap": "KeyName", //field to extract from returned document
"TargetKey": "NewKeyName" //key name to be added with value to KeyToMap
},
.....
]
},
{
"Collection": "TargetCollectionName",
"QueryParams": [
"Param1"
],
"Keys": [
{
"KeyToMap": "KeyName",
"TargetKey": "NewKeyName"
},
......
]
}
]
}
我已将此Meta-Data存储在MongoDB的meta_data集合中,并在每个插入请求时查询它。
我想在服务启动时缓存此数据。我正在寻找一个好的缓存解决方案,在dropwizard中使用缓存仍然不是很清楚。我已经阅读了dropwizard文档,但仍需要一些帮助才能开始使用缓存。服务正在运行,dropwizard版本为0.6.2。
谢谢!