Префикс NoConcatenate определяет, что две загруженные таблицы с идентичными наборами полей будут обрабатываться как две отдельные внутренние таблицы вместо автоматического объединения.
Синтаксис:
NoConcatenate(
loadstatement |
selectstatement )
Если загружается таблица, содержащая идентичное количество полей с такими же именами, как в таблице, загруженной скриптом ранее, то Qlik Sense по умолчанию объединит эти две таблицы. Это произойдет, даже если вторая таблица имеет другое имя.
Однако если префикс скрипта NoConcatenate добавлен перед оператором load или оператором второй таблицы, то эти две таблицы будут загружаться по отдельности.
Типичным примером применения NoConcatenate является случай, когда необходимо создать временную копию таблицы, чтобы выполнить некоторые временные преобразования в копии, сохраняя неизмененными первоначальные данные. NoConcatenate позволяет создать такую копию, исключив ее неявное добавление в исходную таблицу.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Когда выполняется скрипт, таблица Sales неявно объединяется с существующей таблицей Transactions, так как в двух наборах данных содержится одинаковое количество полей с идентичными именами. Это происходит несмотря на то, что тег имени второй таблицы пытается присвоить результирующему набору имя ‘Sales’.
Чтобы подтвердить неявное объединение набора данных Sales, проверьте записи в журнале Выполнение загрузки данных.
Журнал «Выполнение загрузки данных», подтверждающий неявное объединение набора данных Transactions.
Пример 2. Сценарий применения
Обзор
В этом сценарии применения имеется следующее:
Набор данных Transactions, включающий следующие поля:
id
date
amount (in GBP)
Таблица Currency, включающая:
Курс обмена долларов США (USD) на британские фунты (GBP)
Второй набор данных Transactions, включающий следующие поля:
id
date
amount (в USD)
Будут загружены пять скриптов, один за другим.
Первый скрипт загрузки содержит первоначальный набор данных с датами и суммами в британских фунтах (GBP), который отправляется в таблицу под именем Transactions.
Второй скрипт загрузки содержит следующее:
Второй набор данных с датами и суммами в долларах США (USD), который отправляется в таблицу под именем Transactions_in_USD.
Префикс noconcatenate, добавленный перед оператором load набора данных Transactions_in_USD для предотвращения неявного объединения.
Третий скрипт загрузки содержит префикс join, который будет использоваться для создания курса обмена валют между британскими фунтами и долларами США в таблице Transactions_in_USD.
Четвертый скрипт загрузки содержит префикс concatenate, который добавляет Transactions_in_USD в первоначальную таблицу Transactions.
Пятый скрипт загрузки содержит оператор drop table, который удалит таблицу Transactions_in_USD после объединения ее данных с таблицей Transactions.
Загрузите данные и откройте просмотр модели данных. Выберите таблицу Transactions_in_USD, и обратите внимание, что для каждой существующей записи добавлено значение поля rate, равное 0.7.
Четвертый скрипт загрузки
Используя резидентную загрузку, этот скрипт загрузки объединит таблицы Transactions_in_USD и Transactions после перевода сумм в доллары США (USD).
Загрузите данные и откройте таблицу. Появятся новые записи с суммами в британских фунтах (GBP) из строк 8 — 14.
Результаты четвертого скрипта загрузки
id
date
amount
1
12/30/2018
23.56
2
12/07/2018
556.31
3
12/16/2018
5.75
4
12/22/2018
125.00
5
12/22/2018
484.21
6
12/22/2018
59.18
7
12/23/2018
177.42
8
01/01/2019
114.989
8
01/01/2019
164.27
9
01/03/2019
268.80
9
01/03/2019
384.00
10
01/06/2019
18.074
10
01/06/2019
25.82
11
01/09/2019
218.40
11
01/09/2019
312.00
12
01/15/2019
3.192
12
01/15/2019
4.56
13
01/16/2019
63.168
13
01/16/2019
90.24
14
01/18/2019
13.524
14
01/18/2019
19.32
Пятый скрипт загрузки
Этот скрипт загрузки удалит повторяющиеся записи из таблицы результатов четвертого скрипта загрузки, оставляя только записи с суммами в британских фунтах (GBP).
drop tables Transactions_in_USD;
Результаты
Загрузите данные и откройте таблицу.
Результаты пятого скрипта загрузки
id
date
amount
1
12/30/2018
23.56
2
12/07/2018
556.31
3
12/16/2018
5.75
4
12/22/2018
125.00
5
12/22/2018
484.21
6
12/22/2018
59.18
7
12/23/2018
177.42
8
01/01/2019
114.989
9
01/03/2019
268.80
10
01/06/2019
18.074
11
01/09/2019
218.40
12
01/15/2019
3.192
13
01/16/2019
63.168
14
01/18/2019
13.524
После выполнения пятого скрипта загрузки в таблице результатов отображаются все 14 транзакций, которые существовали в обоих наборах данных транзакций. Однако для транзакций 8-14 суммы переведены в британские фунты (GBP).
Если убрать префикс NoConcatenate, который стоял перед Transactions_in_USD во втором скрипте загрузки, выполнение скрипта завершится ошибкой «Таблица Transactions_in_USD не найдена». Это связано с тем, что в таком случае таблица Transactions_in_USD будет автоматически объединена с первоначальной таблицей Transactions.
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!