Вы находитесь на странице: 1из 50

Учебник - Следующие шаги в сценарии

Qlik Sense ®

Июнь 2019

Copyright © 1993-2019 QlikTech International AB. Все права защищены.

HELP.QLIK.COM
© 2019 QlikTech International AB. Все права защищены. Qlik ®, Qlik Sense ®, QlikView ®, QlikTech ®, Qlik Облако ®, Qlik DataMarket ®, Qlik Analytics

Platform ®, Qlik NPrinting ®, Qlik соединители ®, Qlik GeoAnalytics ®, Qlik ядро ®,

Ассоциативный разница ®, Свинец с данными ™, Qlik данных Catalyst ™, Qlik Ассоциативный Big Index Data ™ и логотипы QlikTech являются торговыми марками компании QlikTech

International AB, которые были зарегистрированы в одной или нескольких странах. Другие марки и логотипы, упомянутые в настоящем документе, являются товарными

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


содержание

1 Добро пожаловать в этот учебник! 5

1.1 Об этом руководстве 5

1.2 Предпосылки 5

Создание подключения к данным в Qlik Sense Enterprise 5


Размещение учебника исходных файлов в Qlik Sense Desktop 6
1.3 Дальнейшее чтение и ресурсы 6

2 загрузки данных в Qlik Sense 7

2.1 Создание нового приложения 7

2.2 Добавление соединения 8

Подключение к данным файла 8


2.3 Отладка сценария загрузки 9

панель инструментов Debug 9


Выход 9
3 Преобразование данных 10

3.1 Использование префикса Кросс 10

приставка Таблица результатов 10


Очистка кэш-памяти 13
3.2 Комбинирование таблицы с регистрации и сохранить 13

Присоединиться 14
Использование Регистрация 14
Хранить 17
внутренний 17
Оставил 18
Правильно 19
3.3 Использование между функцией записи: Peek, Предыдущим и Exists 20

заглядывать 21
предыдущий 21
Существует 21
Использование Peek () и Предыдущий () 21
Использование Exists () 25
3.4 Соответствующие интервалы и итеративный нагрузки 28

Использование префикса Intervalmatch 28


Очищение 4 данных 36

4.1 Таблицы Mapping 36

Правила: 36
4.2 Отображение функций и заявление 36

Приставка 4,3 Mapping 36

Функция ApplyMap () 37
Функция MapSubstring () 39
Карта ... Использование 41
Unmap 41
5 Обработка данных иерархических 42

5.1 Иерархия префикс 42

Префикс 5.2 HierarchyBelongsTo 43

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 3


содержание

авторизация 44
6 QVD файлы 47

6.1 Работа с файлами QVD 47

6.2 Создание QVD файлов 48

хранить 48
буфер 49
6.3 Чтение данных fromQVD файлов 50

6.4 Спасибо! 50

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 4


1 Добро пожаловать в этот учебник!

1 Добро пожаловать в этот учебник!


Добро пожаловать в этот учебник, который познакомит вас с более продвинутыми сценариями в Qlik Sense. Вы найдете полный синтаксис ссылки в

интерактивной справке и в синтаксис и диаграмма функции сценария, можно купить в

help.qlik.com ,

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

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

1,1 Об этом руководстве


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

Вот некоторые из предметов в этом руководстве:

L Редактирование сценариев

L Преобразование данных

L Очистка данных

L Иерархические данные

Когда вы закончите учебник, вы должны иметь четкое представление о некоторых из Themore продвинутых шагов, участвующих в сценарии в

Qlik Sense. Более глубокое понимание сценариев можно получить, принимая учебный курс, который доступен на веб-сайте Qlik.

Скриншоты в этом руководстве взяты в Qlik Sense Enterprise. Некоторые различия могут возникнуть, если вы используете Qlik Sense Desktop.

1.2 Предпосылки
Чтобы получить themost из этого урока, мы рекомендуем вам выполнили следующие предпосылки, прежде чем начать:

L Qlik Sense Desktop установлен или у Вас есть доступ к Qlik Sense предприятия или доступ к Qlik Sense Cloud.

Чтобы установить Qlik Sense Desktop, следуйте инструкциям доступны на help.qlik.com ,

L Вы знакомы с основами Qlik Sense.

То есть, вы знаете, как сделать выбор в приложении и как интерпретировать результаты вашего выбора. Вы также успешно загружены

данные в Qlik Sense. Если вы не знакомы с тем, как сделать эти вещи, вы можете узнать все о них в учебнике Учебник - Построение

приложения, можно купить в help.qlik.com ,

L Вы завершили Учебник - Сценарии для начинающих который доступен на help.qlik.com ,

Создание подключения к данным в Qlik Sense Enterprise

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

помощь, чтобы получить доступ к ступице и Учебник исходные файлы папка должна быть сохранена системным администратором на сервере. Кроме

того, прежде чем начать загрузку файлов данных, система

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 5


1 Добро пожаловать в этот учебник!

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

1. Сохранить Учебник исходные файлы папка на сервере.

2. Откройте концентратор и откройте неопубликованное приложение. Если нет неопубликованных приложений, нажмите Создать новое приложение.

Дайте АРР, имя, нажмите кнопку Создайте а затем нажмите Открытое приложение.

3. Нажмите » и выберите редактор загрузки данных.

4. Нажмите кнопку Создать новое соединение.

5. Выберите Все файлы.

6. Перейдите к Учебник исходные файлы папка хранится на сервере.

7. Тип Учебник исходные файлы в имя поле.

8. Нажмите кнопку Создайте.

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

консоли управления Qlik (КМК):

а. Выбрать соединения для передачи данных на КМК начальной странице.

б. Выберите Учебник исходные файлы подключение и нажмите Редактировать.

с. Выбрать правила безопасности под Сопутствующие товары.

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

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

Соединение теперь готов для использования.

Размещение учебника исходных файлов в Qlik Sense Desktop

Если вы используете Qlik Sense Desktop, прежде чем начать этот урок, вам нужно поместить Учебник исходные файлы

папки в Смысл папка. Папка Учебник исходные файлы включен в почтовый файл и содержит файлы данных.

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

1. Откройте папку Документы. ( Его иногда называют Мои документы.) Оттуда путь Qlik \ Sense.

2. Поместите Учебник исходные файлы папки в Смысл папка.

1,3 Дополнительная литература и ресурсы

Qlik предлагает широкий спектр ресурсов, когда вы хотите, чтобы узнать больше.

В help.qlik.com , Вы найдете Qlik Sense онлайн помощь и ряд загружаемых руководств.

Если вы посещаете www.qlik.com , Вы найдете следующее:

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

L Демо-версия приложения

L Qlik сообщества, где вы найдете дискуссионные форумы, блоги и многое другое

Все эти ценные источники информации и настоятельно рекомендуется.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 6


2 загрузки данных в Qlik Sense

2 Загрузка данных в Qlik Sense


Qlik Sense использует сценарий загрузки данных, который управляется в редакторе загрузки данных, для подключения и извлечения данных из различных источников данных.

Источник данных может быть файл данных, например, файл Excel или файл .csv. Источник данных может также представлять собой базу данных, например, базы данных

Google BigQuery или Salesforce.

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

загрузки данных.

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

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

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

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

получить различные ассоциации между таблицами.

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

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

передачи данных, чтобы иметь возможность загружать данные в Qlik Sense.

Примерные файлы, необходимые для этого урока являются:

L Product.xlsx

L Transactions.csv

L Employees.xlsx

L Salesman.xlsx

L Data.xlsx

L events.txt

L Intervals.txt

L Winedistricts.txt

2,1 Создание нового приложения

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

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

1. Откройте Qlik Sense.

2. Нажмите Создать новое приложение.

3. Дайте АРР, имя, например, Advanced Scripting учебник и нажмите Создайте.

4. Название приложения Advanced Scripting Учебное пособие, а затем нажмите кнопку Создать.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 7


2 загрузки данных в Qlik Sense

2,2 Добавление соединений

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

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

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

Вы можете найти более подробное описание того, как создать соединение данных и поддерживаемые тип файлов, в

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

в учебнике - сценарии для начинающих.

Перед тем, как загрузить данные в приложение в первый раз, есть возможность использовать Добавить данные легко загружать данные из файлов.

Однако, в этом руководстве мы хотим видеть сценарий, поэтому мы будем использовать редактор загрузки данных.

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

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

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

Вы можете найти более подробное описание того, как создать соединение данных и поддерживаемые тип файлов, в

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

в учебнике - сценарии для начинающих.

Перед тем, как загрузить данные в приложение в первый раз, есть возможность использовать Добавить данные легко загружать данные из файлов.

Однако, в этом руководстве мы хотим видеть сценарий, поэтому мы будем использовать редактор загрузки данных.

Подключение к данным файла

Загрузка данных из файлов, таких как любые другие поддерживаемые форматы файлов Microsoft Excel или, это легко сделать с помощью диалога выбора данных в редактор

загрузки данных.

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

1. В приложении Advanced Scripting учебник вы создали в предыдущем разделе, откройте редактор загрузки данных.

2. Нажмите Создать новое соединение и выберите Все файлы.

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

4. Нажмите кнопку Создайте.

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 8


2 загрузки данных в Qlik Sense

2.3 Отладка сценария загрузки


Для отображения панели отладки, выполните следующие действия:

L Нажмите U в панели инструментов редактора загрузки данных.

Панель отладки открывается в нижней части редактора загрузки данных.

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

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

панель инструментов Debug

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

Ограниченная нагрузка Установите флажок, чтобы ограничить howmany строк данных для загрузки из каждого источника данных. Это полезно для

больших источников данных, как это сокращает время выполнения.

Введите число строк, которые вы хотите, чтобы ограничить нагрузку.

Это относится только к физическим источникам данных. Автоматически генерируемые и встроенные нагрузки

не будут ограничены, например.

œ Начать или продолжить выполнение в режиме отладки до следующей точки останова не будет достигнута.

О.Н Шаг к следующей строке кода.

- Завершение исполнения здесь.

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

newmessages отображаются при нажатии \ ,

Кроме того, в меню выхода ( ¨) содержит следующие параметры:

чистый Нажмите эту кнопку, чтобы удалить все сообщения вывода.

Выделить весь текст Нажмите эту кнопку, чтобы выбрать все выходные сообщения.

Прокрутка вниз Нажмите эту кнопку, чтобы перейти к последнему исходящее сообщение.

переменные а также Контрольные точки не будет обрабатываться в данном руководстве.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 9


3 Преобразование данных

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

использовать данные в приложении.

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

столбцов из таблицы, чтобы сделать данные обработки более эффективным. Вы также можете загрузить данные более чем один раз, чтобы разделить исходные данные на

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

В этом разделе вы узнаете, как загружать данные с помощью Таблица результатов. Вы также узнаете, как объединять таблицы, использовать interrecord функции, такие как заглядывать

а также Предыдущий, и загрузить в той же строке несколько раз, используя В то время как нагрузка.

3.1 Использование префикса Кросс


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

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

приставка Таблица результатов

в Продукт входной таблице ниже у вас есть один столбец в месяц и одну строку для каждого продукта.

вход продукта таблица

Продукт январь 2014 февраль 2014 март 2014 апрель 2014 май 2014 июнь 2014

100 98 100 83 103 82

В 284 279 297 305 294 292

С 50 53 50 54 49 51

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

Таблица продукта с полем продукта, и одно поле для каждого из месяцев

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 10


3 Преобразование данных

Но если вы хотите, чтобы проанализировать эти данные, намного легче иметь все номера в одном поле и все месяцы в другом, то есть в таблице три столбца, по

одному для каждой категории ( Продукт, месяц, продажа).

Таблица продукта с продуктом, месяц и полей продаж

Префикс преобразует Таблицу результатов данных в таблицу с одной колонкой Месяц а другой для Продажи. Другой способ выразить это означает, что

он принимает имена полей и преобразует их в значение поля.

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

1. В приложении, Advanced Scripting учебник, открыть редактор загрузки данных.

2. Нажмите Создать новое соединение и выберите Все файлы.

3. Найдите папку, в которой учебник файл Product.xlsx сохраняется, и дать ему имя Учебное пособие файлов.

4. Нажмите кнопку Сохранить.

5. Добавьте новый раздел сценария, нажав на п в верхнем левом углу.

6. Дайте раздел имя Продукт и нажмите Enter.

7. Нажмите кнопку ± на учебник файлы Подключение к данным ранее созданным, чтобы выбрать файл для загрузки данных из.

8. Выберите Product.xlsx и нажмите Выбрать.

9. Выберите Продукт.

Под Имена полей, убедитесь что Встроенные имена полей выбран, чтобы включить имена полей

таблицы при загрузке данных.

10. Нажмите кнопку Вставить скрипт.

Сценарий выглядит следующим образом:

НАГРУЗКИ

Продукт, "Ян
2014", "февраль
2014", "март
2014", "апрель
2014", "май
2014", "Джун
2014"
FROM 'Lib: // Учебник Файлы / Product.xlsx' (OOXML, встроенные
метки, таблицы товаров);

11. В правом верхнем углу нажмите Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 11


3 Преобразование данных

12. После выполнения скрипта будет завершено, нажмите Близко.

13. Для просмотра таблицы выберите Зритель модели данных, щелчок s расширить таблицу и проверить свои данные.

Этот скрипт создает таблицу с одним полем для продукта и один для каждого из themonths.

14. Выберите редактор загрузки данных и откройте Продукт скрипт.

15. Добавьте новую строку в верхней части сценария и добавьте следующие строки в этой строке:

Кросс (месяц, продажа)

16. В правом верхнем углу нажмите Загрузка данных.

17. Когда выполнение скрипта будет завершено, нажмите Близко.

18. Нажмите кнопку » и выберите Модель данных для просмотра чтобы убедиться, что вы загрузили данные.

Загруженная таблица представляет собой три колонки таблица, один столбец для каждой категории (продукт, месяц, продажи):

Обычно входные данные имеют только один столбец как поле спецификатора; в качестве внутреннего ключа (продукт в приведенном выше примере). Но вы можете

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

НАГРУЗКИ утверждение, а третий параметр к Таблица результатов префикс должен быть использован для определения числа квалификационных полей.

Это не возможно иметь предшествующий НАГРУЗКИ или префикс в передней части Таблица результатов ключевое слово. Авто-конкатенация, однако, может быть

использована.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 12


3 Преобразование данных

Цифровая интерпретация не будет работать для полей атрибутов. Это означает, что если вы havemonths как заголовки столбцов, то они не будут

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

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

tmpData:
Таблица результатов (MonthText, продажа)

НАГРУЗКИ продукта, [Январь 2014], [февраль 2014], ... От 'Lib: // Учебник Файлы / Product.xlsx' (OOXML, встроенные
метки, таблицы товаров);

Финал:
НАГРУЗКИ продукта,

Дата (Date # (MonthText, 'MMM YYYY'), 'MMM YYYY') в месяц, в продаже

Resident tmpData; Drop Table


tmpData;

Очистка кэш-памяти
Нам нужно иногда удалять таблицы, которые мы создали в ходе сценария, чтобы очистить кэш thememory. При загрузке во временную таблицу,

как и в предыдущем разделе, то вы должны бросить его, когда он больше не нужен.

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

DROP TABLE Name1 [, Name2 [, name3 ...]]; DROP


ТАБЛИЦЫ Name1 [, Name2 [, name3 ...]];

Команда Капля также позволяет удалить одну или несколько полей:

DROP ПОЛЯ Name1 [, Name2 [, name3 ...]]; DROP ПОЛЯ


Name1 [, Name2 [, name3 ...]];

Как вы можете заметить, ключевое слово поле или TABLE можно установить во множественном числе (ПОЛЕЙ, ТАБЛИЦЫ), даже если вы должны удалить одну единственную

таблицу или поле.

3,2 Комбинирование столы с регистрацией и сохранить

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

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

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

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

таблицей. В некоторых ситуациях это необходимо, но есть и недостатки:

L Загруженные таблицы часто становятся больше, и Qlik Sense работает медленнее.

L Некоторая информация может быть утрачена: частота (количество записей) в пределах первоначального tablemay нет

более доступны.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 13


3 Преобразование данных

Функциональность Keep, который имеет эффект снижения одного или оба из двух таблиц в пересечение данных таблицы перед таблицей хранится в Qlik Sense,

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

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

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

Присоединиться

Самый простой способ сделать это присоединиться с Присоединиться Приставка в сценарии, который соединяет внутреннюю таблицу с другим именем таблицы или с

последней ранее созданной таблицы. Объединение будет внешнее соединение, создавая все возможные комбинации значений из двух таблиц.

Пример:

ЗАГРУЗИТЬ а, Ь, с из table1.csv; присоединиться к


НАГРУЗКА а, д от table2.csv;

В результате чего внутренняя таблица имеет поле а, b, c и d. Количество записей, различается в зависимости от значений полей двух таблиц.

Имена полей присоединиться к более чем должна быть точно такой же. Количество полей присоединиться к более чем произвольно. Обычно

таблицы должны иметь один или несколько полей общего. Нет общее поле будет оказывать декартово произведение таблиц. Все поля в долевом

также возможно, но обычно не имеют никакого смысла. Если имя таблицы из ранее загруженной таблицы не указано в Присоединиться зАЯВЛЕНИЕ

Присоединиться

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

Использование Регистрация

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

результаты для соединений будет в очень больших таблицах.

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

1. В приложении, Advanced Scripting учебник, открыть редактор загрузки данных.

2. Добавьте новый раздел сценария, нажав на п в верхнем левом углу.

3. Дайте раздел имя операции и нажмите Enter.

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

5. Выберите Transactions.csv и нажмите Выбрать.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 14


3 Преобразование данных

Под Имена полей, убедитесь что Встроенные имена полей выбран, чтобы включить имена полей

таблицы при загрузке данных.

6. Нажмите кнопку Вставить скрипт.

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

8. Выберите Salesman.xlsx и нажмите Выбрать.

9. Выберите коммивояжер и нажмите Вставить скрипт.

Сценарий выглядит следующим образом:

НАГРУЗКИ

«Идентификатор
транзакции», «Продавец ID»,
продукт, «Серийный номер»,
«ID клиента», «Прайс-лист»,
«Валовая прибыль»

FROM 'Lib: // Учебник Файлы / Transactions.csv'


(.Txt, кодовый являются 1252, встроенными метками, разделитель '', МС);

НАГРУЗКИ

"Специалист ID",
коммивояжер,
"Дистрибьютор ID"
FROM 'Lib: // Учебник Файлы / Salesman.xlsx' (OOXML, встроенные
метки, таблицы коммивояжера);

При нажатии на данные нагрузки в этой точке будет производить следующую модель данных:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 15


3 Преобразование данных

Однако, имея Транзакции и продавец таблица, разделенная не может быть требуемым результатом. Это может быть лучше, чтобы объединить эти две

таблицы.

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

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

Сделки:

2. Для того, чтобы присоединиться к транзакции и таблица ПРОДАВЦА, на пустой строке выше второго НАГРУЗКИ заявление, добавить

последующий:

Регистрация (сделки)

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

Сделки: НАГРУЗКИ

«Идентификатор
транзакции», «Продавец ID»,
продукт, «Серийный номер»,
«ID клиента», «Прайс-лист»,
«Валовая прибыль»

FROM 'Lib: // Учебник Файлы / Transactions.csv'


(.Txt, кодовый являются 1252, встроенными метками, разделитель '', МС); Join (Операции)
Несущая

"Специалист ID",
коммивояжер,
"Дистрибьютор ID"
FROM 'Lib: // Учебник Файлы / Salesman.xlsx' (OOXML, встроенные
метки, таблицы коммивояжера);

3. Нажмите Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

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

5. Нажмите кнопку » и выберите Модель данных для просмотра чтобы убедиться, что вы загрузили данные.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 16


3 Преобразование данных

Все поля Сделок и таблицы коммивояжера теперь объединены в одну таблицу сделок.

Хранить

Одна из особенностей themain Qlik Sense является его способность делать ассоциации между таблицами, а не присоединиться к ним, что уменьшает пространство в

памяти, увеличивает скорость и дает огромную гибкость. Функциональность Keep была разработана, чтобы уменьшить число случаев, когда явно соединяющее

необходимо использовать.

Хранить Приставка между двумя НАГРУЗКИ или же ВЫБРАТЬ заявления, имеет эффект снижения одного или обоих из двух таблиц в пересечении данных

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

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

в Qlik Sense в виде двух отдельно названных таблиц.

внутренний

Присоединиться а также Хранить префиксы на языке сценариев Qlik Sense может предшествовать префикс Внутренний.

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

комбинации между двумя таблицами с полным набором данных с обеих сторон.

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

Пример:

В этих примерах мы используем исходные таблицы Table1 и TABLE2:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 17


3 Преобразование данных

Внутренние примеры исходных таблиц

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

существующую в обеих таблицах, с данными в сочетании с обеих таблиц.

виртуальные таблицы:

SELECT * от Таблица1;
внутреннее соединение SELECT * FROM Table2;

Внутренний пример Регистрация

Если мы выполняем Внутренний Keep вместо этого, вы все еще есть две таблицы. Эти две таблицы, конечно, связаны через общее поле А.

VTab1:
SELECT * от Таблица1; VTab2:

внутренний держать SELECT * от Table2;

Внутренний пример Keep

Оставил

Присоединиться а также Хранить префиксы на языке сценариев Qlik Sense может предшествовать префикс Оставил.

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

комбинации между двумя столами с полным набором данных из первой таблицы.

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

Qlik Sense.

Пример:

В этих примерах мы используем исходные таблицы Table1 и TABLE2:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 18


3 Преобразование данных

Левые примеры исходных таблиц

Во-первых, мы выполнить Соединение слева на столах, в результате чего виртуальных таблиц, содержащий все строки из Table1, в сочетании с полями frommatching строк

в Table2.

виртуальные таблицы:

SELECT * от Таблица1;
левое соединение SELECT * от Table2;

Оставшись Регистрация пример

Если мы выполняем Оставшись Keep вместо этого, вы все еще есть две таблицы. Эти две таблицы, конечно, связаны через общее поле А.

VTab1:
SELECT * от Таблица1; VTab2:

осталось держать SELECT * от Table2;

Оставшись Держите пример

Правильно

Присоединиться а также Хранить префиксы на языке сценариев Qlik Sense может предшествовать префикс Правильно.

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

комбинации между двумя столами с полным набором данных из второй таблицы.

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

Qlik Sense.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 19


3 Преобразование данных

Пример:

В этих примерах мы используем исходные таблицы Table1 и TABLE2:

Правильные примеры исходных таблиц

Во-первых, мы выполнить Соединение справа на столах, в результате чего виртуальных таблиц, содержащий все строки из Table2, в сочетании с полями

frommatching строк в Table1.

виртуальные таблицы:

SELECT * от Таблица1;
право присоединиться SELECT * FROM Table2;

Соединение справа пример

Если мы выполняем ПРАВИЛЬНО вместо этого, вы все еще есть две таблицы. Эти две таблицы, конечно, связаны через общее поле А.

VTab1:
SELECT * от Таблица1; VTab2:

поторопись SELECT * от Table2;

ПРАВИЛЬНО пример

3.3 Использование между функцией записи: Peek, Предыдущим и Exists


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

В этой части урока мы будем рассматривающим Peek () Предыдущий (), и Exists (функции).

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 20


3 Преобразование данных

заглядывать

Пик () находит значение поля в таблице для строки, которая уже была загружена или которая существует во внутренней памяти. Номер строки

может быть задан, как может таблица.

Синтаксис:

Пик (имя_поль [, строка [, имя_таблицы]])

Rowmust быть целым числом. 0 обозначает первую запись, 1 второй и так далее. Отрицательные числа указывают на порядок с конца таблицы. -1

обозначает последнюю запись чтения.

Если ни одна строка не указано, предполагается, -1.

имя_таблицы это метка таблицы без концовки толстой кишки. Если нет имя_таблицы это указано, текущая таблица предполагается. При использовании вне НАГРУЗКИ заявление

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

предыдущий

Предыдущий () находит значение из выраж Выражение с использованием данных из предыдущей входной записи, которые не были отброшены

из-за где пункт. В первой записи внутренней таблицы, то функция возвращает NULL.

Синтаксис:

Предыдущее (выражение)

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

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

Существует

Существует() определяет, находится ли уже загружен в поле в сценарии загрузки данных конкретного значения поля. Функция возвращает значение TRUE или

FALSE, поэтому может быть использована в где раздел НАГРУЗКИ  заявление или ЕСЛИ

заявление.

Синтаксис:

Exists (поле [, выражение])

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

поле. Если не указано, значение текущей записи в указанной области будет предполагаться.

Использование Peek () и Предыдущий ()

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

простых таблицах Сотрудники.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 21


3 Преобразование данных

В настоящее время это только собирает данные за месяц, нанимает и окончания, поэтому мы будем добавлять полей для Сотрудника графа и сотрудники Var, используя заглядывать

а также предыдущий функции, чтобы увидеть разницу в themonthly общего числа сотрудников.

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

1. В приложении, Advanced Scripting учебник, открыть редактор загрузки данных.

2. Добавьте новый раздел сценария, нажав на п в верхнем левом углу.

3. Дайте раздел имя Сотрудники и нажмите Enter.

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

5. Выберите Employees.xlsx и нажмите Выбрать.

Под Имена полей, убедитесь что Встроенные имена полей выбран, чтобы включить имена полей

таблицы при загрузке данных.

6. Нажмите кнопку Вставить скрипт.

Сценарий выглядит следующим образом:

НАГРУЗКИ

«Дата», нанят,
Отменено

FROM 'Lib: // Учебник Файлы / Employees.xlsx' (OOXML,


встроенные метки, таблицы Лист2);

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

[Сотрудники Иницы]: НАГРУЗКА

Ровно (), как Row, дата


(дата), как дата, Нанятый,
Terminated,

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 22


3 Преобразование данных

Если (Ровно () = 1, Hired-Отменено, PEEK ([Сотрудник граф], -1) + (Hired-Отменено)), как [Сотрудник граф]

FROM 'Lib: // Учебник Файлы / Employees.xlsx' (OOXML,


встроенные метки, таблицы Лист2);

Даты в поле Даты в листе Excel в формате MM / DD / YYYY. Для обеспечения даты правильно интерпретированы с использованием формата из

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

определенной области.

Если (Ровно () = 1, Hired-Отменено, PEEK ([Сотрудник граф], -1) + (Hired-Отменено)), как [Сотрудник граф]

В этом выражении мы сначала посмотрим, чтобы увидеть, если Ровно () равно 1. Если он равен 1, то ни один сотрудник граф не будет,

поэтому мы будем просто заполнить поле с разностью Наемные минус расторгнуто. Если Ровно () больше 1, мы смотрим на Работнике в

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

также, что в Пик () Функция мы используем (-1). Это говорит Qlik смысл смотреть на записи выше текущей записи. Если (-1) не указано, Qlik

Sense предположим, что вы хотите посмотреть на предыдущей записи.

8. Добавьте следующий ниже сценарий вы только модифицированном

[Сотрудник граф]: НАГРУЗКА

Строка, Дата, Нанятый,


Прекращено [Сотрудник
Count],

Если (Ровно () = 1,0, [Сотрудник граф] -Previous ([Сотрудник граф])), как [Сотрудник вар] резидент [Сотрудники] Иниц
упорядочить по возрастанию Row;

Drop Table [Сотрудники Иниц];

Предыдущий () Функция позволяет определить последнее значение, загруженное для определенной области.

Если (Ровно () = 1,0, [Сотрудник граф] -Previous ([Сотрудник граф])), как [Сотрудник вар]

В этом выражении мы сначала посмотрим, чтобы увидеть, если Ровно () равно 1. Если он равен 1, то мы знаем, что там не будет

сотрудников Var, потому что нет записи для сотрудников за предыдущий месяц граф так что мы просто ввести 0 для значения. Если

Ровно () больше 1, мы знаем, что там будет Служащий Var, поэтому мы смотрим на Работника в прошлом месяце граф и вычесть это

число из Работника текущего месяца Count, чтобы создать значение в поле Сотрудник Var.

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

[Сотрудники Иницы]: НАГРУЗКА

Ровно (), как Row, дата


(дата), как дата, Нанятый,
Terminated,

Если (Ровно () = 1, Hired-Отменено, PEEK ([Сотрудник граф], -1) + (Hired-Отменено)), как [Сотрудник граф]

FROM 'Lib: // Учебник Файлы / Employees.xlsx'

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 23


3 Преобразование данных

(OOXML, встроенные метки, таблицы Лист2);

[Сотрудник граф]: НАГРУЗКА

Строка, Дата, Нанятый,


Прекращено [Сотрудник
Count],

Если (Ровно () = 1,0, [Сотрудник граф] -Previous ([Сотрудник граф])), как [Сотрудник вар] резидент [Сотрудники] Иниц
упорядочить по возрастанию Row;

Drop Table [Сотрудники Иниц];

9. В правом верхнем углу нажмите Загрузка данных.

Если в новом листе в обзоре приложения, теперь создать стандартную таблицу, используя Дату, нанятый, Terminated, Сотрудник граф и Employee Var

как столбцы таблицы, вы должны получить результат, похожий на этот:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 24


3 Преобразование данных

Пик () а также Предыдущий () позволяют пользователям целевых определённые строк в таблице. Самая большая разница между этими двумя функциями

является то, что Пик () функция позволяет пользователю смотреть в поле, которое ранее не было загружено в то время как сценарий Предыдущий () Функция

может смотреть только в предварительно загруженной области. Предыдущий () работает на вход к НАГРУЗКИ заявление, в то время как Пик () действует на

выходе из НАГРУЗКИ заявление. (То же, как разница между RecNo () и () Ровно). Это означает, что обе функции будут вести себя по-другому, если у вас есть

Где- пункт.

Так что Предыдущий () функция будет лучше подходит для того, когда пользователю нужно показать текущее значение по сравнению с предыдущим значением.

В данном примере мы вычислили сотрудника дисперсии frommonth в месяц.

Пик () Функция будет лучше подходит, когда пользователь ориентирована либо поле, которое не было ранее загруженной в таблицу или если

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

Сотруднику предыдущего месяца граф и добавив разницу между наемным и уволенными работниками за текущий месяц. Помните, что граф

сотрудников не было поле в исходном файле.

Использование Exists ()

Существует() функция часто используется с где пункт в сценарии, чтобы загрузить данные, если связанные данные уже загружены в

модели данных.

В следующем примере мы также с помощью Dual () Функция присвоить числовые значения в строки.

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

1. Создайте новое приложение и дать ему имя.

2. Откройте редактор загрузки данных и введите следующий скрипт:

// Добавляем фиктивное PeopleTemp людей

данные: НАГРУЗКИ * INLINE [

PersonID, Person
1, Джейн
2, Джо
3, Шон
4, Сью
5, Франк
6, Mike
7, Глория
8, Мэри
9, Стивен,
10, Билл
];

// Добавить фиктивный AgeTemp

возраст данных: НАГРУЗКИ * INLINE [

PersonID, Возраст

1, 23
2, 45
3, 43
4, 30
5, 40
6, 32

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 25


3 Преобразование данных

7, 45
8, 54
9,
10, 61
11, 21
12, 39
];

// загружает новая таблица с людьми People:

NoConcatenate НАГРУЗКИ

PersonID, Person
Resident PeopleTemp;

Drop Table PeopleTemp;

// Добавляют возраст и возраст ковшеобразных полей Народа стола Left Join


(Люди) Несущие

PersonID,

Возраст,

Если (IsNull (Возраст) или Возраст = '', двойной ( 'Нет возраст', 5),

Если (Возраст <25, Dual ( 'Under 25', 1),


Если (Возраст> = 25 и возраст <35, Dual ('25 -34' , 2),
Если (Возраст> = 35 и возраст <50, Dual ('35 -49' , 3),
Если (Возраст> = 50, Dual ('50 или более», 4)
) ) ) ) ), Как AgeBucket
Резидент AgeTemp Где Exists
(PersonID);

DROP Таблица AgeTemp;

3. Нажмите Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

В сценарии, поля Возрастных и AgeBucket загружается только если PersonID уже загружен в модели данных.

Обратите внимание, в таблице AgeTemp, что есть возраст, перечисленный для PersonId 11 и 12, но так как эти идентификаторы не были загружены в

модели данных (в таблице People), они исключенные Где Exists (PersonID) пункт. Этот пункт также может быть записан следующим образом: Где

Exists (PersonID, PersonID).

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 26


3 Преобразование данных

Если ни один из PersonIDs в таблице AgeTemp не было загружено в модель данных, то поля Возрастных и AgeBucket бы не присоединились

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

и AgeBucket поле, которые не имеют какие-либо связанные с ними людей.

4. В Обзор App, создать новый лист и дать ему имя.

5. Откройте новый лист и нажмите Редактировать.

6. Добавьте стандартную таблицу на лист с размерностью AgeBucket и назвать визуализацию Возрастные группы.

7. Добавьте гистограмму к листу с размерностью AgeBucket и themeasure Count ([AgeBucket]) и имя визуализации Количество

людей в каждой возрастной группе.

8. Настройте свойство таблицы и гистограммы с вашими предпочтениями и нажмите Готово.

Теперь вы должны иметь лист, похожий на этот:

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 27


3 Преобразование данных

НАГРУЗКИ

PersonID,

Возраст,

Если (IsNull (Возраст) или Возраст = '', двойной ( 'Нет возраст', 5),

Если (Возраст <25, Dual ( 'Under 25', 1),


Если (Возраст> = 25 и возраст <35, Dual ('25 -34' , 2),
Если (Возраст> = 35 и возраст <50, Dual ('35 -49' , 3),
Если (Возраст> = 50, Dual ('50 или более», 4)
) ) ) ) ), Как AgeBucket
Резидент AgeTemp Где Exists
(PersonID);

В сценарии у вас есть приложение, которое загружает возраст, и вы решили поставить эти возрасты в ведре, так что вы можете создать визуализацию на основе

возрастных ковшей по сравнению с фактическими возрастами. Существует ведро для людей в возрасте до 25 лет, от 25 до 35 лет, и так далее. С помощью Dual () функцию,

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

графика. Таким образом, как и в приложении листа, сортировка не ставит «Нет возраста» в конце списка.

3.4 Соответствующие интервалы и итеративный нагрузки

Intervalmatch префикс к нагрузке или ЗЕЬЕСТУ используется для связывания дискретных числовых значений с одним или несколькими числовых интервалами. Это

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

Использование префикса Intervalmatch

Themost основного интервала матч, когда у вас есть список номеров или даты (события) в одной таблице, и список интервалов во второй таблице. Цель состоит в

том, чтобы связать две таблицы. В общем, это отношения многие ко многим, то есть, интервал может havemany даты, относящиеся к нему, и дата может

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

сделать это.

До сих пор самый простой способ решить эту проблему в Qlik Sense является использование префикса Intervalmatch перед либо НАГРУЗКИ или

ЗЕЬЕСТ. НАГРУЗКИ / SELECT заявление должно содержать только два поля, от и до полей, задающих интервалы. Префикс Intervalmatch будет

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

префиксу.

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

1. Создайте новое приложение и дать ему имя.

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

файлы и дать ему имя Учебное пособие файлов.

3. Загрузите таблицу событий, затем таблицу интервалов. Использовать events.txt а также Intervals.txt файлы примеров,

предоставляемые с учебником.

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

BridgeTable:
IntervalMatch (EVENTDATE)
НАГРУЗКА различна IntervalBegin, Интервалы IntervalEnd резидентов;

5. Полный сценарий должен выглядеть примерно так:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 28


3 Преобразование данных

События:

НАГРУЗКИ

EventID,
EVENTDATE,
EventAttribute
FROM 'Lib: // Учебник Файлы / events.txt' (.txt, utf8, встроенные метки,
разделитель '\ т', МСО);

Интервалы:

НАГРУЗКИ

IntervalID, IntervalAttribute,
IntervalBegin, IntervalEnd

FROM 'Lib: // Учебник Файлы / Intervals.txt' (.txt, utf8, встроенные метки,


разделитель '\ т', МСО);

BridgeTable:
IntervalMatch (EVENTDATE)
НАГРУЗКА различна IntervalBegin, Интервалы IntervalEnd резидентов;

6. Нажмите кнопку Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

Модель данных содержит составной ключ (поля IntervalBegin и IntervalEnd), которая будет проявляться как синтетический ключ Qlik Sense:

Основные таблицы:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 29


3 Преобразование данных

L В таблице событий, которая содержит ровно одну запись на событие.

L В таблице интервалы, которая содержит ровно одну запись на интервал.

L Стол мост, который содержит только одну запись на комбинации событий и интервала, и ссылки
два предыдущих таблиц.

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

событий, относящихся к нему.

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

неизменными и содержит оригинальное количество записей. Все расчеты Qlik Sense, работающие на этих таблицах, например, граф (EventID), будет

работать и будет оцениваться правильно.

Использование цикла While и итеративный загрузку IterNo ()

Вы можете достичь почти той же таблицы моста с помощью Пока петли и IterNo () что создает перечисляемые значения между нижними и

верхними границами интервала.

Цикл внутри НАГРУЗКИ Заявление может быть создано с помощью Пока пункт:

НАГРУЗКИ Дата, IterNo (), как Итерация С ... В то время как IterNo () <= 4;

Такой НАГРУЗКИ Заявление будет цикл по каждой входной записи и загрузить это снова и снова до тех пор, как выражение в Пока пункт верно. IterNo

() функция возвращает «1» в первой итерации, «2» во второй, и так далее.

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

BridgeTable:
НАГРУЗКИ различны * Где Exists (EVENTDATE);
НАГРУЗКА IntervalBegin + IterNo () - 1, как EVENTDATE, IntervalID
Интервалы Resident
В то время как IntervalBegin + IterNo () - 1 <= IntervalEnd;

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

1. Заменить существующие Bridgetable заявления с выше сценария.

2. Нажмите Сохранить на панели инструментов.

3. В правом верхнем углу нажмите Загрузка данных.

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 30


3 Преобразование данных

В общем случае, решение с тремя столами является лучшим вариантом, поскольку она позволяет многие ко многим отношений между интервалами и

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

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

этой цели, но themost полезно, чтобы присоединиться Bridgetable с таблицей событий.

4. Добавьте следующий скрипт в нижней части существующего скрипта:

Регистрация (События)

НАГРУЗКИ EVENTDATE, IntervalID


Resident BridgeTable;

Drop Table BridgeTable;

5. Нажмите кнопку Сохранить на панели инструментов.

6. В правом верхнем углу нажмите Загрузка данных.

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

Открытые и закрытые интервалы

Если интервал является открытым или закрытым, определяется конечными точками, являются ли они включены в интервал времени или нет.

L Если конечные точки включены, это замкнутый интервал:

[А, Ь] = {х ∈ | A ≤ х ≤ B}

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 31


3 Преобразование данных

L Если конечные точки не включены, это открытый интервал:

] А, Ь [= {х ∈ | а <х <Ь}

L Если одна конечная точка включена, то полуоткрытый интервал:

[А, Ь [= {х ∈ | A ≤ х <Ь}

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

интервалы.

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

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

Таким образом, вы хотите, полуоткрытые интервалы.

Практическое решение этой проблемы состоит в вычитать очень небольшое количество от конечного значения всех интервалов, создавая тем самым замкнутым, но не

перекрывающиеся интервалы. Если ваши номера финики, самый простой способ сделать это состоит в использовании функции DayEnd () которая возвращает последнюю

миллисекунду в день:

Интервалы:
НАГРУЗКИ ..., DayEnd (IntervalEnd - 1) в качестве IntervalEnd из интервалов;

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

округлена до 52 значащих двоичных цифр (14 десятичных цифр).

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

Создание интервала дат из одной даты


Иногда интервалы времени не хранятся в явном виде с началом и концом. Вместо этого они вытекают только в одном поле - изменение метки

времени.

Это может быть как в таблице belowwhere у вас есть курсы валют для нескольких валют. Каждое изменение валютного курса на отдельной строке;

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

было сделано первое изменение.

курсы валют

Валюта Изменение даты Оценить

евро - 8,59

евро 28/01/2013 8,69

евро 15/02/2013 8,45

доллар США - 6,50

доллар США 10/01/2013 6,56

доллар США 03/02/2013 6,30

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 32


3 Преобразование данных

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

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

​колонку, так что новая таблица будет список интервалов.

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

1. Создайте новое приложение и дать ему имя.

2. Добавьте новый раздел сценария в редактор загрузки данных.

3. Добавьте следующую таблицу инлайн. Убедитесь, что даты в Изменение даты колонки в том же самом

Формат как локальный формат даты.

In_Rates: НАГРУЗКА *

Встроенный [

Валюта, Дата изменения, ставка 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];

4. Определите, какой диапазон времени вы хотите работать. Начало rangemust быть перед первой датой в данных и конец rangemust быть

после того, как последний. Добавьте следующие строки в верхней части сценария:

Пусть vBeginTime = Num ( '1/1/2013'); Пусть


vEndTime = Num ( '1/3/2013'); Пусть vEpsilon = П
(2, -27);

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

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

последние даты на вершине. Добавьте следующий после In_Rates Таблица:

Tmp_Rates:
НАГРУЗКИ валюты, скорость,

Дата (Если (IsNum ([Change Date]), [Change Date], $ (# vBeginTime))), как FromDate Resident In_Rates;

6. Выполните второй проход через данные, где вы вычисляете To Date. Если текущая запись имеет различную валюту из предыдущей записи, то это

первая запись новой валюты (но ее последнего интервала), так что вы должны использовать конец диапазона, определенный на шаге 1. Если это

та же валюта , вы должны принять от даты из предыдущей записи, вычесть небольшое количество времени, и использовать это значение как на

сегодняшний день в текущей записи.

Добавьте следующий после Tmp_Rates Таблица:


Ставки:
НАГРУЗКИ валюты, Rate, FromDate,
Дата (Если (Валюта = Peek ( 'Валюта'),
Peek ( 'FromDate') - $ (# vEpsilon), $ (# vEndTime)

)) в Todate
Resident Tmp_Rates
Сортировать по валюте, FromDate Desc;

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 33


3 Преобразование данных

Drop Table Tmp_Rates;

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

Пусть vBeginTime = Num ( '1/1/2013'); Пусть


vEndTime = Num ( '1/3/2013'); Пусть vEpsilon = П
(2, -27);

In_Rates: НАГРУЗКА *

Встроенный [

Валюта, Дата изменения, ставка 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];  

Tmp_Rates:
НАГРУЗКИ валюты, скорость,

Дата (Если (IsNum ([Change Date]), [Change Date], $ (# vBeginTime))), как FromDate Resident In_Rates; 

Ставки:
НАГРУЗКИ валюты, Rate, FromDate,
Дата (Если (Валюта = Peek ( 'Валюта'),
Peek ( 'FromDate') - $ (# vEpsilon), $ (# vEndTime)

)) в Todate
Resident Tmp_Rates
Сортировать по валюте, FromDate Desc; 

Drop Table Tmp_Rates;

Сценарий будет обновлять таблицу источника в следующем порядке:

исходная таблица

Валют FromDate Встретиться

евро 8,45 15/02/2013 vEndTime

евро 8,69 28/01/2013 14/02/2013 23:59:59

евро 8,59 vBeginTime 28/01/2013 23:59:99

доллар США 6,30 03/02/2013 vEndTime

доллар США 6,56 10/01/2013 2/02/2013 23:59:59

доллар США 6,50 vBeginTime 9/01/2013 23:59:59 Обновлено

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 34


3 Преобразование данных

Предварительный просмотр данных

Валют FromDate ToDate

евро 8,45 15/02/2013 01/03/2013

евро 8,69 28/01/2013 14/02/2013

евро 8,59 01/01/2013 28/01/2013

доллар США 6,30 03/02/2013 01/03/2013

доллар США 6,56 10/01/2013 2/02/2013

доллар США 6,50 01/01/2013 9/01/2013

Эта таблица в дальнейшем может быть использована в сравнении с существующей датой, используя метод Intervalmatch.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 35


Очищение 4 данных

4 Очистка данных
Есть случаи, когда исходные данные, которые вы загружаете в Qlik Sense не обязательно, как вы хотите его в приложении Qlik Sense. Qlik Sense предоставляет

множество функций и операторов, которые позволяют нам превратить наши данные в формат, который работает для нас.

Отображение может быть использовано в сценарии Qlik Sense, чтобы заменить или изменить значение полей или имена при запуске сценария, поэтому отображение может

быть использовано, чтобы очистить данные и сделать его более последовательным или заменить детали или все значений поля.

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

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

для сравнения значений поля.

4.1 Таблицы Mapping


Таблицы, загруженные с помощью нагрузки Mapping или ОТОБРАЖЕНИЙ трактуются по-разному из других таблиц. Они хранятся в отдельной области thememory и

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

Правила:

L Отображение tablemust есть два столбца, первый из которых содержит значение сравнения и вторую

желаемые значения картирования.

L Две колонны должны быть названы, но имена не имеют никакого отношения сами по себе. Имена столбцов

не имеет никакого отношения к именам полей в регулярных внутренних таблицах.

4.2 Отображение функций и заявление


Следующие функции отображения / заявления будут рассмотрены в данном руководстве:

• приставка Mapping

• ApplyMap ()

• MapSubstring ()

• Карта ... Использование заявления

• Unmap заявление

Приставка 4,3 Mapping


Приставка Mapping используется в сценарии для создания таблицы отображения. Themapping таблица может быть использована с функцией ApplyMap (),

функция MapSubstring () или карта ... Используя заявление.

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 36


Очищение 4 данных

1. Создайте новое приложение и дать ему имя.

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

файлы и дать ему имя Учебное пособие файлов.

3. Введите следующий сценарий:

CountryMap:
ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE

[Страна, NewCountry

США, США
США, США

Соединенные Штаты Америки, США

Соединенные Штаты Америки, США];

В CountryMap таблице хранятся две колонки: Страна и NewCountry. Колонна Страна хранит страна различных способов была введена в поле Страны.

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

значений США страны в поле Страны. Например, если США хранятся в поле Страны, карта это будут США.

Функция ApplyMap ()
ApplyMap () позволяет пользователю заменить данные в поле на основе ранее созданной таблицы отображения. Таблица отображения должна быть

загружена до того, как ApplyMap () функция может быть использована. В файле примера, Data.xlsx,

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

В приведенной выше таблице, обратите внимание, что в стране вводится различными способами. Для того, чтобы поле стран последовательно,

themapping таблица загружена, а затем ApplyMap () используется функция.

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

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

2. Выберите Data.xlsx и нажмите Выбрать.

3. Нажмите Вставить скрипт.

4. Вставьте строку выше вновь созданным НАГРУЗКИ утверждение и введите следующие данные:

Данные:

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

CountryMap:
ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE

[Страна, NewCountry

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 37


Очищение 4 данных

США, США
США, США

Соединенные Штаты Америки, США

Соединенные Штаты Америки, США]; Данные:

НАГРУЗКИ

ID, имя,
страна, код

FROM [Lib: // Учебник Files / Data.xlsx] (OOXML, встроенные


метки, таблицы Лист1);

5. Изменение строки, содержащей Страна, следующее:

ApplyMap ( 'CountryMap', страна), как страна,

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

CountryMap:
ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE

[Страна, NewCountry

США, США
США, США

Соединенные Штаты Америки, США

Соединенные Штаты Америки, США]; Данные:

НАГРУЗКИ

ID, имя,

ApplyMap ( 'CountryMap', страна), как страна, код

FROM 'Lib: // Учебник Файлы / Data.xlsx' (OOXML, встроенные


метки, таблицы Лист1);

Первый параметр ApplyMap () Функция имеет themap имя, заключенное в одинарные кавычки. Второй параметр является полем, которое

имеет данные, которые должны быть заменены.

6. В правом верхнем углу нажмите Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

Результирующая таблица таблица выглядит следующим образом:

Используйте раздел Предварительного просмотра зрителя модели данных для просмотра результирующей таблицы.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 38


Очищение 4 данных

Различные варианты написания Соединенных Штатов все были изменены в США. Существует одна запись, которая не была прописана правильно,

так что ApplyMap () функция не изменилась, что значение поля. С помощью ApplyMap ()

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

7. Добавьте ' НАС' в качестве третьего параметра ApplyMap () функционировать, чтобы обрабатывать такие случаи, когда страна

может быть введен неправильно:


ApplyMap ( 'CountryMap' Страна 'США'), как страна,

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

CountryMap:
ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE

[Страна, NewCountry

США, США
США, США

Соединенные Штаты Америки, США

Соединенные Штаты Америки, США]; Данные:

НАГРУЗКИ

ID, имя,

ApplyMap ( 'CountryMap' Страна 'US') в качестве страны, код

FROM [Lib: // Учебник Files / Data.xlsx] (OOXML, встроенные


метки, таблицы Лист1);

8. Нажмите кнопку Загрузка данных.

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

Функция MapSubstring ()
MapSubstring () Функция позволяет отображать части поля.

В таблице, созданной ApplyMap () мы nowwant цифры должны быть написаны как текст, так MapSubstring ()

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

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

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 39


Очищение 4 данных

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

секция данных.

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

CountryMap:
ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE

[Страна, NewCountry

США, США
США, США

Соединенные Штаты Америки, США

Соединенные Штаты Америки, США];


CodeMap:

ОТОБРАЖЕНИЕ НАГРУЗКИ * INLINE [F1, F2

1, одна
2, две
3, три
4, четыре
5, пять
11, одиннадцать];

Данные: НАГРУЗКИ

ID, имя,

ApplyMap ( 'CountryMap' Страна 'US') в качестве страны, код

FROM [Lib: // Учебник Files / Data.xlsx] (OOXML, встроенные


метки, таблицы Лист1);

В таблице CodeMap, число от 1 до 5, и 11 aremapped.

2. В разделе Данные сценария модифицировать Код заявление следующим образом:

MapSubString ( 'CodeMap', код) в качестве кодекса

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

Данные:

НАГРУЗКИ

ID, имя,

ApplyMap ( 'CountryMap' Страна 'США'), как страна, MapSubString (


'CodeMap', Code) в качестве кода из 'Lib: // Учебник Files / Data.xlsx' (OOXML,
встроенные метки, таблицы Лист1);

3. Нажмите Загрузка данных.

Теперь давайте посмотрим на результаты из MapSubstring () функция. Загруженные данные теперь выглядит следующим образом:

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 40


Очищение 4 данных

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

Числовые символы были заменены с текстом в поле Код. Если число появляется более одного раза, как это делает для ID = 3, и ID = 4, текст

также повторяется. ID = 4, Сьюзен McDaniels была 6 в ее коде. С 6 не отображается в таблице CodeMap, она остается неизменной. ID = 5, Дин

Смит, был 111 в своем коде. Это был сопоставлен как «elevenone».

Карта ... Использование

Карта ... Использование Заявление также может быть использовано для применения карты к полю, но она работает немного иначе, чем

ApplyMap (). Пока ApplyMap () Ручки themapping каждый раз, когда имя поля встречается, Карта ... используя

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

Давайте посмотрим на пример. Предположу, что мы грузили в поле Страны несколько раз в сценарии и хотел применить карту, каждый раз, когда поле было

загружено. Функция ApplyMap () может быть использована, как показано ранее в этом руководстве или Карта ... Использование может быть использован.

Если Карта ... Использование Затем используется themap применяется к полю, когда поле хранится во внутренней таблице. Таким образом, в приведенном

ниже примере, themap применяется к полю Страны в таблице DATA1, но она не будет применяться к полю COUNTRY2 в таблице data2. Это происходит потому, Карта

... используя заявление применяется только к полям имени страны. Когда поле COUNTRY2 хранятся во внутренней таблице она больше не названа страна.

Если вы хотите, чтобы карта была применена к таблице COUNTRY2, то вам нужно будет использовать ApplyMap () функция.

Карта Страна Использование CountryMap; Data1:

НАГРУЗКА ID, Имя, Страна

FROM 'Lib: // Учебник Файлы / Data.xlsx' (OOXML, встроенные


метки, таблицы Лист1); Data2: НАГРУЗКА ID,

Страна, как COUNTRY2


FROM 'Lib: // Учебник Файлы / Data.xlsx' (OOXML, встроенные
метки, таблицы Лист1); Unmap;

Unmap
Unmap Заявление заканчивается Карта ... Использование заявление, так что если страна должны были быть загружены после Unmap

заявление, то CountryMap не будет применяться.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 41


5 Обработка данных иерархических

5 Обработка иерархических данных


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

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

С вершины иерархии до дна, themembers прогрессивно более детально. Например, в измерении, которое имеет уровни рынка, страна, штат и

город, themember Americas появляется в верхнем уровне иерархии, themember США появляются на втором уровне, themember Калифорния

появляется на третьем уровне и Сан-Франциско, в нижней части уровень. Калифорния является более специфичным, чем США, и в

Сан-Франциско более специфичен, чем в Калифорнии.

Сохранение иерархии в реляционной модели является общей проблемой с несколькими решениями. Есть несколько подходов:

L Горизонтальная иерархия

L Модель списка смежности

L Метод Путь перечисления

L Уплотненный устанавливает модель

L Список Предок

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

запросе. Более подробную информацию о других подходах можно найти в Qlik сообщества.

5.1 Иерархия префикс


иерархия Приставка представляет собой командный сценарий, который вы поставите перед НАГРУЗКИ или же ВЫБРАТЬ утверждение, что загружает прилегающую

таблицу узлов. НАГРУЗКИ Заявление должно иметь по крайней мере три поля: идентификатор, который является уникальным ключом для узла, ссылка на родитель и имя.

Иерархия (NodeID, ParentID, NodeName) Несущая


NodeID,
ParentID,
NodeName

Префикс преобразует загруженную таблицу в расширенной таблице узлов; таблица, которая имеет ряд дополнительных столбцов; по одному для

каждого уровня иерархии.

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

1. Создайте новое приложение и дать ему имя.

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

файлов.

3. В редактор загрузки данных, щелчок ± на соединении данных, чтобы выбрать файл для загрузки данных из.

4. Выберите Winedistricts.txt и нажмите Выбрать.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 42


5 Обработка данных иерархических

5. Снимите флажок LBOUND и RBound поля, чтобы они не загружены.

6. Нажмите кнопку Вставить скрипт.

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

НАГРУЗКИ

NodeID,
ParentID,
NodeName
FROM [Lib: // Учебник Файлы / Winedistricts.txt] (.txt, utf8, встроенные метки,
разделитель '\ т', МСО);

7. Вставьте новую строку выше НАГРУЗКИ заявление, и введите следующие данные:

Иерархия (NodeID, ParentID, NodeName)

8. Нажмите кнопку Загрузка данных.

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

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

В результате чего расширяется таблица узлов имеет точно такое же количество записей в качестве источника таблицы: один для каждого узла. Расширила таблица

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

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

L Кроме того, различные уровни узлов были расширены в одно поле каждого; поля, которые могут быть использованы в

Сверло вниз группа или как размеры в сводных таблицах.

L Кроме того, различные уровни узлов были расширены в одно поле каждого; поля, которые могут быть использованы в

просверлить вниз группы.

L Он может bemade содержать путь уникальный для узла, в котором перечислены все предки в правильном порядке.

L Он может bemade содержать глубину узла, т.е. расстояние от корня.

Префикс 5.2 HierarchyBelongsTo


Подобно тому, как иерархия Приставка, то HierarchyBelongsTo это командный сценарий, который вы поставите перед НАГРУЗКИ или же

ВЫБРАТЬ утверждение, что загружает таблицу рядом узлов:

HierarchyBelongsTo (NodeID, ParentID, NodeName, BelongsToID, BelongsTo) Несущая


NodeID,
ParentID,
NodeName

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 43


5 Обработка данных иерархических

Также здесь, то НАГРУЗКИ Заявление должно иметь по крайней мере три поля: идентификатор, который является уникальным ключом для узла, ссылка на

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

качестве отдельной записи. Таким образом, очень легко найти все предок или все потомок конкретного узла.

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

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

HierarchyBelongsTo (NodeID, ParentID, NodeName, BelongsToID, BelongsTo)

2. В правом верхнем углу нажмите Загрузка данных.

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

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

Таблица предка является очень практичной, так как он выполняет ряд требований для анализа иерархии в реляционной модели:

L Если идентификатор узла представляет собой отдельные узлы, предок ID представляет целые деревья и суб-деревьев

иерархия.

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

поиск.

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

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

должен, очевидно, имеет право видеть все, относящиеся к их собственному отделу, включая все его суб-подразделения. Но они не обязательно

должны иметь право видеть другие отделы.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 44


5 Обработка данных иерархических

Это означает, что разные люди будут иметь возможность увидеть различные суб-деревья организации. Разрешение tablemay выглядеть следующим

образом:

В этом случае, Кэрол разрешено видеть все относящиеся к CEO и ниже; Ларри позволил увидеть организацию продукта; и
Джеймс разрешено видеть только проектную организацию.

Более подробная информация о том, как работать с иерархическими данными доступна community.qlik.com

Пример:

Часто иерархия сохраняются в смежной таблице узлов, и если да, то вышеупомянутая проблема легко решается: Просто загрузите таблицу смежных узлов с

использованием HierarchyBelongsTo и назовите дерево предка поля.

Если вы хотите использовать Раздел доступ, вам необходимо загрузить верхний корпус копию дерева и назвать это новое поле РАЗРЕШЕНИЯ. Наконец,

необходимо загрузить таблицу авторизации. Эти два последних шаг можно сделать, используя следующие строки сценария: (таблица TempTrees это

таблица, созданная с помощью HierarchyBelongsTo заявление.)

Деревья:

НАГРУЗКА *,

Верхний (дерево), как права доступа


резидентов TempTrees;

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 45


5 Обработка данных иерархических

Drop Table TempTrees;

Раздел доступ;
Авторизация:
НАГРУЗКИ ACCESS,
NTNAME,

UPPER (разрешения) в качестве разрешения от


организации; Раздел приложения;

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

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 46


6 QVD файлы

6 QVD файлы
QVD файлы один из распознаваемых типов файлов, которые могут быть использованы в качестве соединений для передачи данных.

6.1 Работа с файлами QVD


Файл QVD (QlikView данных) представляет собой файл, содержащий таблицу данных, экспортируемых из Qlik Sense или QlikView. QVD является родным форматом

Qlik и может быть записан только и читать Qlik Sense или QlikView. Формат файла оптимизирован для скорости при чтении данных из сценария Qlik Sense, но это все

еще очень компактно. Считывание данных из файла QVD обычно составляет 10-100 раз быстрее, чем чтение из других источников данных.

QVD файлы могут быть считаны в двух режимах: стандартный (быстрый) и оптимизированы (быстрее). Выбранный режим определяется автоматически с помощью

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

(формулы, действующих на полях), хотя переименование полей допускается. Где положение вызывает Qlik Sense распаковывать записи будет также отключить

оптимизированную нагрузку.

Файл QVD занимает ровно одну таблицы данных и состоит из трех частей:

L XML-заголовок (в UTF-8 набора символов), описывающие поля в таблице, расположение последующего

информация и некоторые другие метаданные.

L Символ таблицы в формате байт-чучела.

L Фактические данные таблицы в формате битового набитый.

QVD файлы могут быть использованы для многих целей. Четыре основные виды использования могут быть легко идентифицированы. Более onemay применять в любой

ситуации:

L Увеличение скорости загрузки данных

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

становится для больших наборов данных.

L Уменьшение нагрузки на серверы баз данных

Объем данных, извлекаемых из внешних источников данных также может быть значительно уменьшен. Это снижает нагрузку на внешних баз

данных и сетевого трафика. Кроме того, когда несколько сценариев Qlik Sense одни и те же данные, необходимо только, чтобы загрузить его

один раз из исходной базы данных в файл QVD. Другие приложения могут использовать одни и те же данные через этот QVD файл.

L Консолидация данных frommultiple приложений Qlik Sense.

С помощью оператора Binary сценария можно загружать данные только из одного отдельного приложения Qlik Sense в другой, но с QVD файлы

скрипт Qlik Sense может объединять данные из любого числа приложений Sense Qlik. Это открывает возможности для приложений,

объединяющих сходные данные из различных бизнес-подразделений и т.д.

L Инкрементальная нагрузка

Во многих распространенных случаях функциональные QVD может быть использованы для облегчения добавочной загрузки исключительно загрузки новых записей

из базы данных растущих.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 47


6 QVD файлы

6,2 Создание QVD файлов

Файл QVD можно создать двумя способами:

L Явное создание и именование с использованием хранить команда в сценарии Qlik Sense.

Государство в скрипте, который ранее чтение таблицы или ее часть, должны быть экспортировано в явном виде названия файл на месте по вашему

выбору.

L Автоматическое создание и обслуживание от сценария.

По предшествующей нагрузки или выберите заявление с буфер Приставка, Qlik Sense автоматически создаст QVD файл, который при определенных

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

Там нет никакой разницы между результирующими файлами QVD, что касается скорости чтения.

хранить

Эта функция создает сценарий QVD или файл CSV.

Синтаксис:

Магазин [* FieldList из таблицы] в имя файла [Формат-спецификация];

Заявление будет создавать явно с именем QVD или CSV файл. Оператор может экспортировать только поля из одной таблицы данных. Если поля из нескольких таблиц

должны быть экспортированы, явные присоединиться должна bemade ранее в сценарии для создания таблицы данных, которые должны быть экспортированы.

Текстовые значения экспортируются в файл CSV в формате UTF-8. Разделитель может быть указано, см НАГРУЗКИ. Магазин заявление в файл CSV не

поддерживает Биф экспорт.

Примеры:

Магазин туЬаЫе в xyz.qvd (QVD); Магазин * от туЬаОй в xyz.qvd; Название


магазина, REGNO из MyTable в xyz.qvd; Название магазина, как, REGNO, как б
из MyTable в xyz.qvd; магазин туЬаЫе в myfile.txt (TXT);

магазин * из MyTable в 'Lib: //FolderConnection/myfile.qvd';

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

1. В приложении, Advanced Scripting учебник, открыть редактор загрузки данных.

2. В разделе сценария выберите раздел Продукт.

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

Кросс (месяц, продажа) НАГРУЗКИ

Продукт, "Ян
2014", "февраль
2014",

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 48


6 QVD файлы

"Март 2014",
"апрель 2014",
"май 2014",
"Джун 2014"
FROM 'Lib: // Учебник Файлы / Product.xlsx' (OOXML, встроенные
метки, таблицы товаров);

3. Добавьте новую строку в конце сценария. Для этого урока мы возьмем последний пример выше, модифицированный для Продукт сценарий:

магазин * из продукта в 'Lib: // Учебник Файлы / Product.qvd';

4. В правом верхнем углу нажмите Загрузка данных.

При нажатии кнопки Загрузка данных, сценарий сохраняется.

5. Нажмите кнопку ± на Учебник файлы Подключение к данным для просмотра доступных файлов. Product.qvd файл должен

быть в списке файлов.

Этот файл данных является результатом из Таблица результатов Сценарий и представляет собой три колонки таблицы, один столбец для каждой категории (продукт,

месяц продажи). Этот файл данных может теперь использоваться, чтобы заменить весь Продукт Сценарий раздела.

буфер
QVD файлы могут создаваться и поддерживаться автоматически через буфер префикс. Этот префикс может быть использован на большинстве

НАГРУЗКИ а также ВЫБРАТЬ заявления в сценарии. Это указывает на то, что QVD файлы используются для кэша / буфера результат оператора.

Синтаксис:

вариант :: = инкрементальный | Buffer [(опция [, опции])] (SelectStatement loadstatement) | несвежее


[после] количество [(дни | часы)]

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

Пример 1:

Буфер select * from MyTable;

дополнительный

дополнительный Опция позволяет возможность читать только часть нижележащего файла. Прежний размер файла хранится в заголовке XML в

файле QVD. Это особенно полезно с лог-файлами. Все записи, загруженные в предыдущем случае считывается из файла QVD тогда следующие

новые записи считываются из оригинального источника и, наконец, обновленный файл QVD создаются.

Пример 2:

Буфер (черствый через 7 дней) выберите * от MyTable;

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 49


6 QVD файлы

Обратите внимание, что дополнительный опция может быть использована только с НАГРУЗКИ заявления и текстовые файлы и что инкрементальная нагрузка не могут

быть использованы, когда старые данные изменены или удалены!

несвежее [после] количество [(дни | часы)]

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

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

просто заявляет, период времени с момента создания буфера QVD, после чего он больше не будет считаться действительным. До этого времени буфер QVD

будет использоваться в качестве источника данных и после того, что исходный источник данных будет использоваться. Буфер файл QVD будет автоматически

обновляться и новый период начинается.

Пример 3:

Буфер (инкрементный) нагрузки * от MyLog.log;

QVD буфера, как правило, удалены, когда больше не ссылать в любом в течение полного выполнения скрипта в приложении, которое не создало его, или когда

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

QVD или CSVfile.

6,3 Чтение данных из файлов QVD


Файл QVD можно прочитать в или доступ Qlik Sense следующими способами:

L Загрузка QVD файла в качестве явного источника данных. QVD файлы могут ссылаться заявление нагрузки в Qlik

Sense скрипт так же, как любой другой тип текстовых файлов (CSV, исправить, диф, ударять, и так далее).

Пример:

НАГРУЗКА * от xyz.qvd (QVD); НАГРУЗКА Имя, REGNO от xyz.qvd


(QVD); НАГРУЗКА имя как, REGNO, как б от xyz.qvd (QVD);

L Автоматическая загрузка файлов буферизация QVD. При использовании буфера префикса на нагрузки или выберите заявления, не

Явные заявления для чтения необходимы. Qlik Sense будет определять степень, в которой он будет использовать данные из файла QVD в отличие от сбора

данных с использованием оригинала НАГРУЗКИ или же ВЫБРАТЬ заявление.

L Доступ QVD файлов из сценария. Ряд функций сценария (все начало с QVD) может быть использовано для

получение различной информации о найденных данных в XML заголовке файла QVD.

6,4 Спасибо!
Теперь вы закончили этот урок, и, надеюсь, вы получили somemore знания о сценариях в Qlik Sense. Пожалуйста, посетите наш веб-сайт для получения

более подробной информации о дальнейшей подготовке доступной.

Учебник - Следующие шаги в сценарии - Qlik Sense, июнь 2019 50

Оценить