SAS Webcast в сентябре 2014 года

23 сентября прошёл очередной вебинар SAS, где обсуждались ближайшие изменения и нововведения в продукции компании SAS.  
Если вы являетесь партнёром компании SAS, то часовой вебинар можно просмотреть в оригинале по ссылке. Сентябрьский стрим был запущен в рамках «новой» для SAS партнёрской программы Partner Portal, о которой будет немного ниже.

 

Следующее аналогичное мероприятие пройдёт в январе 2015 года. Следите за новостями.
Я опишу основные позиции, которые были озвучены.
В вебинаре участвовало 3 человека:
Russ Cobb,Vice President of Alliances and Product Marketing
 Armistead Sapp, Executive Vice President and Chief Technology Officer
  Randy Guard, Vice President of Product Management
 Обсуждалось несколько тем:
1.       Изменения и улучшения политики парнёрства с SAS

Из всего списка я хочу выделить 2 момента:
a.       Появление курсов бесплатного обучения
b.      Появление SAS Partner Portal, пока в рамках Beta Trial.
Данный портал позволит не только получить от SAS индивидуальный подход по получению необходимой информации, но так же какого рода информация будет представлена: техническая поддержка, программы технического обучения или обучения по продажам и тд.
Более того, появиться рейтинг партнёрского сообщества по предоставляемым сервисам и появиться возможность самому выставлять оценку, появиться возможность указывать на моменты, которые стоит изменить. В общем, всё то, что обычно уже есть в аналогичных сообществах.
2.       Улучшения с последнего партнерского саммита в Мае этого года
На этом слайде компания SAS показывает в каких направлениях улучшилась и продолжает улучаться поддержка партнёров.
3.       Изменения в архитектуре ПО, включая SAS 9.4 Maintenance Release2
Далее, по пунктам из слайда.
В области SAS on HADOOP:
На мой взгляд, в работе с SAS on HADOOP самое важное то, что теперь можно использовать навыки SAS программирования для работы c HADOOP. Об этом ранее уже писал Николай.
В области High Performance Analytics произошло несколько улучшений в следующих областях:
·         масштабируемость данных (улучшенный DrillDown),
·         скорость принятия решений,
·         уменьшение стоимости лицензирования (за счёт opensource),
·         жизненный цикл (lifecycle), слайд ниже относится к этому вопросу
Улучшение в области визуализации данных:
·         Как для IT, так и для бизнес пользователей
·         Аналитики (Visual Analytics, Visual Statistics и тд)
·         Отчётность для мобильных решений и MS Office
·         SAS Studio(веб клиент для программистов SAS, о котором ранее упоминал Николай)
Улучшения в управлении данными:
Под Batch and Real Time понимается появления Event Streaming processing. На мой взгляд, данное программное обеспечение сегодня в тренде и востребовано. Тем не менее, аналоги есть у всех ведущих вендоров (например, CEP у IBM).
Для Data Quality и Integration были разработаны новые алгоритмы обработки данных. 
Чуть ниже будет слайд дорожной карты, который немного даст понимания в области управления данными.
Блок Customer Intelligence у SAS, на мой взгляд, и так занимает лидирующую позицию среди вендоров, но компания не останавливается и продолжает развиваться. Ниже на слайде 3 квадранта Гартнера, которые описывают понимание, как клиенты могут пользоваться управлениями маркетинговыми кампаниями и возможными маркетинговыми операциями.
На следующем слайде основные направления развития CI:
В области Fraud and Security наблюдается самый большой рост среди остальных продуктов компании SAS. Слайд ниже описывает структуру решения:
Forrester высоко оценил это направление в прошлом году:
4.       Обзор основных элементов дорожной карты
Ожидаемый нами слайд дорожной карты на ближайшие кварталы:
В самом вебинаре вы найдёте много подробностей, не изложенных в этой статье. На мой взгляд, его стоит посмотреть лично, хотя бы для практики английского языка =)
На этом всё!

Работа с командной строкой CMD PROMPT через SAS


Всем привет!
Данная небольшая статья о работе с командной строкой (COMMAND PROMPT) в SAS и запуском внешних программ.


Работа с prompt осуществленная несколькими способами. В качестве примера используется команда копированияпереименование файла:
1.       Через синтаксис X:
x ‘copy input.txt input_x.txt’;

2.       Через макро вызов:
%sysexec(copy input.txt input_sysexec.txt);

3.       Через синтаксис в DATA STEP:
data _null_;
                call system(‘copy input.txt input_system.txt’);
run;
Также есть возможность синтаксиса через вызов SYSTASK, но я никогда им не пользовался. На мой взгляд, этот способ является расширенным, по сравнению с первыми 3. Возможно, в будущих статьях будет затронут этот метод.

В SAS путь по умолчанию SASconfigLev1SASApp для среды Windows. Для того чтобы изменить этот путь можно выполнить команду CD. Правда в случае с %sysexec команда отработана не будет. Пример синтаксиса:

data _null_;
                call system(‘cd c:’);
run;

или

x ‘cd c:’;

Запуск команд может быть двух типов: синхронный и асинхронный.
  • В первом случае запущенная команда должна быть завершена до начала следующей задачи. Синтаксис: options XSYNC
  • Во втором случае команда выполняется независимо от других задач, которые в настоящее время работают. Синтаксис: options NOXSYNC. Данная опция может быть полезна, если требуется запустить какой-то сторонний процесс и продолжить работу. Например, запустить Microsoft Excel.
Существует опция, которая также заставляет пользователя напечатать EXIT, чтобы вернуться к своей текущей сессии SAS в случае запуска команды. Синтаксис: options XWAIT / NOXWAIT.

В случае если возникла ошибка с запуском CMD команд в SAS Enterprise Guide, то вам сюда.

На этом всё и до скорых встреч!

Отображение области на Google картах.

Всем привет.

Сегодня рассмотрим пример, как можно отображать Ваши данные на областях, нанесенных на Google maps.

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

Много писать особо не хочется, поэтому перейдем сразу к примеру:

Выглядит конечный результат как-то так:

Также рекомендую кликнуть на ссылку, которая отобразит полностью результат. Можно воспользоваться всеми функциями google maps, такими как zoom, спутник.

В данном примере можно кликать на области и видеть такие данные, как площадь района, популяция (взята из wiki)

Сам же код программы достаточно прост и не замысловат. Его можно посмотреть тут, запустить у себя и получить такой же результат :).

P.S. Источник данного урока можно найти здесь.

С уважением,
Тимаков Николай.

Возможности автоматизированной работы с Google Analytics

Данная статья прольёт свет в вопросе возможности автоматизированной интеграции SAS с системой Google Analytics.

Что такое Google Analytics? Для меня это в первую очередь система сбора статистики по Web-сайту, приложениям AppStore и GooglePlay. Я подозреваю, что многие из вас знакомы с данной системой, и особо останавливаться на том не буду. Данная система – лишь одна из немногих, которая сегодня предоставляет сервис Google. По этой причине, чтобы пользоваться этими благами требуется создать себе или одолжить аккаунт в Google.
В своё время, поискав возможные пути решения задачи по автоматизации сбора статистики из Google Analytics, решил сначала пойти по наилегчайшему пути, как мне тогда казалось. Мне попалась на глаза Web страница, которая называется When Google Analytics Meets SAS.
Интересная статья была написана в 2011 году по поводу того, как можно работать с Google Analytics через SAS. Правда стоит отметить, что Google не стоит на месте, и по этой причине статья достаточно сильно устарела. Единственное, что могу сказать, практика интеграции (которые описаны в статье) является отличным опытом, которым можно воспользоваться и в других случаях.
Пройдусь по методам, описанным в статье:
1.       Метод ClientLogin+ HTTP Protocol
Данный подход подразумевается использовать программирование в SASвместе с использованием сторонней внешней программой SSL соединения CURL.
Удобство данного метода манит тем, что код уже написан и, вроде как, требуется лишь установить и правильно настроить CURL.
Действительно, данный метод позволяет пройти первичную авторизацию Google через ClientLogin. И это, пожалуй, всё, что может предложить данный метод, так как с полученной авторизацией выполнить какой-либо запрос в другой Google API более не возможно.
Всё дело в том, Google с 2007 года, а именно тогда была написана статья по использованию данного метода, выпустила ряд новых API, а старые либо отменила, либо скоро отменит.
2.       Метод с использованием Web портала от Google.
Данный метод действительно самый простой, так как Google Analytics API позволяет выгружать любые данные в файл. С другой стороны это и самый не надёжный способ с точки зрения автоматизации. Другими словами, нужен человек, который на регулярной основе будет скачивать эти отчёты, обрабатывать и создавать на их основе свои. Для автоматизации этот метод не подходит.
3.       Метод с использованием Google Oauth авторизацией через Python
В этом пункте вместо языка Python мог оказаться любой другой язык программирования на выбор: Java, .NET, Ruby, PHP, Javascript. Все эти языки официально поддерживаются и подробно описаны на сайте для Google разработки.
Наверно можно написать Java код в SAS PROC GROOVY, но, к моему сожалению, я не очень силён в Java. Как мне показалось, мне проще разобраться в языке Python и использовать его возможности, нежели возиться с Java или любыми другими языками.
Метод, который был предложен в статье, немного устарел, но всё ещё может быть полностью использован в качестве работы с Google Analytics. Более того, если будет понятно как использовать Oauth, то можно без особых проблем использовать и более новый способ. В моём случае был использован самый последний — Oauth2.
Далее, опишу подробней что необходимо, для того чтобы была возможна интеграция через Python. Я полагаю, что эти настройки универсальны и для других языков.
1. Для формирования статистики Google Analytics для Web сервера, приложения AppStoreили Google Play предварительно необходимо получить уникальные идентификаторы с сайта разработки:
·         CLIENT_ID
·         CLIENT_SECRET
·         REDIRECT_URIS.
2. Для успешного соединения с сервером требуется создать файл client_secrets.json со следующей структурой:
{
  «installed»: {
    «client_id»:»XXX.apps.googleusercontent.com»,
    «client_secret»: «XXX»,
    «redirect_uris»: [«XXX»],
    «auth_uri»: «https://accounts.google.com/o/oauth2/auth»,
    «token_uri»: «https://accounts.google.com/o/oauth2/token»
  }
}
3. Установка клиентов:

3.1. Python 2.7

Необходимо скачать под соответствующую операционную систему установочный файл:
После установки необходимо указать в системной переменной PATH путь к python.exe. Например, C:PYTHON27.

3.2. Google APP Engine

Необходимо скачать дистрибутив для PYTHON:
3.3. Библиотеки Google API для Python
Данные библиотеки можно как скачать напрямую по ссылке, так и установить, используя утилиту easy_install.
Инструкция к установке: https://pypi.python.org/pypi/setuptools
Далее в командной строке или через интерфейс Python необходимо запустить следующую строку:
easy_install -upgrade google-api-python-client
Подробное руководство по разработке можно найти на сайте:

Не стоит пугаться изучать другие языки программирования. Это полезно как для головы, так и для будущих карьерных возможностей. К тому же я уверен, что в случае с Google Analytics  достаточно внимательно изучить предоставленные примеры от Google, чтобы можно было по образу и подобию написать свой код, который будет выполнять поставленные задачи.
Далее, когда вы получите файл со статистикой из Google Analytics, я надеюсь, что проблем с обработкой этого файла не возникнет.
Появились вопросы? Задавайте. Буду рад на них ответить!

SAS Information Maps. Базовая работа с информационной картой. Часть 2.

Продолжение первой части статьи по работе с информационными картами.

Основной выбор Level для числовых значений будет INTERVAL

Рассмотрим данные и их типы для таблицы CUSTOMER:
Cid – сущность таблицы. Идентификатор потребителя. Значения в таблице уникальны, и по этой причине использование Classification будет Category. Для обозначения сущности необходимо указать в значениях:
  • ·         level= ID,
  • ·         UseInSubjectId= Subject_Id_C (значение, которое будет использовано выше по иерархии  для обозначения сущности таблицы).
Ageвозраст. Level может быть Interval или Ordinal.
  • ·         Level = Interval
  • ·         Classification = Category
Gender – гендерная принадлежность (М Ж).
  • ·         Level = Nominal
  • ·         Classification = Category
State – штат проживания.
  • ·         Level = Nominal
  • ·         Classification = Category
Оставшиеся 3 элемента относятся ко второй таблице, речь о которой пойдёт чуть ниже. Тем не менее, этим элементам так же необходимо выставить значения уровня и классификации:
Hhid – идентификатор для таблицы HH.
  • ·         Level = Id
  • ·         Classification = Category
Hohageвозраст главы домохозяйства.
  • ·         Level = Interval
  • ·         Classification = Category
Hohgender – пол главы домохозяйства.
  • ·         Level = Nominal
  • ·         Classification = Category
Таким образом, получается следующая картинка:
 
С этого момента этой информационной картой можно работать в таких приложениях как SAS Customer Intelligence Studio, SAS Web Report Studio и т.д.

Далее, добавим вторую таблицу HH в Selected Resources:
Перейдём в закладку Relationships. Соединим hhid между двумя таблицами. Логика связи между таблицами определяется самими данными, в данном примере одному значению из таблицы Customer соответствует несколько значений из таблицы HH:
 
Добавим дополнительную таблицу в Information Map Contents:
 
На этом этапе видно, что в таблице HH отсутствует ключ Cid, по которому строится таблица CUSTOMER. По этой причине, для таблицы HH требуется определить отдельную сущность, по которой будет производиться выборки или отчёты. Определим сущность как Subject_ID_H.
На самом верхнем уровне заходим в настройки Sample Custom и добавляем параметры:
Subject_ID_H – значение сущности, которое будет отображаться в выпадающем списке при работе в Customer Intelligence Studio.  Используем: Household
Subject_Code_Subject_ID_H– уникальное двухзначное числовое значение, которое требуется для некоторых внутренних параметров в системе. Используем: 02
MetadataTable_Prefix_Subject_ID_C – значение, которое будет автоматически присвоено в начало названия у таблиц, содержащих метаданные. Используем: HH
К предыдущим параметрам также добавляются  параметры взаимодействия между таблицами:
From_Subject_ID_С_To_Subject_ID_H – связь между сущностями таблицы: Используем: ManyToOne
From_Subject_ID_H_To_Subject_ID_Cсвязь между сущностями таблицы: Используем: OneToMany
Таким образом стал выглядеть список параметров в Custom Properties:
На уровне Каталогов выставляем значение:
Subject_ID_H – Subject_ID_H
На уровне элементов выставляем по аналогии с таблицей CUSTOMER. Используем в качестве сущности Hhid.
Hhid :

  • ·         level= ID,
  • ·         UseInSubjectId= Subject_Id_H.
Customers in household кто живёт в домохозяйств.

  • ·         Level = Nominal
  • ·         Classification = Category
Hhincome– доход домохозяйства.

  • ·         Level = Interval
  • ·         Classification = Category
Opt out mail – отказ от получения почты (ДаНет).

  • ·         Level = Binary
  • ·         Classification = Category
Opt out phone – отказ от получения звонков по телефону (ДаНет)..

  • ·         Level = Binary
  • ·         Classification = Category
State – штат проживания.

  • ·         Level = Nominal
  • ·         Classification = Category
В случае использования метаданных в Customer Intelligence Studio, необходимо предварительно сгенерировать метаданные в плагине Customer Intelligence s SAS Management Console:
Информационная карта полностью готова к использованию в приложениях SAS
До скорых встреч!

SAS Information Maps. Базовая работа с информационной картой. Часть 1.

Всем привет!
Данная статья целиком и полностью посвящена работе в Information Map Studio 4.31 и всему, что с этим связано.

Работа с Information Maps начинается с работы в Management Console, а именно с управления библиотек:
Библиотеки, которые были созданы в Management Console, далее будут отображаться в Information Map Studio. С ними мы и будем работать:
 
Далее, для работы потребуется включить Custom Properties значений, а также их шаблоны. Это обязательный элемент при проектировании информационной карты. 
Заходим в Tools-> Options -> Advanced: