ФУНКЦИИ JOIN, CONCATENATE И APPLYMAP

Когда вы начинаете использовать Qlik (это относится к новому проекту), ваша структура данных, вероятно, представляет собой простую схему «снежинка», где данные загружаются в виде таблиц «как есть», и связаны между собой отдельными полями.

Это отлично подходит для проверки данных и для первоначальной разработки пользовательского интерфейса информационной панели, хотя, вы, вероятно, захотите превратить эту структуру в схему «Звезда».

Qlik предлагает несколько способов соединения данных в таблице: Соединения (Join), Конкатенация (Concatenate) и функция ApplyMap – это те методы, о которых я собираюсь рассказать.

Join

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

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

Мы ясно увидим это, посмотрев на результаты левого соединения этих двух таблиц.

Table A

Left Join (Table A)

Результат
  • ID 4 не существует во второй таблице, поэтому поле B является нулевым значением
  • ID 5 не имеет соответствующей записи в первой таблице, поэтому оно не загружается

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

Table A

Left Join (Table A)

Результат

Здесь мы можем увидеть потенциальную проблему. Исходные данные таблицы 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 очень эффективно обрабатывает нулевые значения, и у этого типа структуры нет реальных проблем с производительностью.

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

64 queries in 0,383 seconds