Когда вы начинаете использовать Qlik (это относится к новому проекту), ваша структура данных, вероятно, представляет собой простую схему «снежинка», где данные загружаются в виде таблиц «как есть», и связаны между собой отдельными полями.
Это отлично подходит для проверки данных и для первоначальной разработки пользовательского интерфейса информационной панели, хотя, вы, вероятно, захотите превратить эту структуру в схему «Звезда».
Qlik предлагает несколько способов соединения данных в таблице: Соединения (Join), Конкатенация (Concatenate) и функция ApplyMap – это те методы, о которых я собираюсь рассказать.
Join
Соединяя данные, вы берете два потока информации и соединяете их в одну строку данных, определенную Ключом, который определяется любым количеством полей с одинаковыми именами из обеих таблиц.
Если мы сосредоточимся на левом соединении (оно самое распространенное), то вторая загруженная таблица соединяется с первой. Любые совпадающие строки (как определено ключом) будут загружены из второй таблицы, а строки, которые не совпадают, не будут загружены.
Мы ясно увидим это, посмотрев на результаты левого соединения этих двух таблиц.
- ID 4 не существует во второй таблице, поэтому поле B является нулевым значением
- ID 5 не имеет соответствующей записи в первой таблице, поэтому оно не загружается
Это простой пример, и отсюда мы можем быстро начать объединять данные. Однако, есть еще кое-что, и это становится понятным не сразу. Если есть дублирование ключей, соединение проходит по-другому.
Здесь мы можем увидеть потенциальную проблему. Исходные данные таблицы A имеют значение FieldA – «20» для ID2. Теперь, поскольку во второй таблице было дублирование ID2, в выходных данных показаны две записи для ID2 и обе со значением FieldA, равным 20. Если бы вы просуммировали это в Qlik, то получили бы 40 – неверно!
Поэтому важно, чтобы вы понимали данные, которые вы связываете, и обеспечивали целостность конечного результата.
В Qlik есть четыре основных типа соединения:
- Левое соединение (Left Join): все идентификаторы должны присутствовать в первой таблице.
- Правое соединения (Right Join): все идентификаторы должны присутствовать во второй таблице.
- Внутреннее соединение (Inner Join): связывает те данные, у которых идентификатор есть в обеих таблицах.
- Внешнее соединение (Outer Join): хранит те данные из обеих таблиц, где их можно связать (так же, как соединение).
ApplyMap
Функция ApplyMap имеет явные преимущества, хотя при чрезмерном использовании может вызвать путаницу в скрипте информационной панели из-за того, что она ведет себя почти как подпрограмма (поэтому используйте ее осторожно).
- Скорость (по сравнению с левым соединением)
- Отсутствие обработки
- Целостность данных
Ее часто используют в примерах Qlik, чтобы привести в порядок данные, например, различные варианты написания одного и того же слова. Кроме того, функция ApplyMap может использоваться для присоединения к одному полю.
Если мы возьмем первый пример Левого соединения и используем вместо него функцию Applymap, мы можем обработать нулевое значение, оставленное в выходной таблице.
Для большого набора данных с помощью функции Applymap также увеличивается скорость, и теперь у нас есть заполненное нулевое значение, эти записи можно выбрать в пользовательском интерфейсе Qlik.
Если бы у нас были дублированные ключевые поля (ID) в Таблице A, то выходные записи не были бы дублированы, хотя мы бы отображали только первое найденное значение, так что еще раз убедитесь, что вы понимаете структуру своих данных и предпринимаете шаги для их упорядочивания. Также вы можете связать несколько полей, создав составной ключ (объединяя поля вместе).
Concatenate
Join и ApplyMap связывают данные в соответствующих строках (как определено ключом). Конкатенация складывает таблицы друг над другом разделяя поля, которые названы единообразно
Qlik На этом изображении ячейки черного цвета обозначают нулевые значения, и вас может смутить количество пустых полей, которые могут оказаться в вашей финальной таблице. Не волнуйтесь, Qlik очень эффективно обрабатывает нулевые значения, и у этого типа структуры нет реальных проблем с производительностью.
- Учебный центр по технологиям анализа данных и BI: расписание/запись на учебные курсы, тестирование разработчиков — https://education.biconsult.ru/
- Присоединяйтесь к QUBIC – сообщество профессионалов в области BI! Наши страницы в соц.сетях – расписание учебных курсов, бесплатные учебные материалы, анонсы мероприятий: https://vk.com/club165575964 и https://www.facebook.com/qubicspb
- Неофициальный форум разработчиков QlikView & Qlik Sense Russian forum
- Канал на Youtube – много обучающих видео и записи вебинаров
- Готовые решения “Конструктор финансовой отчетности” и “Анализ продаж”