Лучшие способы моделирования данных

В настоящем разделе описывается ряд различных способов загрузки данных в приложение Qlik Sense в зависимости от структурирования данных и требуемой модели данных.

Преобразование столбцов данных в строки

Мои данные могут выглядеть следующим образом, и мне требуется поместить цифры продаж в отдельное поле:

Исходная таблица данных
Год Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

При загрузке таблицы используйте префикс Crosstable.

Результат будет выглядеть так, как показано ниже:

Таблица после применения префикса 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

Proposed action  

Создайте общую модель данных с помощью префикса загрузки Generic.

Вы получите модель данных, которая будет выглядеть следующим образом:

Generic data model.

Для получения дополнительной информации об общих данных см. Универсальные базы данных и Generic.

Загрузка данных, упорядоченных по иерархическим уровням, например, схема организации

Мои данные сохранены в таблице со смежными узлами, которая выглядит следующим образом:

Таблица со смежными узлами
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Загрузите данные с префиксом 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.

Загрузка только новых или обновленных записей из базы данных большого размера

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

Proposed action  

Воспользуйтесь решением инкрементальной загрузки с помощью файлов QVD.

Для получения дополнительной информации см. Загрузка новых и обновленных записей с помощью инкрементальной загрузки.

Объединение данных из двух таблиц с общим полем

Qlik Sense автоматически связывает таблицы с общим полем, но мне требуется проконтролировать порядок их объединения.

Proposed action : Join / Keep

Префиксы Join или Keep позволяют объединить две таблицы в одной внутренней таблице.

Для получения дополнительной информации см. Объединение таблиц с помощью операторов Join и Keep.

Proposed action : Сопоставление

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

Для получения дополнительной информации см. Использование сопоставления как альтернативы соединению.

Сопоставление дискретного значения с интервалом

У меня есть таблица с дискретными числовыми значениями (Event), и мне требуется сопоставить ее с одним или несколькими интервалами (Start и End).

Таблица с дискретными числовыми значениями (Event)
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)
Start End Order
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

Используйте префикс 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. Подобные случаи препятствуют созданию связей.

Таблица 1
Country Region
US Maryland
US Idaho
US New York
US California
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

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

Для получения дополнительной информации см. Очистка данных.

Обработка несогласованных значений полей, записанных прописными буквами

Данные включают в себя значения полей, форматирование которых в разных таблицах не всегда одинаково. Например, в одной таблице указано значение single в поле Type, а в другой таблице в том же поле содержится значение Single. Это препятствует созданию связей, так как поле Type будет содержать оба значения single и Single. В этом случае регистр имеет значение.

Таблица 1
Type Price
single 23
double 39
Таблица 2
Type Color
Single Red
Single Blue
Double White
Double Black

Proposed action  

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

Выполните следующие действия.

  1. В редакторе таблицы диспетчера данных откройте Table2.
  2. Переименуйте поле Type в Table2.Type.

    Если для добавления таблицы использовались функция Добавить данные с включенным профилированием данных, в целях предотвращения автоматического создания связей полю уже могло быть присвоено имя Table2.Type. В таком случае данная процедура приведет к созданию связи двух таблиц.

  3. Создайте вычисляемое поле с помощью выражения Lower(Table2.Type) и присвойте ему имя Type.
  4. Щелкните команду Загрузить данные.

Теперь таблицы 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 и диаграммы.

Загрузка геопространственных данных для визуализации данных с помощью карты

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

Proposed action  

Можно загрузить данные области или точек, соответствующие местоположениям значений данных, из файла KML или Excel. Также необходимо загрузить фактический фон карты.

Для получения дополнительной информации см. Загрузка данных карты.