Я получаю данные в таком формате, как
{
name:"index_name",
status: "good",
datapoints: [{
paramType: "ABC",
batch: [{
time:"timestamp1<epoch in sec>",
value: "123"
},{
time:"timestamp2<epoch in sec>",
value: "123"
}]
},
{
paramType: "XYZ",
batch: [{
time:"timestamp1<epoch in sec>",
value: "123"
},{
time:"timestamp2<epoch in sec>",
value: "124"
}]
}]
}
Я хотел бы сохранить данные вasticsearch таким образом, чтобы я мог выполнять запросы на основе timerange
, status
или paramType
.
Как уже упоминалось здесь , я могу определить datapoints
или batch
как вложенный тип данных, который позволит индексировать объект внутри массива.
Возможно, я подумаю и о другом, разделив структуру на отдельные документы.например,
{
name : "index_name",
status: "good",
paramType:"ABC",
time:"timestamp<epoch in sec>",
value: "123"
}
какой из них будет наиболее эффективным?
Если я выберу второй путь, я знаю, что в массиве batch
может быть ~ 1000 элементов и 10-15paramsType
массив, что означает, что будет сгенерировано ~ 15k документов, а пара значений ключей 15k * 5 (= 75K) будет повторяться в индексе?
Здесь это объясняет преимуществои недостаток использования вложенных, но не связанных с производительностью статистических данных.в моем случае не будет никакого обновления во внутреннем объекте.Так что не уверен, какой из них будет лучше.Кроме того, у меня есть два вложенных объекта, поэтому я хотел бы знать, как я могу запросить, если я использую вложенный для получения данных между временным диапазоном?