Как избежать создания острова дат в QlikView? - PullRequest
2 голосов
/ 03 августа 2010

Я начинающий разработчик, и у меня есть база данных с несколькими разными датами. Дата создания Дата конвертации Потерянная дата Дата изменения и т.д.

Данные должны отображаться в одном приложении и фильтроваться по всем датам. Я пишу код в QlikView и могу создавать и датировать острова и использовать их собственный анализ наборов для фильтрации данных, но это сильно влияет на производительность.

Кто-нибудь, кто занимается кодированием в QlikView, сталкивался с подобным сценарием?

Ответы [ 2 ]

4 голосов
/ 31 октября 2010

Анализ множеств действительно оказывает существенное влияние на производительность. Вам лучше использовать обычные функции выбора в QlikView.

Для ответа ниже я собираюсь предположить, что вы знакомы с концепцией Star Schema development. Вкратце это означает отделение измерений (полей выбора) от полей фактов (полей счетчиков, полей суммирования и т. Д.) И их соединение через таблицу ссылок.

Существует два возможных сценария:

1. Более одного свидания связано с одним и тем же фактом.

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

2. Разные даты связаны с разными фактами.

В этом случае вы можете использовать одно «Измерение календаря» для размещения всех полей даты. Просто создайте один ключ AutoNumber в своем календаре и назовите его %DateKey. Установите в этом поле связь между вашей таблицей календаря и таблицей ссылок. Теперь для всех таблиц фактов, в которых есть дата, которую вы хотите сделать доступной для выбора в календаре, убедитесь, что вы подключили ее к связываемой таблице, используя ключ, который включает дату в хэш Autonumber.

1 голос
/ 22 декабря 2011

Если бы он испытал то же самое, я бы рекомендовал создать то, что я называю таблицей ключей, как в примере ниже Key Table;сохраняет отношения, и вам не нужно так много использовать анализ множеств;просто убедитесь, что вы поместили таблицу со всеми возможными датами в качестве одной из дочерних таблиц и% DateKey, как предложил littlegreen

...