Sparkplug DataSet: согласовать таблицу как структуру, а не как набор похожих значений
Фотография конкретного исполнения не приложена.
DataSet в Sparkplug представляет матрицу с именами столбцов, их типами и строками значений. Размер массивов columns и types должен совпадать, а types включается в каждый DataSet. Отсутствующий тип нельзя надёжно восстановить по внешнему виду первого значения.
При интеграции согласуют порядок столбцов, их назначение и точные типы. Два массива одинаковой длины ещё не доказывают совпадение смысла: перестановка столбцов способна связать значение с неверным параметром. Изменение схемы требует обновления контракта потребителя.
Декодер также должен проверять строки и допустимые представления значений. Неполную либо несовместимую структуру не следует незаметно дополнять нулями. Для оператора важнее явная диагностика, чем таблица с правдоподобными, но неверно подписанными числами.
В приёмке используют известный DataSet и намеренно несовпадающую схему. Ожидается правильное чтение согласованного варианта и различимый отказ несовместимого. Успешное получение бинарного payload не является подтверждением правильной интерпретации таблицы.
Основание — Eclipse Sparkplug Specification 3.0.0, 2022-11-16, физические страницы PDF 79, 80, 83. Пример описывает проектную проверку; конкретные broker, gateway и Host не испытывались. Поддержка этой версии каждой реализацией требует подтверждения.