Рекомендации по моделированию данных
В настоящем разделе описывается ряд различных способов загрузки данных в приложение Qlik Sense в зависимости от структурирования данных и требуемой модели данных.
Преобразование столбцов данных в строки
Мои данные могут выглядеть следующим образом, и мне требуется поместить цифры продаж в отдельное поле:
Год | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
Предлагаемые меры
При загрузке таблицы используйте префикс Crosstable.
Результат будет выглядеть так, как показано ниже:
Year | Quarter | Sales |
---|---|---|
2013 | Q1 | 34 |
2013 | Q2 | 54 |
2013 | Q3 | 53 |
2013 | Q4 | 52 |
2014 | Q1 | 47 |
... | ... | ... |
Для получения дополнительной информации о перекрестных таблицах см. Работа с перекрестными таблицами в скрипте загрузки данных и Crosstable.
Преобразование строк данных в поля
У меня имеется общая таблица с тремя полями, которая выглядит следующим образом, и мне требуется отобразить каждый атрибут в виде отдельной таблицы:
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
Предлагаемые меры
Создайте общую модель данных с помощью префикса загрузки Generic.
Вы получите модель данных, которая будет выглядеть следующим образом:
Для получения дополнительной информации об общих данных см. Универсальные базы данных и Generic.
Загрузка данных, упорядоченных по иерархическим уровням, например, схема организации
Мои данные сохранены в таблице со смежными узлами, которая выглядит следующим образом:
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
Предлагаемые меры
Загрузите данные с префиксом Hierarchy, чтобы создать таблицу расширенных узлов:
NodeID | ParentNodeID | Title | Level1 | Level2 | Level3 |
---|---|---|---|---|---|
1 | - | General manager | General manager | - | - |
2 | 1 | Country manager | General manager | Country manager | - |
3 | 2 | Region manager | General manager | Country manager | Region manager |
Для получения дополнительной информации об иерархических узлах см. Загрузка данных иерархии и Hierarchy.
Загрузка только новых или обновленных записей из базы данных большого размера
У меня есть база данных с большим количеством записей, но для обновления данных в приложении мне не требуется загружать ее полностью. Мне необходимо загрузить только новые или обновленные записи, а также удалить записи, которые удалены из базы данных.
Предлагаемые меры
Воспользуйтесь решением инкрементальной загрузки с помощью файлов QVD.
Для получения дополнительной информации см. Загрузка новых и обновленных записей с помощью инкрементальной загрузки.
Объединение данных из двух таблиц с общим полем
Qlik Sense автоматически связывает таблицы с общим полем, но мне требуется проконтролировать порядок их объединения.
Предлагаемые меры : Join / Keep
Префиксы Join или Keep позволяют объединить две таблицы в одной внутренней таблице.
Для получения дополнительной информации см. Объединение таблиц с помощью операторов Join и Keep.
Предлагаемые меры : Сопоставление
Альтернативой объединению таблиц является функция сопоставления, которая автоматизирует поиск связанных значений в таблице сопоставления. Это сокращает объем загружаемых данных.
Для получения дополнительной информации см. Использование сопоставления как альтернативы соединению.
Сопоставление дискретного значения с интервалом
У меня есть таблица с дискретными числовыми значениями (Event), и мне требуется сопоставить ее с одним или несколькими интервалами (Start и End).
Time | Event | Comment |
---|---|---|
00:00 | 0 | Start of shift 1 |
01:18 | 1 | Line stop |
02:23 | 2 | Line restart 50% |
04:15 | 3 | Line speed 100% |
08:00 | 4 | Start of shift 2 |
11:43 | 5 | End or production |
Start | End | Order |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
Предлагаемые меры
Используйте префикс IntervalMatch, чтобы связать поле Time с интервалом, указанным с помощью Start и End.
Для получения дополнительной информации см. Сопоставление интервалов с дискретными данными.
Если у интервала нет четко выраженного начала и конца, а имеется только метка времени изменения, как в таблице ниже, потребуется создать таблицу интервалов.
Currency | Change Data | Rate |
---|---|---|
EUR | - | 8.59 |
EUR | 28/01/2013 | 8.69 |
EUR | 15/02/2013 | 8.45 |
USD | - | 6.50 |
USD | 10/01/2013 | 6.56 |
USD | 03/02/2013 | 6.30 |
Для получения дополнительной информации см. Создание интервала дат из одиночной даты.
Обработка несогласованных значений полей
Данные включают в себя значения полей, которые в разных таблицах не всегда имеют одинаковые имена. Например, в одной таблице в столбце «Country» указано значение US, а в другой — United States. Подобные случаи препятствуют созданию связей.
Country | Region |
---|---|
US | Maryland |
US | Idaho |
US | New York |
US | California |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
Предлагаемые меры
Выполните очистку данных с помощью таблицы сопоставления, которая позволит произвести сравнение значений полей и установить верные связи.
Для получения дополнительной информации см. Очистка данных.
Обработка несогласованных значений полей, записанных прописными буквами
Данные включают в себя значения полей, форматирование которых в разных таблицах не всегда одинаково. Например, в одной таблице указано значение single в поле Type, а в другой таблице в том же поле содержится значение Single. Это препятствует созданию связей, так как поле Type будет содержать оба значения single и Single. В этом случае регистр имеет значение.
Type | Price |
---|---|
single | 23 |
double | 39 |
Type | Color |
---|---|
Single | Red |
Single | Blue |
Double | White |
Double | Black |
Предлагаемые меры
Если для загрузки данных использовалась функция Добавить данные, устранить проблему можно с помощью диспетчера данных.
Выполните следующие действия.
- В редакторе таблицы диспетчера данных откройте Table2.
-
Переименуйте поле Type в Table2.Type.
Если для добавления таблицы использовались функция Добавить данные с включенным профилированием данных, в целях предотвращения автоматического создания связей полю уже могло быть присвоено имя Table2.Type. В таком случае данная процедура приведет к созданию связи двух таблиц.
- Создайте вычисляемое поле с помощью выражения Lower(Table2.Type) и присвойте ему имя Type.
- Щелкните команду Загрузить данные.
Теперь таблицы Table1 и Table2 должны быть связаны на основе поля Type, которое содержит только значения в нижнем регистре, например single и double.
Для отображения значений в другом регистре можно использовать похожие процедуры, однако не забывайте о том, что связи таблиц создаются на основе полей с одинаковыми именами.
- Чтобы все значения начинались с прописной буквы, например Single, создайте вычисляемое поле Type в таблице Table1 и используйте выражение Capitalize(Table1.Type).
- Чтобы все значения отображались в верхнем регистре, например SINGLE, создайте вычисляемое поле Type в обеих таблицах и используйте выражения Upper(Table1.Type) и Upper(Table2.Type), соответственно.
Для получения дополнительной информации о вычисляемых полях см. Использование вычисляемых полей.
Для получения дополнительной информации об использовании прописных букв см. Capitalize — функция скриптa и диаграммы, Lower — функция скриптa и диаграммы и Upper — функция скриптa и диаграммы.
Загрузка геопространственных данных для визуализации данных с помощью карты
У меня имеются данные, которые требуется визуализировать с помощью карты, например данные продаж в конкретной стране или магазине. Чтобы воспользоваться визуализацией карт, требуется загрузить данные области или точек.
Предлагаемые меры
Можно загрузить данные области или точек, соответствующие местоположениям значений данных, из файла KML или Excel. Также необходимо загрузить фактический фон карты.
Для получения дополнительной информации см. Загрузка данных карты.