Я нашел ответ, нам нужно использовать опцию «Скрипт». Сначала мы устанавливаем метрику, чтобы получить сумму яблока, затем результат суммы яблока добавляется в doc ["orange"]. Value
В скрипте я написал что-то вроде этого _value + doc ["orange" ] .value
и возвращаемое значение на графике верное! : D
Ну, это является, конечно, представимым. Что-то как:
message CsvFile {
repeated CsvHeader header = 1;
repeated CsvRow row = 2;
}
message CsvHeader {
require string name = 1;
require ColumnType type = 2;
}
enum ColumnType {
DECIMAL = 1;
STRING = 2;
}
message CsvRow {
repeated CsvValue value = 1;
}
// Note that the column is implicit based on position within row
message CsvValue {
optional string string_value = 1;
optional Decimal decimal_value = 2;
}
message Decimal {
// However you want to represent it (there are various options here)
}
Я не уверен, сколько преимущества это предоставит, обратите внимание... Можно, конечно, добавить, больше информации (добавьте к сообщению CsvFile), и соответствование требованиям завтрашнего дня находится в "нормальном ПБ, путь" - только добавляет дополнительные поля и т.д.
Ну, protobuf-сеть (моя версия) основана на регулярных типах.NET, таким образом, не (так как она не справится с различными схемами все время). Но версия Jon могла бы позволить динамические типы. Лично, я просто использовал бы CSV и выполнил бы его через GZipStream - я ожидаю, что это будет хорошо для цели.
Править: на самом деле я забыл: protobuf-сеть действительно поддерживает расширяемые объекты, но необходимо быть немного осторожными..., она зависела бы от полного контекста, я ожидаю.
Плюс подход Jon вложенных данных, вероятно, работал бы также.