Хранить историю значений в PostgreSQL

Допустим, нам нужно хранить показания датчиков температуры и вести историю на каждый день. Каждая мера является кортежем day: number, value: string (некоторые дни могут быть пропущены, поэтому мы должны хранить день явно). Есть сотни тысяч датчиков.

Добавление нового измерения не должно требовать перечитывания и перезаписи всего объекта, это должно быть небольшое добавочное добавление.

И может быть многократное чтение за один и тот же день. В таком случае, если день совпадает , следует сохранить только самое последнее измерение для этого дня.

Какую структуру данных следует использовать? Я вижу следующие пути:

CREATE TABLE sensor_history (
  sensor_id integer,
  time      integer[],
  value     text[]
);

или же

CREATE TABLE sensor_history (
  sensor_id integer,
  history   json/jsonb/hstore
);

1 ответ

Почему бы просто не хранить один ряд на кортеж? например

CREATE TABLE sensor_history (
  sensor_id integer,
  time      integer,
  value     text
);
Другие вопросы по тегам