Операции с файлами через QlikView

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

ЗАГРУЗКА ИМЁН ПАПОК И ФАЙЛОВ

Для получения имён папок в QlikView есть специальная функция DirList(), для файлов используется аналогичная FileList().

Загрузить список папок в корне диска C:

Способы моделирования данных

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

В целом способ загрузки данных в документ можно объяснить с помощью процессов извлечения, преобразования и загрузки (ETL — Extract, Transform, Load):

Использование файлов QVD для инкрементальной загрузки

Инкрементальная загрузка является распространенной задачей в отношении баз данных. Она определяется тем, что загружает из базы данных только новые или измененные записи. Все прочие данные так или иначе должны уже быть доступны. С помощью QVD-файлов QlikView (Qlik Sense) в большинстве случаев можно выполнить инкрементальную загрузку.

Основной процесс приведен ниже:

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

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

Объединение таблиц с помощью операторов Join и Keep

Объединение — операция объединения двух таблиц в одну. Записи результирующей таблицы представляют собой комбинации записей в исходных таблицах. При этом две такие записи, составляющие одну комбинацию в результирующей таблице, как правило, имеют общее значение одного или нескольких общих полей. Такое объединение называется естественным. В программе QlikView (Qlik Sense) объединение может выполняться в скрипте, создавая логическую таблицу.

Использование сопоставления как альтернативы соединению

Префикс Join в программе QlikView (Qlik Sense) является мощным инструментом для объединения нескольких таблиц данных в модель данных. Единственным недостатком является то, что объединенные таблицы могут оказаться большими, из-за чего могут возникнуть проблемы при выполнении. Альтернативой соединению Join в ситуациях, когда необходимо найти одиночное значение в другой таблице, является сопоставление. В этом случае не будут загружены ненужные данные, которые могли бы замедлить вычисления и создать ошибки при вычислениях, поскольку при соединении может измениться число записей в таблицах.

Таблица сопоставления состоит из двух столбцов: поле сравнения (входные данные) и поле со значением сопоставления (выходные данные).

Оптимизация производительности приложений

ВВЕДЕНИЕ

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

Общую производительность можно повысить путем переноса «проблемы» из объектов приложений в базу данных, управляемую скриптом. Часто это позволяет спасти ситуацию. Время отклика улучшается, а специальные функции сокращаются. Следующие рекомендации не следует рассматривать как универсально полезные. Их следует использовать. когда они позволяют улучшить состояние приложение или обеспечивают небольшую решающую разницу.

Сопоставление интервалов с дискретными данными

Префикс intervalmatch для операторов LOAD или SELECT используется для связывания дискретных числовых значений с одним или несколькими числовыми интервалами. Это очень полезная функция, которая может использоваться, например, в производственных средах, как показано в примере ниже.

Пример:

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

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

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

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

551

Эта таблица определяет набор неперекрывающихся интервалов, где дата начала называется «Change Date», а дата конца определяется началом следующего интервала. Но поскольку дата конца хранится в своем столбце неявно, необходимо создать такой столбец, чтобы новая таблица стала списком интервалов.

Иерархии в QlikView и Qlik Sense

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

558

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

Семантические связи в QlikView и Qlik Sense

СЕМАНТИЧЕСКИЕ СВЯЗИ В QLIKVIEW И QLIK SENSE

Как правило, выборка выполняется явно, щелчком по необходимым значениям полей. Тем не менее в в QlikView и Qlik Sense, существует способ непрямой выборки через семантические связи. Они подобны значениям полей, за тем исключением, что описывают взаимоотношения между объектами, а не сами объекты. Они отображаются в виде списка кнопок.

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

58 queries in 0,457 seconds