Изменить идентификатор элемента атрибута Gooddata
Пока Gooddata не работает с часами, мы создали два набора атрибутов (begin_hour и end_hour) для обработки часов дня (с 00 до 23).
У нас также есть набор данных Store, в котором есть два поля для обработки рабочего времени каждого магазина (store_begin_hour и store_end_hour).
Чтобы получить значения только из рабочего времени каждого магазина, мы сделали следующую метрику:
select avg(store_temperature) where begin_hour >= store_begin_hour and end_hour <= store_end_hour
Сначала это работало, но мы заметили, что не было никаких данных за несколько часов (15,16,17). Затем мы посмотрели на элементы? Id каждого из атрибутов часа и обнаружили проблему.
Элемент? Id этих 3 часов (15, 16, 17) не имел той же последовательности, что и остальные (... 13h = 22, 14h = 23, 15h =7, 16h =6, 17h =9, 18h = 24...), поэтому он не был включен в критерии отбора.
Я попытался удалить значения атрибута часа и снова загрузить те же данные в эти наборы данных, но идентификатор все равно остается прежним.
Есть какой-нибудь способ изменить эти 3 идентификатора за эти 3 часа?
OBS: "Идентификатор", о котором я говорю, - это не поле, а идентификатор URL каждого значения атрибута, как на изображении ниже:
3 ответа
Я решил эту проблему, вставив эти 3 часа (15,16,17) в оговорку.
Что-то вроде "выберите значение где (час между 08 и 18) или (час в (15,16,17))".
Я знаю, что делать такие хаки нехорошо, но другого выбора у меня, видимо, не было.
Спасибо, ребята, за все ответы! Ты обалденный!
Есть способ, как работать с часами и минутами в GoodData, используя пользовательское измерение даты.
Но чтобы полностью ответить на ваш вопрос, необходимо изучить вашу логическую модель данных. Не могли бы вы поделиться им через службу поддержки@gooddata.com? Спасибо!
В общем, числовые сравнения, такие как begin_hour >= store_begin_hour
работает только с числовыми типами, то есть фактами. Внутренние числовые идентификаторы значений атрибутов автоматически генерируются во время загрузки и не могут быть изменены конечным пользователем.
Если вы хотите использовать свое пользовательское измерение времени как для нарезки, так и для числовой фильтрации, я рекомендую расширить его дополнительными фактами (или, может быть, просто хотите, чтобы факт был в течение минуты дня).
Просто для полноты - есть одно исключение из того, что я описал в первом абзаце - встроенное измерение даты GoodData. Его встроенные атрибуты даты имеют двойной атрибут / фактический символ, и их можно использовать как для нарезки, агрегирования, так и для числового сравнения.
Надеюсь, поможет,
Павел