Моделирование данных диаграммы в звездообразной схеме

Я заинтересован в хранении научных данных из диаграммы (графика), скажем, x против y в хранилище данных, где x и y являются действительными числами.

Каждая диаграмма будет создана для фиксированного набора описательных измерений (например, время, дата, местоположение, оборудование), которые можно смоделировать в традиционной схеме звезда/снежинка.

Примером может служить угол зависимости от отклика детектора, где угол является независимой переменной, а отклик является зависимой. Угол здесь может быть любым действительным числом от 0 до 360 градусов.

Моя текущая мысль состоит в том, чтобы использовать реальное значение в качестве измерения, потенциально предварительно заполняя таблицу angle_dimension значениями от 0 до 360 в подходящем масштабе (например, 3dp) и округляя результаты измерений, где это необходимо, хотя это приводит к потере точности.

Мне интересно, есть ли более эффективные способы хранения этих данных для последующего использования в кубе OLAP? Тип запроса, который я хотел бы сделать, - это сравнить данные диаграммы в разные моменты времени, чтобы найти изменения или посмотреть средний отклик в заданном диапазоне (скажем, 0–15 градусов) в разных местах или для другого оборудования.


person adam    schedule 19.02.2017    source источник
comment
Вы хотите просмотреть данные уровня детализации или сводные данные? Похоже, вы хотите анализировать подробные данные - кубы не очень хороши в этом. Вы знаете, сколько записей вы ожидаете? Сколько других атрибутов против угла? Для многомерного моделирования это не очень подходит. Как сейчас хранятся данные и какие у вас проблемы с этим?   -  person Nick.McDermaid    schedule 19.02.2017
comment
Я действительно хочу, чтобы оба были доступны, цель состоит в том, чтобы посмотреть на средние значения, а затем иметь возможность углубиться в детали, чтобы выяснить, почему вещи выходят за пределы допуска. В настоящее время я храню различные параметры оборудования (около 20, но может увеличиться до пары сотен), созданные в виде диаграмм с интервалами времени выборки (в 0,25 с), однако они также могут варьироваться в зависимости от угла. У нас есть несколько подобных единиц оборудования, каждое из которых имеет от 2 до 3 режимов работы. Оборудование формирует диаграммы в формате XML.   -  person adam    schedule 19.02.2017
comment
Я надеялся поместить данные в форму, в которой я мог бы использовать готовый инструмент OLAP (сообщество Pentaho), чтобы позволить пользователям манипулировать данными, а не писать собственный код. В настоящее время это скорее доказательство принципа, у меня есть простой куб с примерно 7 миллионами записей.   -  person adam    schedule 19.02.2017
comment
С точки зрения хранения для любого/всего анализа я бы предложил таблицу фактов в зерне «точки графика», то есть одну строку на X на графике. Вы получите два действительных числа и некоторую размерность. Однако на самом деле это не поддается легкому анализу, поэтому вы можете опираться на это, создав более легко анализируемую звездную схему/куб. Ваша идея иметь угловое измерение хороша, потому что она позволяет людям нарезать данные, но предполагает, что все ваши измерения всегда будут углами и ответами: было бы больно, если бы вам всегда нужно было создавать новые измерения. для каждого вида анализа.   -  person Rich    schedule 20.02.2017
comment
Ваша точка зрения о диапазоне также интересна: каждая точка angle_dimension может иметь столбец «угол-диапазон», который предварительно рассчитан до 0-15, 16-30 и т. д., который затем легко использовать в гистограммах.   -  person Rich    schedule 20.02.2017


Ответы (1)


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

Один из способов моделирования этого может заключаться в том, чтобы иметь зерно факта как «одну строку на точку графика» с двумя реальными цифрами в факте, не теряя точности.

Затем вы можете добавить дополнительные измерения, как вы говорите, чтобы классифицировать цифры. В вашем примере с углом вы также можете иметь «диапазон углов» в виде столбца, показывающего 0–15, 16–30 и т. д.

Возможно, вам придется иметь более сложный / общий дизайн, если у вас есть больше, чем угол и ответ, с которым нужно бороться, с общим размером «Тип оси X», включая диапазон, но с дополнительным столбцом «Тип оси X», который является «угол ', 'ответ' и т.д.

Я думаю, что ваша общая идея здесь верна, и готовые инструменты должны быть в порядке как с деталями, так и с резюме. Ключ в том, чтобы смоделировать что-то, что отражает как сущность того, что вы измеряете (например, показания в машине), так и то, как люди хотят это анализировать. Вы бы предпочли использовать возможности куба для расчета средних значений, а не использовать для этого базовую многомерную модель.

person Rich    schedule 20.02.2017
comment
Привет Рич, спасибо за ответ и комментарии. Я рассматривал подход «строка на точку» в качестве альтернативы для решения дублирующихся ключевых проблем с моей схемой прототипа (у меня есть составной pkey каждого pkey измерения для каждого факта, включая x_value_dimension. повторяющиеся значения x, например, 0->360-> 0 привели к нарушениям). Однако я думал, что этот подход затруднит повторную визуализацию исходных графиков для поиска неисправностей. Добавление дополнительного измерения, как вы предлагаете, для группировки (возможно, каждого целого числа, чтобы быть более гибким) решит эту проблему на практике. - person adam; 21.02.2017
comment
Для более общей (интересной?) проблемы я потенциально мог бы заимствовать из поплавков и иметь значащие и экспоненциальные размеры группировки, так как для аналогичных типов оси X мы обычно ожидаем аналогичный масштаб, и мы, вероятно, будем собирать данные, вероятно, только биннинг данных до 1 sf (например, 0,1 или 0,05). - person adam; 21.02.2017
comment
Первичный ключ нужен для определения и обеспечения уровня детализации таблицы. Вы не должны автоматически просто устанавливать ПК для всех ключей измерения. Если у вас есть какой-то номер образца из вашей исходной системы, это должно быть на самом деле и должно иметь какое-то уникальное ограничение. - person Nick.McDermaid; 21.02.2017
comment
@adam, группировка может быть как для каждого целого числа (т. Е. В вашем измерении есть одна строка для каждого целого числа), так и для диапазонов, поскольку в таблице измерений может быть дополнительный столбец для диапазонов, т. Е. Каждое целое число в измерении находится в диапазоне. - person Rich; 21.02.2017
comment
Спасибо обоим за ваши комментарии, это мой первый набег на многомерное моделирование для хранилища данных, поэтому я сделал немало ошибок со схемой прототипа, которые я надеюсь исправить в ревизии. к счастью, еще ничего не зафиксировано, и исходные данные легко доступны! Я думал о том или другом в отношении размеров выборки и x_value, я действительно могу с радостью сделать оба. @Rich, мне нужно будет выбрать подходящую иерархию для измерения x_value. Кроме того, поскольку угол является особым случаем (полярные координаты вместо декартовых), он, вероятно, должен где-то жить как тип оси. - person adam; 22.02.2017