Fix Export to Library. SAS Marketing Automation.

Всем привет!
В этой статье речь пойдёт о некотором «баге» или, лучше сказать, явной недоработке в SAS Marketing Automation. Данная проблема возникает, когда появляется потребность записи в библиотеку базы данных через узел экспорта. К слову, без решения этой недоработки запустить Digital Marketing в принципе невозможно.

Для работы потребуется SAS Management Console. Для того, чтобы создать шаблон экспорта, предварительно необходимо создать бизнес контекст. Переходим в Application Management Инструменты администрирования Бизнес Контексты:
В качестве Information Map для бизнес контекста я выбрал стандартную Marketing Automation Sample, путь к которой приведён ниже:
Для того, чтобы выгружать в какую-либо таблицу нужен LIBREF этой таблицы или, другими словами, название библиотеки, считываемую языком SAS. В свойствах библиотеки Marketing Automation Sample обнаруживаем Libref:

Обычно использование Libref не вызывает каких-либо проблем. Перейдём на главную вкладку в SAS Management Console PlugIns и откроем вкладку Applications Customer Intelligence Шаблоны экспорта:

Попробуем создать новый шаблон экпорта с выгрузкой в библиотеку. В русской версии продукты это называется вывод в таблицу. Очень важно сохранять регистр названия Libref, то есть masamp – это не одно и тоже, что и MASamp:

Но при нажатии на OK вылезает следующее окно:
Для решения этой проблемы приходит на помощь support.sas.com, но, к сожалению, найти данный кейс оказывается не просто. Решение заключается в следующем: в корневой папке, куда установлена система SAS, лежит файл, в котором в определённом месте необходимо прописать LIBREFс полноценным указанием всех параметров библиотеки.
Какой-то прошлый век, причём данная проблема присутствует как для старых версий, так и для версий вплоть до SAS Marketing Automation 6.1.
Таким образом, необходимо обнаружить требуемый файл. Это файл mausrexp.sas, его можно найти поиском по системе, а можно найти в папке: SASHomeSASFoundation9.3masasmacro
Путь может немного отличаться, например, для версий, отличных от 9.3, будут стоять другие значения. А сама папка SASHome находится в том месте, где установлен SAS. В моём случае это C:SASSASHome.
Открываем файл mausrexp.sasи ищем 45 строку:
/* BEGIN INTENDED USER MODIFICATION SECTION */
/* Create Macros defined export libraries here */
/* Example: %let expsas=%str(libname expsas ‘some_path’); */
***** ***** ***** ***** ***** ***** ***** ***** *****
/* END INTENDED USER MODIFICATION SECTION */
В том месте, где находятся ***** и необходимо прописать примерно следующую строку:
%let MASamp= %STR(libname MASampC:SASSASHomeSASFoundation9.3masample‘); 
Далее возвращаемся к созданию шаблона экспорта и нажимаем OK.
Вот и всё!
Удачи в дальнейшей настройке SAS Marketing Automation!

SAS and SAP. Global Forum 2014

Всем привет.

Прямо сейчас идет SAS Global Forum 2014 в Америке. К сожалению, посетить данное мероприятие у меня не получилось. Однако можно посмотреть часть выступлений на сайте конференции
Так причем здесь название «SAS and SAP?»
А причина в том, что сейчас идет повсеместная тендеция ухода в «быструю аналитику», т.е. общет всего и вся со скоростью оперативной памяти. 
Открытие конференции делал основатель SAS —  Джеймс Гуднайт.  В своей краткой презентации он как раз и упомянул что в летом этого года нас ждет интеграция решений SAS Visual Analytics и SAP Hana.
Интересно то, что SAP Hana изначально рассматривалось компанией SAS как конкуренты, хотя у них разное предназначение :). 
Также было заявлено о том что SAS VA теперь дружит с Cloudera и Hortonworks, что также является жизненно важным решением, т.к. стандартный бесплатный hadoop вряд ли устроит больших корпоративных клиентов. 
Также SAS всем предлает уйти в облака (обосновывая это лишь тем, что у вас не будет «гемороя» с установкой и настройкой решений).  Точнее об этом было предложено еще в прошлом году. В этом же маркетинг пошел дальше — предлагаются уже готовые решения под бизнес. Тяжело судить на сколько это решение будет востребованным. Время покажет.
В своей книги я писал про «кадровый голод» специалистов SAS. И видимо эта проблема не только в России, но и в Америке. Теперь существет специальные программы в институтах по подготовке SAS специалистов, как я понял, преимущество состоит в том, что университеты будут получать бесплатно лицензии. 
P.S. В качестве выступающих SAS пригласил паренька (выигравший различные конкурсы на память), который рассказал о технике запоминания чисел, слов, последовательностей. Не думал, что человек может запомнить до 300 цыфр с устной речи (называемые последовательно 1 цыфра в секунду). Человеческий мозг действительно феноминален, жаль мы не умеем использовать его хотябы на 20%.
С уважением, Николай.

EXAM: SAS Advanced Programming for SAS 9

Всем привет!
Прошло немало времени, перед тем как я наконец сдал экзамен SAS Advanced Programming for SAS 9. В прошлой статье я писал про свой опыт сдачи экзаменов, собственно, и в этой статье речь пойдёт опять про личный опыт.

Описание всех экзаменов можно прочитать тут.

Экзамен оказался намного сложнее, чем я думал ранее. Теперь я осознал, почему сложность его стоит на одном ряду с SAS Predictive Modeler. Экзамен состоит из 60 вопросов, на них отводится 120 минут или 2 минуты на вопрос. Стоит это «удовольствие» 180 американских долларов.

После первых 15 вопросов я заметил, что ни один вопрос не встречался мною ранее в «ответниках», что вызвало у меня настороженность, хотя я проштудировал более 200 разных вариантов во время подготовки. Несмотря на то, что я готовился к сдаче ни один месяц, в 60% вопросов у меня были сомнения в правильности моего выбора.
Возможно, всё дело в отсутствии необходимого (или достаточного) опыта, а может и в моей подготовке. Моя подготовка состояла из нескольких частей:
1. Моя работа
2. «Заучивание» экзамена по готовым ответам
3. Изучение материалов сайта support.sas.com и изучение материалов книги SAS Advanced Programming
Давай пройдёмся более подробно по пунктам.
1. В моей работе я сталкиваюсь достаточно часто с вопросами разработки программ с использованием языка программирования SAS. Более того, в основном это SAS SQL, работа с таблицами БД, выгрузка и тд. Эта почти ежедневная практика помогла набрать 90% правильных ответов в области вопросов, связанных с SQL. Наверное мне повезло, так как мои коллеги по работе всегда подсказывали по SQL PLSQL, когда у меня появлялись вопросы.
Конечно, я не стесняюсь использовать SAS MACRO для оптимизации кода, смотреть по интересующим вопросам статьи и литературу. Всё это помогает в подготовке к экзамену =)
Резюмирую: если ты хорошо знаешь SQL (не обязательно SAS SQL) и постоянно им пользуешься, то в области вопросов по SQL можно набрать приличное количество балов.
2. Под словом заучивание я подразумеваю те вопросы, ответы на которые в своей личной практике или книжке найти сложно. То есть, когда вопрос содержит один текст, и ответы состоят из одного текста, причём порой очень похожего, кроме как заучить вариантов нет. К сожалению, в этой секции я набрал около 50% правильных ответов. Более того, лишь где-то 7  вопросов на экзамене были из тех, которые я выучил. Неутешительная статистика.
С другой стороны, вопросы по этим «ответникам» помогли глубже понять язык программирования. То есть, когда я чего-то не понимал в ответе, я гуглил или запускал SAS Base и проверял как работает программа из задачи. Меняя параметры задачи, узнаёшь много нового и, кстати, начинаешь это использовать в ежедневной практике в работе.
Резюмирую: метод «заучивания» в SAS Advanced Programming позволит набрать очень незначительное количество баллов (в отличии от SAS Base Programming). Вопрос как подготовиться к текстовыми вопросам, для меня пока не ясен.
3. Изучение материалов у меня проходило в пассивном режиме. Другими словами, когда я сталкивался с неизвестными задачами, проблемами, функциями, синтаксисом и тд, то я это гуглил, искал на сайте support.sas.com или изучал талмуд SAS Advanced Programming. Несколько раз погуглил один и тот же запрос, а потом и запоминаешь как этот вопрос в программировании SAS работает.
Так или иначе, этот метод подготовки вместе с пунктом 2 позволили набрать более 70% правильных ответов в области MACRO программирования. 
Подвожу итог, как я его вижу после сдачи экзамена.
Экзамен сложный, намного сложнее чем SAS Base. Мне показалось, что он скорее сравним в чём-то с SAS Predictive Modeler: и там и там приходится пользоваться накопленными знаниями для того, чтобы сделать правильный выбор. Выучить заранее не получается, хотя правильнее сказать, что этого не получилось у меня. 
Для успешной подготовки необходим очень важный составляющий фактор: в вашей ежедневной рутине должно присутствовать программирование в SAS, а так же в SQL. Очень желательна практика написания Stored Process, так как этот элемент обычно включает в себя объёмную долю SAS Macro. 
Последняя, и, пожалуй, самая главная составляющая, это личная мотивация — желание узнавать новое, развиваться и делиться накопленными знаниями. 
На этом всё!
Удачи в подготовке к сертификации SAS. 
Я очень надеюсь, что мой опыт окажется полезным тебе в подготовке к экзаменам.
p.s. Ты можешь спросить, а зачем делиться знаниями? Я уверен, что мы все в одной лодке, и действия одного человека всегда отражаются на других, а потом возвращаются в тройном объёме. 

SAS Visual Analytics 6.4 или как узнать о выпуске новой версии продукта.

Всем привет.

12 марта официально вышла новая версия SAS Visual Analytics 6.4. Чем примечательный этот продукт, так это тем что менее чам за 1 год выходит уже 4 версия этого продукта:

начало   2013 — SAS VA 6.1 (на SAS 9.3)
август    2013 — SAS VA 6.2  (на SAS 9.4)
декабрь 2013 — SAS VA 6.3
март      2014 — SAS VA 6.4

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

С другой стороны надо отдать должное SAS, т.к. система новая и они получают много обратной связи 🙂 от пользователей и страются (как мне кажется) учесть их в новой версии. Ну и чтобы не пришлось сильно много ждать — нате пожалуйста вам новая версия, в которой все ваши пожаления учтнены (ну или многие).

Еще хочется сказать, что об выпуске новых версий продуктов SAS вы нигде не узнаете (разве только если вы не являетесь работником компании SAS 🙂 ). Эта информация не афишируется.

Возьмем к примеру кампанию Apple или Samsung, которые еще до выхода своих топовых девайсов анонсируют все преимущества. К сожалению в Software компаниях я этого не зматил.

И о выходе новой версии я узнал только благодаря своему IPad планшету :).
Дело в том, что вы можете установить себе программу SAS Mobile BI и сами попробовать всю красоту dashboards продукта SAS VA. Так вот именно с 11 на 12 марта это приложение обновилось и в нововедениях было написано: «Поддержка новых функций и отчетов SAS Visual Analytics 6.4».

Вот так я узнал об выпуске новой версии :).

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

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

Online Score Olympics Games 2014.

Всем привет.

Ниже отображения online результата олимпийских игр 2014 (точнее речь пойдет о паралимпиаде, т.к. именно она сейчас проходит)

Результат на 12 марта 2014 года утро.

И так поехали.

Как-то я уже писал про то как можно загружать данные из интернета тут.

Также скажу сразу, что код по отрисовке графика я написал не сам, а взял от сюда.

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

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

Сам код программы можно скачать здесь.

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

UPDATE.

Вот прошло всего 3 часа и решил запустить еще раз программу и получил следующий резальтат:

Вот такие изменения всего за 3 часа :).

UPDATE2:

Не мог не запостить еще изменения через еще 3 часа 🙂 (на 17-00)

Вот такие изменения за день :).  Обычная олимпиада «курит в сторонке» по сравнению с мужеством паралимпийцев. 

Настройка работы SAS с БД Oracle

Всем привет!
Данная статья посвящена тому, как правильно надо настраивать систему для работы с БД Oracle в системах Windows. Так или иначе, какая-то часть информации уже и ранее была опубликована на нашем сайте. Тут будет собрана вся необходимая информация в одном месте!

1. На первом этапе, необходимо убедиться, что SAS Access To Oracle есть в лицензии и установлен. Для этого заходим в SAS Base Enterprise guide и вводим следующий код:

proc setinit;
run;
В логе будет отображён список, где и ищем —SAS/ACCESS Interface to Oracle.
2. Далее, устанавливаем правильную версию клиента Oracle, разрядность которой будет соответствовать разрядности установленного SAS. Для этого заходим на сайт ORACLE, где и ищем необходимую версию и разрядность клиента или базы. После чего скачиваем и устанавливаем дистрибутив. Желательно перезагрузить систему.
Замечу, что изначально рекомендуется установить Oracle Client до установки SAS.
3. В файле TNSNAMES.ORA указываем параметры доступа к нашей БД.
Примерно по следующему пути можно найти необходимый файл:
С:APPPRODUCT11.2.0CLIENT_1NETWORKADMIN
В TNS указываются следующие параметры:
NAME =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HOST_NAME)(PORT = PORT))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SID_NAME)
    )
  )
Подчёркнутое прописывать ручками =)
На этом этапе может возникнуть сразу несколько разных нюансов.
4. Клиент SAS неправильно отображает символы из БД. Это может происходить по нескольким причинам:
Меняем параметры системного файла sas9.cfg. Сначала заходим в sas9.cfg, который лежит по адресу ниже:
!ROOTSASSASHomeSASFoundation9.3
!ROOT — это корень где лежит SAS. Это обычно C:Program Files или просто C:. В общем, то место куда устанавливался SAS.
В этом файле прописан путь к другому sas9.cfg файлу, который нас и интересует. В моём случае это:
-config «C:SASSASHomeSASFoundation9.3nlsu8sasv9.cfg»
 Далее переходим к этому файлу. Обязательно делаем копию этого файла, а далее в конце списка добавляем следующие строки или заменяем те, которые уже как-то есть в списке.
-DBCS
-LOCALE ru_RU
-encoding=utf-8 
Перезапускаем SAS Base и смотрим далее. Если картинка изменилась, но всё равно непонятные символы, то переходим к следующему шагу, иначе сразу к шагу 6.
5. Изменение записей в реестре.
Для правильного отображения меняем параметр NLS_LANG.
Переходим в HKEY_LOCAL_MACHINESOFTWAREoracleKEY_OraClient11g_home1
И далее меняем параметр на AMERICAN_AMERICA.AL32UTF8
Теперь отображение значений должно быть в норме.
6. Последний момент связан с созданием таблиц на стороне БД. Проблема возникает когда примерно следующий код создаёт табличку:
LIBNAME TEST ORACLE <options>;
PROC SQL;
     CREATE TABLE TEST.A
              (X CHAR(250));
QUIT:
А далее делаем
PROC CONTENTS DATA=TEST.A; RUN;
 
Причём, даже если «провалиться» на БД и написать код, то всё равно размерность будет в 4 раза больше.
Вот такую скромную размерность создаёт SAS при работе с Oracle.
Если посмотреть эту же табличку через SQL Developer, то увидим:
Name  Null               Type          
—-       —-                —————
X                               VARCHAR2(1002)
Всё это происходит по тому, что SAS при работе с Unicode увеличивает размер в 4 раза, как на уровне создания таблички, так и на уровне возвращения запроса.
Для того, чтобы данную проблему избежать необходимо указывать следующие параметры при указании библиотек:
LIBNAME TEST ORACLE <options> DBSERVER_MAX_BYTES=1 DBCLIENT_MAX_BYTES=1;
Теперь SQL Developer возвращает:
Name  Null               Type          
—-       —-                —————
X                               VARCHAR2(250)
Если запустить в SAS процедуру CONTENTS, то она уже возвращает:

На этом всё! Спасибо за внимание!

SAS and Excel 2010. XLSX. Part 2.

Всем добрый день.

Как-то я уже рассказывал про то как можно загружать инфорацию из excel файлов в статье: «SAS and Excel 2010.XLS«

Сегодня мы с Вами познакомимся еще с одним способом работать с excel файлами и загружать из них информацию с помощью Libname.

Так вот excel файл можно подлкючать просто как внешний источник через libname (на подобие того как мы подключаемся к Oracle, Teradata, DB2 и т.д.)

И так начнем сразу с примера:

Мы видим, что при подключении библиотеки SAS сам понял какой engine нужно использовать. 
Теперь посмотрим что в результате получилось:
Мы видим, что все листы Excel файла стали видны в качестве отдельных таблиц. Единственное на что может броситься в глаза, так это знак $ в конце файла. 
Поэтому с такими таблица придется работать следующим образом:
Полную версию урока смотрите в нижепредставленном ролике: