Поделиться через


Таблицы фактов и измерений

При проектировании схемы для базы данных azure Data Explorer следует думать, что таблицы относятся к одной из двух категорий.

Таблицы фактов

Таблицы фактов — это таблицы, записи которых являются неизменяемыми "фактами", такими как журналы служб и сведения об измерениях. Записи постепенно добавляются в таблицу потоковой передачей или большими блоками. Записи остаются там до тех пор, пока они не будут удалены из-за стоимости или из-за того, что они потеряли свою ценность. В противном случае записи никогда не обновляются.

Данные сущностей иногда хранятся в таблицах фактов, где данные сущности изменяются медленно. Например, данные о какой-либо физической сущности, такой как офисное оборудование, которое редко меняет расположение. Так как данные в Kusto являются неизменяемыми, обычно каждая таблица содержит два столбца:

  • Столбец идентификатора (string), который идентифицирует сущность.
  • Столбец метки времени последнего изменения (datetime)

Затем извлекается только последняя запись для каждого удостоверения сущности.

Таблицы измерений

Таблицы измерений:

  • Хранение ссылочных данных, таких как таблицы подстановки, от идентификатора сущности до ее свойств
  • Хранение snapshot данных в таблицах, все содержимое которых изменяется в одной транзакции

Таблицы измерений не регулярно помечаются с новыми данными. Вместо этого все содержимое данных обновляется одновременно с помощью таких операций, как .set-or-replace, .move extents или .rename tables.

Иногда таблицы измерений могут быть производными от таблиц фактов. Этот процесс можно выполнить с помощью материализованного представления таблицы фактов с запросом к таблице, которая принимает последнюю запись для каждой сущности.

Различения таблиц фактов и измерений

В Kusto существуют процессы, которые различают таблицы фактов и таблицы измерений. Одним из них является непрерывный экспорт.

Эти механизмы гарантированно обрабатывают данные в таблицах фактов только один раз. Они полагаются на механизм курсора базы данных .

Например, при каждом выполнении задания непрерывного экспорта экспортируются все записи, которые были приема с момента последнего обновления курсора базы данных. Задания непрерывного экспорта должны различать таблицы фактов и таблицы измерений. Таблицы фактов обрабатывают только недавно обработанные данные, а таблицы измерений используются в качестве подстановок. Поэтому необходимо учитывать всю таблицу.

Невозможно "пометить" таблицу как "таблицу фактов" или "таблицу измерений". Способ приема данных в таблицу и способ ее использования определяет ее тип.