Load

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

Syntax:  

LOAD [ distinct ] fieldlist

[( from file [ format-spec ] |

from_field fieldassource [format-spec]|

inline data [ format-spec ] |

resident table-label |

autogenerate size ) |extension pluginname.functionname([script] tabledescription)]

[ where criterion | while criterion ]

[ group by groupbyfieldlist ]

[order by orderbyfieldlist ]

Arguments:  

Аргумент Описание
distinct distinct — это логическое условие, используемое в том случае, если должна быть загружена только первая из дублирующихся записей.
fieldlist fieldlist ::= ( * | field {, * | field } )

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

field ::= ( fieldref | expression ) [as aliasname ]

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

fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )

fieldname — это текст, идентичный имени поля в таблице. Обратите внимание, что для указания имени поля необходимо заключить его в прямые двойные кавычки или квадратные скобки, если имя содержит пробелы. Иногда имена полей явно недоступны. В таких случаях используется другая нотация:

@fieldnumber представляет номер поля в табличном файле с разделителями. Он должен быть положительным целым числом с предшествующим символом «@». Нумерация всегда начинается с 1 и идет до числа полей.

@startpos:endpos представляет начальную и конечную позиции поля в файле с записями фиксированной длины. Позиции должны быть положительными целыми числами. Двум числам должен предшествовать символ «@», и они должны быть разделены двоеточием. Нумерация всегда начинается с 1 и содержит число позиций. В последнем поле элемент n используется как конечная позиция.

  • Если после @startpos:endpos указаны символы I или U, прочитанные байты будут интерпретированы как двоичное целое число со знаком (I) или без знака (U) (порядок байтов Intel). Прочитанное число позиций должно быть 1, 2 или 4.
  • Если после @startpos:endpos указан символ R, прочитанные байты будут интерпретированы как двоичное действительное число (32-разрядное IEEE или 64-разрядное с плавающей запятой). Прочитанное число позиций должно быть 4 или 8.
  • Если после @startpos:endpos указан символ B, прочитанные байты будут интерпретироваться как числа в двоичной кодировке BCD (Binary Coded Decimal) в соответствии со стандартом COMP-3. Может быть указано любое число байтов.

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

as используется для назначения полю нового имени.

from

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

file ::= [ path ] filename

Example: 'lib://Table Files/'

Если путь отсутствует, программа Qlik Sense выполняет поиск файла в каталоге, указанном оператором Directory. Если оператора Directory нет, программа Qlik Sense выполняет поиск в рабочем каталоге C:\Users\{user}\Documents\Qlik\Sense\Apps.

Directory

Примечание: При установке на сервере Qlik Sense рабочий каталог указывается в программе Qlik Sense Repository Service, по умолчанию это C:\ProgramData\Qlik\Sense\Apps. Для получения более подробной информации см. справку Qlik Management Console.

Элемент filename может содержать стандартные знаки подстановки DOS ( * и ? ). В результате будут загружены все файлы в указанном каталоге, удовлетворяющие критериям.

format-spec ::= ( fspec-item { , fspec-item } )

Спецификация формата состоит из списка нескольких элементов спецификации формата, заключенных в скобки.

Элементы спецификации формата

Подсказка: Спецификацию формата URL is можно использовать для переопределения URL-адреса подключения к данным веб-файла, к примеру, если необходимо создать динамический URL-адрес на основе других загруженных данных.

В прежней версии режима написания скриптов следующие форматы пути тоже поддерживаются:

  • абсолютный

    Example: c:\data\

  • относительно рабочего каталога приложения Qlik Sense.

    Example: data\

  • URL-адрес (HTTP или FTP), указывающий на местоположение в Интернете или интрасети.

    Example: http://www.qlik.com

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

fieldassource::=(tablename, fieldname)

Поле — это имя ранее загруженных tablename и fieldname.

format-spec ::= ( fspec-item {, fspec-item } )

Спецификация формата состоит из списка нескольких элементов спецификации формата, заключенных в скобки.

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

data ::= [ text ]

Данные, введенные с использованием предложения inline, должны быть заключены в двойные или в квадратные скобки. Текст между ними интерпретируется так же, как и содержимое файла. Поэтому при вставке новой строки в текстовый файл ее также необходимо вставить в текст предложения inline, например, нажав клавишу Enter при вводе скрипта. Количество столбцов определяется по первой строке.

format-spec ::= ( fspec-item {, fspec-item } )

Спецификация формата состоит из списка нескольких элементов спецификации формата, заключенных в скобки.

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

table label — это метка, предшествующая оператору(-ам) LOAD или SELECT, используемым для создания исходной таблицы. В конце метки должно быть указано двоеточие.

Загрузка данных из ранее загруженной таблицы

Метки таблицы

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

size ::= number

Number — это целое число, обозначающее число создаваемых записей.

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

extension

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

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

Extension pluginname.functionname( tabledescription );

  • Загрузка данных при помощи функции подключаемого модуля SSE

    tabledescription ::= (table { ,tablefield} )

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

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

    tabledescription ::= ( script, table { ,tablefield} )

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

Тип данных можно установить принудительно. Для этого необходимо заключить имя поля в функцию String() или Mixed().

  • Если используется функция String(), значение поля рассматривается как текстовое. Если поле является числовым, текстовая часть двойного значения извлекается без выполнения преобразования.
  • Если используется функция Mixed(), значение поля рассматривается как двойное.

Использование функций String() или Mixed() вне определений поля таблицы extension не поддерживается, как не поддерживается использование других функций Qlik Sense в определении поля таблицы.

Перед использованием аналитических подключений их необходимо настроить.

Qlik Sense Enterprise: Создание аналитического подключения

Qlik Sense Desktop: Настройка аналитических подключений в Qlik Sense Desktop

Ознакомиться с подробными сведениями об аналитических подключениях можно в репозитории GitHub. qlik-oss/server-side-extension

where where — предложение, которое используется для указания того, нужно ли включить запись в выборку или нет. Выборка включается, если элемент criterion имеет значение True.

criterion — это логическое выражение.

while

while — это предложение, используемое для указания необходимости повторного чтения записи. Эта же запись читается, если для элемента criterion указано значение True. Чтобы быть полезным, предложение while обычно должно содержать функцию IterNo( ).

criterion — это логическое выражение.

group by

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

groupbyfieldlist ::= (fieldname { ,fieldname } )

order by order by — это предложение, используемое для сортировки записей резидентной таблицы до их обработки оператором load. Резидентная таблица может быть отсортирована по одному или нескольким полям в возрастающем или убывающем порядке. Сортировка осуществляется первично по числовому значению и дополнительно в порядке соответствия национальных параметров. Это предложение может использоваться, только если источником данных является резидентная таблица.

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

orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] }

sortorder имеет значение asc для сортировки по возрастанию или desc для сортировки по убыванию. Если sortorder не указан, используется asc.

fieldname, path, filename и aliasname — это текстовые строки, представляющие подразумеваемые соответствующие имена. Любое поле в исходной таблице может использоваться в качестве fieldname. Однако поля, созданные с помощью предложения (aliasname), не рассматриваются и не могут использоваться внутри одного оператора load.

Если источник данных не указан с помощью выражений from, inline, resident, предложения from_fieldextension или autogenerate, данные будут загружены из результата сразу после выполнения оператора SELECT или LOAD. Последующий оператор не должен иметь префикса.

Загрузка данных из ранее загруженной таблицы

Examples: