Слияние таблиц для новичка: JOIN

Продолжаю серию статей по работе с таблицами. На прошлой неделе уже писал о том, как работать с CONCATENATE для объединения таблиц по строкам, а в этой статье расскажу, как добавлять столбцы к уже загруженным таблицам данных с помощью JOIN.

Предыстория

Qlikview JOIN

В прошлой статье мы рассматривали пример, в котором компания X объединяла данные по сотрудникам отдела продаж с другим офисом компании в другом регионе. Мы объединяли данные таблицы, используя CONCATENATE, рассмотрев разницу между скрытым и открытым объединением строк.

Новые требования

Qlikview JOIN

Теперь после получения единой таблицы появляются новые требования, а именно объединить данные по управлению персоналом с новой таблицей по сотрудникам так, чтобы были доступны описания функционала работы. Итак, как же это сделать?

Простая загрузка таблиц

Первый способ решения этой задачи – загрузить таблицу как есть. Получится вот такая модель данных.

Qlikview JOIN

Технически такой способ решения не является ошибкой, ну лучше объединить представленные данные в единую таблицу, что позволит нам:

  • Упростить модель данных.
  • Опять же проще поддерживать модель данных.

JOIN

Когда добавляем JOIN до скрипта загрузки LOAD, QlikView не загружает данные в единую таблицу, а объединяет данные с предыдущей таблицей.

Qlikview JOIN

В этом случае QlikView сравнивает все общие поля в двух таблицах и объединяет строки из двух таблиц по совпадающим полям.

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

НА ЗАМЕТКУ! Рекомендую всегда определять имя таблицы, с которой будет вестись работа.

Типы объединений Join

Когда вы посмотрите на наши таблицы, то увидите, что не все ID сотрудников имеют совпадения в таблицах. Таблицы Employees содержат поля сотрудник, Michael Scott, которого нет в таблице данных по управлению персоналом. А данные по управлению персоналом содержат также данные по секретарю, которого нет в другой таблице.

Qlikview JOIN

Когда мы выполняем функцию стандартного объединения, таблицы объединяются так, что связанные записи из двух таблиц отображаются в одной и той же строке. Записи без связи получаются пустыми для остальных столбцов (см. рисунок ниже):

Qlikview JOIN

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

У нас есть следующие варианты объединения данных, или JOIN:

  • INNER: Только записи, которые представлены в двух таблицах входят в объединённую таблицу. В нашем случае это означает, что и первый сотрудник из таблицы 1 с ID 1 (Michael Scott) и ID 10 (секретарь) были бы исключены из итоговой таблицы.
  • OUTER: Все записи из двух таблиц будут включены в итоговую таблицу, не важно имеют они общие данные по строкам или нет. Получается такой же итог как использование обычного объединения.
  • LEFT: Все записи из первой таблицы будут включены в итоговую таблицу и только те записи из второй таблицы, которые имеют одинаковое значение с первой таблицей. В нашем примере это означает, что сотрудник ID 1 (Michael Scott) будет включен в итоговую таблицу и ID 10 (секретарь) исключен, поскольку у этой строки нет связанных данных с первой таблицей.
  • RIGHT: Все записи из второй таблицы будут включены в объединенную таблицу, а также только те строки из первой таблицы, у которых есть одинаковые записи со второй таблицей. В нашем примере это означает, что ID 10 (секретарь) будет включен в итоговую таблицу и ID 1 (Michael Scott) будет исключен.

Поскольку мы хотим иметь полную таблицу сотрудников и добавить связанные значения из данных по УП, используем LEFT JOIN.

Qlikview JOIN

Получим такую таблицу:

Qlikview JOIN

взято с : http://blog.atkcg.ru/

Qlik Sense 3.0: что интересного ждать в июне?

Дорогие друзья, для вас есть прекрасная новость. На международной конференции Qlik, Qonnections 2016 (о ней мы еще напишем), был анонсирован релиз Qlik Sense 3.0 совсем скоро – в июне 2016. В сети уже есть краткое видео будущего релиза и он действительно оставляет яркое впечатление! Участники конференции увидели Qlik Sense 3.0 в работе, а я хочу вам уже сейчас рассказать, что будет всех нас ожидать в середине лета. Итаааак….

Qlik Sense 3.0: Что нового

Ассоциативная модель. Связи между данными можно настраивать в режиме Drag and Drop.

Qlik Sense 3.0

Теперь разработать модель данных стало еще проще. Выстроить последовательность связей между данными можно в режиме перетаскивания объектов/таблиц в рамках модели, в которых автоматически определяется связь между массивом данных. Размер круга при этом показывает объем данных, то есть не только дизайн аналитики, но и разработка становится более визуальной! :)

Визуальный поиск

Qlik Sense 3.0

Поиск данных по ключевым словам. Например, мы хотим узнать, сколько составила чистая прибыль по месяцам, тогда пишем в строке поиска данных «net margin by month», и все данные и визуализации подтягиваются именно по этому запросу. Кроме того, в поиске можно определять тип представленной визуализации. Например, записав запрос в формате sales pie, получим данные по аналитике продаж в круговых диаграммах:

Qlik Sense 3.0

Хаб разработчика

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

Qlik Sense 3.0

Усовершенствованный API

Qlik Sense 3.0

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

Новые источники данных

Благодаря покупке коннекторов QVSource, в Qlik Sense 3.0. расширится количество веб-источников, к которым можно подключаться напрямую, включая данные Twitter, Facebook, Google, а также облачным сервисам, таким как Microsoft Dynamics CRM и SugarCRM.

Qlik Sense 3.0

NPrinting: Pixel-perfect отчеты

Qlik Sense 3.0

Теперь функционал NPrinting будет доступен не только для QlikView, но и для Qlik Sense, включая функциональность Pixel Perfect.

Вот на этом рассказ о Qlik Sense 3.0 завершен. С нетерпением ждем июня, готовимся к новшествам Qlik и смотрим вдохновляющее видео:

Взято с : http://blog.atkcg.ru/

Что такое Hadoop?

hadoop

Hadoop – это проект с открытым исходным кодом, находящийся под управлением Apache Software Foundation (http://hadoop.apache.org/). Hadoop используется для надежных, масштабируемых и распределенных вычислений, но может также применяться и как хранилище файлов общего назначения, способное вместить петабайты данных. Многие компании используют Hadoop в исследовательских и производственных целях.

 

Hadoop состоит из двух ключевых компонентов:

— Распределенная файловая система Hadoop (англ. HDFS), которая отвечает за хранение данных на кластере Hadoop;

— Система MapReduce, предназначенная для вычислений и обработки больших объемов данных на кластере.

 

На основе этих ключевых компонентов создано несколько подпроектов, таких как Pig, Hive, HBase и т.д.

MapReduce

MapReduce – это модель программирования и каркас для написания приложений, предназначенных для высокоскоростной обработки больших объемов данных на больших параллельных кластерах вычислительных узлов:

— обеспечивает автоматическое распараллеливание и распределение задач;

— имеет встроенные механизмы сохранения устойчивости и работоспособности при сбое отдельных эелементов;

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

HDFS

HDFS, или Распределенная файловая система Hadoop – это основная система хранения данных, используемая приложениями Hadoop. HDFS многократно копирует блоки данных и распределяет эти копии по вычислительным узлам кластера, тем самым обеспечивая высокую надежность и скорость вычислений:

— Данные распределяются по нескольким машинам во время загрузки.

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

— Файлы в системе HDFS пишутся однократно и внесение никаких произвольных записей в файлы не допускается.

— Приложения могут считывать и писать файлы Распределенной файловой системы напрямую через программный интерфейс Java.

 

Hadoop и корпоративные системы

Hadoop-Ecosystem-Infographic-21

Системы управления реляционными базами данных (СУРБД, или англ. RDBMS) используются в системах больших компаний по стандартной схеме:

— Интерактивная система СУРБД обрабатывает запросы, поступающие с веб-сайта или других пользовательских приложений.

— Затем данные извлекаются из реляционной базы и загружаются в хранилище данных для дальнейшей обработки и архивации.

— Данные обычно денормализуются в OLAP-куб.

 

К сожалению, современные системы СУРБД не могут вместить все то огромное количество данных, которое создается в больших компаниях, и тогда возникает необходимость идти на компромисс: данные либо только частично копируются в СУРБД, либо удаляются через определенное время. Необходимость таких компромиссных решений отпадает, если в качестве промежуточного слоя между интерактивной базой данных и хранилищем данных используется Hadoop:

— Производительность обработки данных возрастает пропорционально увеличению объема хранилища данных, в то время как в высокопроизводительных серверах рост количества данных и изменение производительности непропорциональны.

— При использовании Hadoop, чтобы повысить производительность обработки, достаточно просто добавить новые узлы в хранилище данных.

— Hadoop может хранить и обрабатывать многие петабайты данных.

 

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

— Для выполнения самой быстрой задачи в Hadoop все же требуется несколько секунд.

— Не допускается внесение никаких изменений в данные, которые хранятся в системе HDFS.

— Hadoop не поддерживает транзакции.

 

Hadoop и СУРБД

Системы управления реляционными базами данных (СУРБД) имеют много достоинств:

— они способны оперировать сложными транзакциями;

— в них могут обрабатываться сотни тысяч запросов в секунду;

— результаты выдаются в реальном времени;

— применяется простой, но эффективный язык запросов.

 

Однако у СУРБД есть и слабые стороны:

— Схема данных определяется до того, как данные импортируются;

— Предельная вместимость СУРБД достигает сотен терабайтов;

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

 

Hadoop и файловые хранилища

Hadoop

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

 

Hive и Pig

http://hive.apache.org/

http://pig.apache.org/

 

MapReduce является очень мощным инструментом обработки данных, однако он может оказаться довольно сложным для создания и поддержания, в то время как во многих компаниях работают бизнес-аналитики, которые хорошо умеют писать запросы на языке SQL, но не умеют писать код на Java. Также, во многих организациях есть программисты, умеющие писать код на скриптовых языках. Hive и Pig – это два проекта, которые разрабатывались независимо друг от друга и которые предназначены для того, чтобы помочь таким аналитикам и программистам эффективно использовать MapReduce для анализа больших массивов данных.

 

Hive – это надстройка над Hadoop для того, чтобы облегчить выполнение таких задач, как суммирование данных, непрограммируемые запросы и анализ больших наборов данных:

 

— Hive может быть использован теми, кто знает язык SQL.

— Hive создает задания MapReduce, которые исполняются на кластере Hadoop.

— Определения таблиц в Hive надстраиваются над данными в HDFS.

 

Pig – это платформа, предназначенная для анализа больших наборов данных и состоящая из языка высокого уровня для написания программ анализа данных и инфраструктуры для запуска этих программ. Язык характеризуется  относительно простым синтаксисом. Написанные  сценарии скрыто преобразуются в задачи MapReduce, которые исполняются на кластере Hadoop.

 

HBase

http://hbase.apache.org/

HBase — это колоночная база данных, расположенная поверх HDFS, которая способна вместить огромные массивы данных (от гигабайтов до петабайтов данных). HBase используется тогда, когда нужен произвольный доступ к данным, хранящимся в HDFS, в реальном времени и с правом записи и чтения.

Модель доступа к данным в HBase имеет следующие ограничения:

— поиск ряда по одному ключу;

— не поддерживаются транзакции;

— доступны только операции по одной строке.

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

Немного поговорим об OLAP технологии для общего понимания ее сути.

 

ENGINE API EXPLORER: Что это и как с ним работать

Qlik Engine API: что это?

Qlik Engine API — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени, который использует JSON. Он организует обмен информацией между Qlik Engine (или движком QIX) и клиентами. Этот API – один из важнейших среди API, которые использует клиент Qlik Sense, но работает совершенно независимо от любой платформы и языка программирования. Единственное условие для работы этого API – поддержка протокола Websocket.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Qlik Sense Developer Help > Qlik Engine API

Где найти

Engine API Explorer – один из инструментов хаба разработчика Qlik Sense.

Открыть его можно несколькими различными способами:

  1. В хабе Qlik Sense войти в меню и открыть «Dev Hub»
  2. Запустить десктопную версию Qlik Sense открытьhttp://localhost:4848/dev-hub/ , а затем открыть «Engine API Explorer»
  3. На сервере Qlik Sense открытьhttp://<server-name>/dev-hub/, и затем открыть «Engine API Explorer»

Шаг 0: Начало работы

Сначала давайте изучим самые важные моменты в работе Engine API Explorer:

Engine API Explorer

0 – Будьте аккуратные, работая с Engine API Explorer, поскольку вы можете изменить работу всех приложений, объектов, листов и объектов. Поэтому прежде – делайте резервные копии данных или работайте с копией приложения.

– По умолчанию Engine API Explorer не подключен ни к движку, ни к приложению, но именно здесь устанавливается соединение.

– Если есть активное соединение, здесь отображаются возможные API для каждого объекта.

C – После выбора метода, вы увидите команды здесь

D – После выполнения команды, вы увидите ответ движка в этой области.

Основы работы

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

Шаг 1. Подключение к движку

Первое подключение к движку:

Engine API Explorer

После подключения вы увидите:

Engine API Explorer

Затем вы увидите, что в логах уже есть одна запись «GetDocList», которая заполняет список приложений «Select an app»:

Engine API Explorer

Если вы откроете GetDocList в логах «Execution logs», вы увидите, что было отправлено и получено:

Engine API Explorer

Шаг 2. Получение списка документов

Итак, для лучшего понимания, давайте обратимся к логам и запросим еще раз список существующих приложений:

  1. Сначала очистим лог:Engine API Explorer
  2. Выберем методGetDocList в списке доступных методов для глобальных объектов:Engine API Explorer
  3. Поле «Request» будет обновлено соответствующим запросом JSON:Engine API Explorer
  4. Нажмем кнопку «Выполнить» (Execute) и посмотрим на результаты (Логи выполнения, «Execution logs»):Engine API Explorer

Шаг 3. Создание приложения

Теперь давайте создадим новое приложение с названием «Test-App»:

a – Сначала выберем метод CreateApp в глобальном объекте. Вы увидите, что поле «Request» обновилось. Параметр qAppName по умолчанию является пустым.

b – Здесь мы определяем имя приложения. В нашем случае – это «Test-App».

c – Выполнение запроса.

Engine API Explorer

Вот так быстро мы создали новое приложение:

Engine API Explorer

Давайте, проверим, так ли это через GetDocList:

Engine API Explorer

Открыв последний GetDocList (3) и прокрутив ленту вниз, мы увидим, что наше новое приложение, действительно, успешно создано:

Engine API Explorer

Шаг 4. Удаление приложения

Теперь давайте сделаем обратную операцию – удалим, только что созданное приложение:

  1. Среди доступных инструментов находимDeleteApp , и наш запрос примет такой вид:Engine API Explorer

Это запрос, который формируется по умолчанию, чтобы удалить «Test-App».

  1. Для удаления документа нам нужно указать qAppId. Если открыть GetDocListв логах выполнения и прокрутить до «Test-App», мы увидим его qDocId:Engine API Explorer

НА ЗАМЕТКУ:
Я работаю с Qlik Sense Desktop, поэтому в качестве Id здесь представлен полный путь к приложению. Используя Qlik Sense Server, вы увидите уникальный номер.

  1. Копируем строку с «C:\Users…» и вставляем вqAppId в запросе с удалением.
  2. Нажимаем «Execute» и удаляем приложение:Engine API Explorer

Взято с: http://blog.atkcg.ru/

В этом разделе расскажу вам о таком компоненте, как Cognos Framework Manager, его окно при открытии можете видеть ниже:

fram1

Этот компонент нужен для создания так называемых метапакетов для создания и разработки отчетов в Cognos Report Studio(инструмент для самой разработки отчетности), а также источников данных откуда мы можем брать нужную нам информацию, преобразовывать и анализировать необходимые нам уровни и детализации тех, или иных направлений, отраслей, действий.

После создания пакета вы видите следующее окно:

fram2

Где можете проводить разные настройки самого пакета, источника данных и всех элементов модели, настроить кэширование данных отчетности(как создать отчет будет описано в другой статье).

То есть это инструмент для создания готовых пакетов со всеми необходимыми элементами, которые можно использовать в Cognos Report Studio, дабы не делать лишних запросов и движений в самом Report Studio, а сразу уже вытаскивать и преобразовывать данные из готового метапакета.

Приветствую!

Сегодня поговорим о таком компоненте, как Cognos TM1 Perfomance Modeler, вот его внешний интерфейс:

perf1

Так для чего он нужен?!

Это еще один компонент, который может создать кубы, измерения, процессы, все те же возможности, что есть и у Cognos Architect, можно сказать это два взаимозаменяемых продуктов.

Но, у Cognos TM1 Perfomance Modeler есть больше возможностей и более приятный графический интерфейс, тут можно создавать  Диаграммы потоков данных:

perf2

Удобные настройки безопасности, настройки приложений, настройки прав доступа.

Здесь так же просто создавать приложения для работы через Cognos Insight или Web Application(Contributor)

perf3

Но мне, все же удобней работать в Cognos Architect, из-за удобности работать с правилами и процессами(но все индивидуально).

Позже мы попробуем поработать, как в Cognos TM1 Architect так и в Cognos TM1 Perfomance Modeler.

Для того, чтобы входить на портал Cognos BI и Cognos TM1 не вводя каждый раз свой логин/пароль необходимо выполнить следующие действия: Open Server Manager in Windows 2008 by right-clicking My Computer>Manage Expand Roles and right-click Web Server (IIS) > Add Role Service. After checking Windows Authentication role, click Install.   Note: For Windows 7, go to Control Panel…

Этот мануал «Cognos без логина и пароля» доступен только для зарегистрированных пользователей.
Log In Register

Сегодня мы поговорим о таком компоненте, как Cognos Insight.

ins1

 

Для чего он нужен?

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

Например существует опубликованное приложение, в котором отображены все кубы модели, посредством прав доступа можно открывать это приложение всем, но каждый будет видеть только те цифры и кубы, на которые даны права.

Хочу заметить, что к одному и тому же кубу может быть создано только 1 приложение.

Осуществляем соединение с Cognos TM1

ins2

И видим уже подготовленные данные:

ins3

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

После проведенной работы можно сохранить данный лист анализа и отправить другому пользователю/руководителю для корректировки, либо принятия тех, или иных решений.

 

 Данная статья написана с целью подробного ознакомления пользователей QlikView с настройкой подключения к базам данных. Детально разобрана настройка драйверов ODBC для баз данных MS SQL и Oracle. Показан пример, как сформировать строку подключения и представлен пример написания SQL запроса к базе данных, который запускается из скрипта QlikView.
Для настройки ODBC-подключения Вам необходимо знать имя сервера или его IP адрес, на котором находится база данных. Плюс логин и пароль для доступа к данным в базе данных.
Настройка подключения QlikView к базе данных — это основа всей работы по разработке аналитического приложения QlikView.

Настройка MS SQL ODBC

Для того, чтобы произвести настройку ODBC, необходимо открыть в QlikView редактор скрипта и в нем выбрать пункт «ODBC Administrator». ODBC сохраняет сведения по соединению с источником данных.
ODBC_Administrator_64_bit

Для создания нового ODBC-соединения, необходимо нажать кнопку «Добавить».
Add_ODBC
Выбираем драйвер MS SQL для сервера баз данных Microsoft.
driver_ODBC
Прописываем наименование подключение и наименование сервера (хост, к которому будет осуществляться подключение).
data_source_ODBC
Указываем каким образом будет производиться проверка подлинности учетной записи.
authenticate_user
Производим дополнительные настройки подключения.
6_other_settings_ODBC
После расстановки дополнительных параметров подключения нажимаем кнопку «Готово».
7_system_settings_ODBC
Производим проверку подключения к источнику данных.
8_all_settings_ODBC_driver
Если Вы все правильно настроили, то должно появиться сообщение «ТЕСТ УСПЕШНО ЗАВЕРШЕН!».
9_testing_ODBC_conn
Все — настройка ODBC для подключения к базе данных MS SQL из QlikView завершена!
10_finish_settings_ODBC_qlikview

Настройка Oracle DB ODBC

Рассмотрим один из способов подключения к базе данных Oracle. Для настройки ODBC нам необходимо скачать Oracle client win64. Найти его можно через google на официальном сайте оракла (для этого необходимо зарегистрироваться на сайте и скачать архив дистрибутива).
1_Oracle_client_win_64
После того, как Вы скачаете архив дистрибутива, необходимо разархивировать дистрибутив и запустить файл setup.exe. В ходе инсталляции можно выбрать способ установки «Administrator».
2_install_ora_client
Далее переходим в меню пуск, ищем Net Manager и запускаем его.
3_net_manager_ora_client
Создаем новый Service:
4_create_new_service
Далее открываем в QlikView редактор скрипта и в нем выбрать пункт «ODBC Administrator». В новом окне нажимаем «Добавить»:
5_settings_ODBC
Выбираем Oracle in OraClient:
6_select_driver
В выпадающем списке выбираем доступное значение:
7_select_TNS
Указываем User ID (схема в базе данных Oracle). Нажимаем Test Connection:
8_user_and_test_conn

9_Oracle_ODBC_Driver_Connect_Test
В случае, если подключение настроено правильно, Вы получите сообщение:
10_connection_successful

Теперь у нас есть два настроенных ODBC-соединения:
11_finished_ODBC_settings

Подключение к MS SQL

Следующим шагом, на пути к получению данных из базы данных MS SQL, является создание строки подключения к базе данных. Нажимаем Connect:
1_connect_to_ms_sql
Производим следующие манипуляции для подключения к базе данных MS SQL из QlikView:
2_connect_to_data_source_ms_sql
Строка подключения готова!
3_odbc_connect_string
Пишем SQL запрос:
4_testing_sql_query_ms_sql
Запускаем скрипт и наблюдаем, как данные загружаются из базы данных MS SQL:
5_executing_script_ms_sql

Подключение к Oracle DB

Аналогичные действия необходимо выполнить для подключения к базе данных Oracle:
1_connect_button_oracle_db
Создаем строку подключения:
2_connect_to_oracle_db_source
Готовая строка подключения:
3_oracle_db_odbc_string
Пишем SQL:
4_sql_example_from_oracle_db
Грузим данные:
5_executing_script_oracle

 Автор статьи: Ivan-Shamaev