Введение в QlikView. Способы загрузки данных

QlikView (далее — QV)– это BI-платформа, разработанная шведской компанией QlikTech, в настоящее время расположенной в штате Пенсильвания, США. Включена в группу лидеров магического квадранта Gartner поставщиков платформ Business Intelligence. В моей организации QV используется более пяти лет и на его базе разработано 100+ дэшбордов.

QV представляет из себя инструмент BI-аналитики, содержит широкий набор способов визуализации данных, имеет возможность создания собственных объектов-расширений, гибок в использовании. В данной и последующих статьях я постараюсь осветить основные принципы разработки проекта в QV, предоставить описание большинства объектов визуализации, а, так же, рассказать о некоторых tip and tricks, которые применял на практике в рамках своей деятельности. Надеюсь данная информация окажется полезной как для новичков, так и для опытных разработчиков.

Начнем с описания способа организации проекта и основных методов загрузки данных в QV.

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

Введение в QlikView. Способы загрузки данных

AppsTier1 – содержит файл-экстрактор формата *.qvw, который извлекает информацию из внешних источников, сохраняет ее в файлы *.qvd в папку DataTier1 по принципу один источник – один *.qvd, то есть, без их объединения.

DataTier1 – содержит *.qvd файлы – результат работы экстрактора. Так же могу быть созданы подкаталоги для локальных источников данных, например, *.csv, *.xslx, *.jpeg и другие.

Введение в QlikView. Способы загрузки данных

В этом случае файл-экстрактор будет обрабатывать информацию из этих подкаталогов и сохранять *.qvd непосредственно в папку DataTier1.

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

AppsTier2 – содержит файл-трансформатор формата *.qvw, который осуществляет все необходимые преобразования в первоначальных данных, результат работы сохраняется в папку DataTier2 в формате *.qvd

AppsTier3 – слой для формирования модели данных, объединяет содержащиеся в папке *.qvd файлы, сохраняется в формате *.qwv. В самом файле можно создавать объекты для проверки созданной модели.

AppsTier4 – итоговая визуализация, именно этот файл выкладывается в публичный доступ на сервер. Грузится модель данных из AppsTier3, создаются объекты, если предполагается использование картинок, то они так же грузятся на этом слое.

Далее рассмотрим способы выгрузки данных из различных источников – в основном используются в AppsTier1.

Скрипт, как ни странно, пишется в редакторе скриптов — CTRL+E или:

Введение в QlikView. Способы загрузки данных

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

Введение в QlikView. Способы загрузки данных

Для начала попробуем способ загрузки Load Inline, фактически является аналогом SQL выражения:

Введение в QlikView. Способы загрузки данных

Выбираем пункт меню Insert->Load Statement->Load inline:

Введение в QlikView. Способы загрузки данных

Появится таблица, в которую внесем свои данные:

Введение в QlikView. Способы загрузки данных

В редакторе скрипта автоматически сформируется код:

Введение в QlikView. Способы загрузки данных

Попробуем его запустить – CTRL+R или:

Введение в QlikView. Способы загрузки данных

Нажимает CTRL+T для отображения структуры данных в нашем файле:

Введение в QlikView. Способы загрузки данных

Наша таблица называется INLFED, имена полей – F1 и F2. Если нажать на ней правой кнопкой мыши и выбрать Preview, то увидим строки, которые в ней хранятся:

Мы можем отредактировать код, созданный мастером – присвоим имя таблице и поменяем названия полей:

Введение в QlikView. Способы загрузки данных

Пропишем код создания еще одной таблицы Справочник_2:

Введение в QlikView. Способы загрузки данных

Кажется, что должно быть создано две таблицы со своим набором данных, но мы видим это:

Введение в QlikView. Способы загрузки данных

Одна таблица, пять строк, таблицы Справочник_2 не существует. Все дело в том, что QV объединяет таблицы с одинаковыми именами полей и их количеством, фактически делает автоматический Union All. В некоторых случаях нам может понадобиться отключить эту функцию, делается это выражением NoConcatenate перед загрузкой таблицы:

Введение в QlikView. Способы загрузки данных

Немного модифицируем код, Справочник – таблица с фруктами, Справочник_цен – таблица с ценами:

Введение в QlikView. Способы загрузки данных
Введение в QlikView. Способы загрузки данных

Поскольку теперь имена полей не совпадают, то созданы обе таблицы, но одно поле (ID) – общее ключ-поле. QV автоматически связывает таблицы по полям с одинаковыми именами, теперь с фруктом из справочника связана цена по соответственному номеру ID, это можно увидеть если создать объект Table Box:

Введение в QlikView. Способы загрузки данных

Load inline может использоваться в любом слое разработки.

Далее представлены другие способы загрузки данных в QV.

  1. Соединение через ODBC:

В редакторе скрипта выбираем Insert-Connect Statement

Введение в QlikView. Способы загрузки данных

Выбираем необходимый источник данных, например, Hyperion:

Введение в QlikView. Способы загрузки данных

Автоматически будет создана строка подключения:

Введение в QlikView. Способы загрузки данных

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

Введение в QlikView. Способы загрузки данных

Далее пишем свой SQL запрос:

Введение в QlikView. Способы загрузки данных

Загрузка из эксель-файла:

Введение в QlikView. Способы загрузки данных

vXLSData – переменная, содержащая путь к xlsx файлу, если указано только имя файла, то он должен находиться в одной директории с qvw-экстрактором. В параметре «table is Лист1» указывается имя листа, из которого выгружается информация.

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

Введение в QlikView. Способы загрузки данных

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

FOR EACH vFileName in Filelist(vXLSData & ‘\PF\0*_*.xls*’) – инициализация цикла, для каждого файла в списке файлов из директории применяется код, указанный ниже.

Concatenate(tmpData) – добавление строк в таблицу tmpData (изначально пустая), своего рода, аналог Union All в SQL.

Загрузка из CSV-файла:

Введение в QlikView. Способы загрузки данных

где embedded labels – файл содержит имена столбцов, delimiter is ‘,’ – разделитель запятая .

Способы в п.1-3 используются, как правило, в AppsTier1.

Можно использовать данные из уже загруженной в QV таблицы:

Введение в QlikView. Способы загрузки данных

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

Используется в любом слое разработки.

Binary загрузка:

Введение в QlikView. Способы загрузки данных

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

3
2 комментария

Комментарий недоступен

2

Клик вроде никуда не собираются. Продажи только остановили.
https://www.qlik.com/blog/qlik-stands-with-ukraine