Перейти к основному содержимому Перейти к дополнительному содержимому

Рекомендации по моделированию данных

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

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

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

Исходная таблица данных
ГодQ1Q2Q3Q4
201334545352
201447566567
201557566371

Предлагаемые меры  

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

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

Таблица после применения префикса Crosstable
Year Quarter Sales
2013 Q1 34
2013Q254
2013Q353
2013Q452
2014Q147
.........

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

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

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

Общая таблица с тремя полями
Object Attribute Value
ball color red
balldiameter25
ballweight3
boxcolor56
boxheight30
boxlength20
boxwidth25

Предлагаемые меры  

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

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

Общая модель данных.

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

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

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

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

Предлагаемые меры  

Загрузите данные с префиксом Hierarchy, чтобы создать таблицу расширенных узлов:

Таблица расширенных узлов
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
21Country managerGeneral managerCountry manager-
32Region managerGeneral managerCountry managerRegion manager

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

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

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

Предлагаемые меры  

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

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

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

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

Предлагаемые меры : Join / Keep

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

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

Предлагаемые меры : Сопоставление

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

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

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

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

Таблица с дискретными числовыми значениями (Event)
ВремяСобытиеКомментарий
00:000Начало смены 1
01:181Остановка линии
02:232Перезапуск линии 50%
04:153Скорость линии 100%
08:004Начало смены 2
11:435Конец или производство
Таблица с интервалами (Start и End)
НачатьКонецПорядок
01:0003:35A
02:3007:58Б
03:0410:27C
07:2311:43D

Предлагаемые меры  

Используйте префикс IntervalMatch, чтобы связать поле Time с интервалом, указанным с помощью Start и End.

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

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

Таблица с меткой времени изменения
Currency (Валюта)Изменение данныхКурс
EUR-8.59
EUR28/01/20138.69
EUR15/02/20138.45
USD-6.50
USD10/01/20136.56
USD03/02/20136.30

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

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

Данные включают в себя значения полей, которые в разных таблицах не всегда имеют одинаковые имена. Например, в одной таблице в столбце «Country» указано значение US, а в другой — United States. Подобные случаи препятствуют созданию связей.

Таблица 1
СтранаРегион
СШАМэриленд
СШААйдахо
СШАНью-Йорк
СШАКалифорния
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Предлагаемые меры  

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

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

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

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

Таблица 1
ТипЦена
Одиночный23
ДВОЙНОЕ ЧИСЛО39
Таблица 2
ТипЦвет
ОсновнойКрасный
ОсновнойСиний
ДВОЙНОЕ ЧИСЛОБелое
ДВОЙНОЕ ЧИСЛОЧерный

Предлагаемые меры  

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

  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 Функция скрипта и диаграммы, Lower Функция скрипта и диаграммы и Upper Функция скрипта и диаграммы.

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

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

Предлагаемые меры  

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

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

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице или с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом!