Sas sql что это
SAS — SQL
SAS предлагает обширную поддержку большинству популярных реляционных баз данных, используя SQL-запросы внутри программ SAS. Большая часть синтаксиса ANSI SQL поддерживается. Процедура PROC SQL используется для обработки операторов SQL. Эта процедура может не только вернуть результат запроса SQL, но и создать таблицы и переменные SAS. Пример всех этих сценариев описан ниже.
Синтаксис
Основной синтаксис для использования PROC SQL в SAS —
Ниже приведено описание используемых параметров:
SQL-запрос записывается под оператором PROC SQL, за которым следует оператор QUIT.
SQL-запрос записывается под оператором PROC SQL, за которым следует оператор QUIT.
Ниже мы увидим, как эту процедуру SAS можно использовать для операций CRUD (создание, чтение, обновление и удаление) в SQL.
Операция создания SQL
Используя SQL, мы можем создать новый набор данных из необработанных данных. В приведенном ниже примере сначала мы объявляем набор данных с именем TEMP, содержащий необработанные данные. Затем мы пишем SQL-запрос для создания таблицы из переменных этого набора данных.
Когда приведенный выше код выполняется, мы получаем следующий результат —
Операция чтения SQL
Операция чтения в SQL включает в себя написание запросов SQL SELECT для чтения данных из таблиц. В приведенной ниже программе запрашивается набор данных SAS с именем CARS, доступный в библиотеке SASHELP. Запрос выбирает некоторые из столбцов набора данных.
Когда приведенный выше код выполняется, мы получаем следующий результат —
SQL SELECT с предложением WHERE
Когда приведенный выше код выполняется, мы получаем следующий результат —
Операция SQL UPDATE
Мы можем обновить таблицу SAS с помощью оператора SQL Update. Ниже мы сначала создаем новую таблицу с именем EMPLOYEES2, а затем обновляем ее с помощью оператора SQL UPDATE.
Когда приведенный выше код выполняется, мы получаем следующий результат —
Операция SQL DELETE
Операция удаления в SQL включает удаление определенных значений из таблицы с помощью оператора SQL DELETE. Мы продолжаем использовать данные из приведенного выше примера и удаляем строки из таблицы, в которой зарплата сотрудников превышает 900.
Когда приведенный выше код выполняется, мы получаем следующий результат —
Основы программирования на SAS Base. Урок 4. Создание наборов данных SAS
В предыдущей статье мы изучили, как читать внешние необработанные данные. А сегодня познакомимся с оператором SET, который считывает стандартные наборы данных SAS (SAS Data Set), научимся создавать срезы данных, настраивать постоянные атрибуты, а также изучим несколько полезных функций SAS. Я снова постараюсь изложить материал максимально простым языком, используя как можно больше примеров.
Допустим данные хранятся в формате EXCEL в директории C:\workshop\habrahabr. Импортируем электронную таблицу, создадим из нее срез, создадим новые вычисляемые столбцы, используя функции SAS, а затем разобьем данный набор данных на два.
Импорт электронной таблицы и задание фильтра
Файл excel хранится в указанной выше директории и имеет следующий вид:
Применим процедуру PROC IMPORT для преобразование электронной таблицы в набор данных SAS:
Опция validvarname=V7 задает «правильные» с точки зрения SAS имена полей: все недопустимые символы заменяет знаками нижнего подчеркивания. О правилах именования переменных можно прочитать в Уроке 1.
Зададим фильтр сразу при чтении внешнего файла, например, выберем только те наблюдения, в которых дата окончания работ не пропущена. Обратите внимание, на синтаксис параметра where.
Рассмотрим детально операторы шага PROC IMPORT:
Datafile – определяет полный путь и имя внешнего файла
Dbms — определяет тип данных для импорта.
Out – идентифицирует выходной набор данных SAS с одно- или двухуровневым именем SAS (имя библиотеки и имя набора данных).
Replace – перезаписывает существующий набор данных SAS.
Getnames – Указывает, генерирует ли PROC IMPORT имена переменных SAS из значений данных в первой строке во входном внешнем файле.
Запустим шаг PROC IMPORT и изучим LOG:
Распечатаем полученный набор данных SAS:
Вывод процедуры PROC PRINT показан ниже:
Также в SAS UE вы можете воспользоваться вкладкой «Результаты» и ознакомиться с импортированным набором данных SAS.
Чтение наборов данных SAS
Чтение набора данных SAS реализуется на шаге DATA с помощью оператора SET:
Рассмотрим общий синтаксис оператора SET:
Если вы не указываете в операторе SET набор данных, то он читает наблюдения из последнего созданного набора данных SAS.
В операторе SET можно указать несколько наборов данных, в этом случае SAS Data Sets допишутся один под другой (аналог UNION в SQL).
Также на шаге DATA может быть два оператора SET, в этом случае таблицы объединяются по общему столбцу. Подробнее о двух операторах SET можно прочитать, например, в этой статье.
Простейший код, создающий копию набора данных SAS, выглядит следующим образом:
Настройка дескриптора набора данных SAS
Изучить дескриптор набора данных SAS можно с помощью процедуры PROC CONTENTS (см. Урок 2). В данном уроке, мы распечатаем компоненту дескриптора с помощью процедуры PROC DATASETS:
Зададим постоянный формат для переменных Travel_Expenses и Budget:
Проверим атрибуты наборы данных SAS:
Создание вычисляемых столбцов
Кроме того, если нет подходящей функции для выполнения той или иной задачи, можно воспользоваться процедурой PROC FCMP и создать свою функцию.
В рамках данного урока мы изучим три функции YRDIF, SUM и CATS.
Для подсчета разницы в датах в годах мы будем использовать функцию YRDIF.
Напомню, что дата в формате SAS представляет собой количество дней, начиная с 01 января 1960 года (см. Урок 1). На представленных данных, нам необходимо вычислить время выполнения работ:
Обратите внимание, что с помощью формата 3.1 для переменной Lead_Time, мы округлили вычисленные значения в отчете (!) до 1 знака после запятой. Оператор формат не меняет значения в наборе данных SAS!
Далее вычислим стоимость работ без командировочных расходов:
В рамках нашей задачи стоимость работ без учета командировочных расходов мы вычислили без использования функции. В нашей таблице нет пропущенных значений, если бы одна из переменных (Budget или Travel_Expenses) имела бы пропущенное значение, результатом был «миссинг».
Создадим тестовый набор данных:
Вычислим разницу переменных Budget Travel_Expenses
Результат выполнения данного шага:
Для того, чтобы получить корректный результат, можно использовать функцию SUM.
Данная функция относится к категории функций описательной статистики. Функции описательной статистики игнорируют пропущенные значения.
Написание кода через SUM:
В этом случае результат выполнения шага выглядит следующим образом:
Третий вычисляемый столбец – это адрес электронной почты менеджера. Его можно «собрать» из столбцов Manager_FirstName, Manager_LastName и значения habr.com
Для объединения текстовых значений в одну строку можно использовать функцию CATS.
Изучим дескриптор созданного набора данных:
Обратите внимание на длину переменной Email.Она составляет 200 байт, это длина, возвращаемая по умолчанию функцией CATS. Если изучить атрибуты переменных Manager_FirstName и Manager_LastName, то мы можем убедиться, что на переменную Email достаточно 8+6+длина строки ‘@habr.com’, то есть еще 9 байт, итого 23. Почему стоит на это обратить внимание? Все недостающие символы добиваются пробелами, что сказывается на размере набора данных и на больших объемах данных будет сказываться на производительности.
Для того, чтобы задать длину переменной Email явно, необходимо использовать оператор LENGTH:
Создадим детализированный столбец на основании переменной Lead_Time, учитывая следующие условия:
Добавим условие, которое выбирает только те наблюдения, в которых значение переменной Detail не равно ‘above 5 years’. При использовании where в качестве фильтра будет возникать синтаксическая ошибка:
Оператор where не используется для вычисляемых столбцов. Для отбора нужных нам переменных необходим выборочный оператор IF. Он отменяет вывод наблюдения в создаваемый набор данных:
Обратите также внимание, что выборочный оператор IF требует арифметический оператор. Мы не можем написать, например, так:
В Log выведется ошибка:
Настраиваем набор данных SAS.
В новом наборе данных SAS не должны присутствовать переменные Manager_FirstName и Manager_LastName. Данное требование реализуется с помощью параметра DROP, так же можно использовать оператор DROP.
Разбиваем созданный набор данных SAS на два по заданному условию
На одном шаге DATA можно создать несколько наборов данных SAS. Создадим для каждой страны отдельный набор данных.
Чтобы проверить, какие значения есть в столбце Country, можно, например, использовать процедуру PROC FREQ.
Данный шаг считает, сколько раз то или иное значение из переменной Country встречается в указанном в параметре data= наборе данных SAS.
Результат выполнения данного шага будет следующим:
Итак, создадим два набора данных на одном шаге DATA, используя оператор OUTPUT и условную обработку:
Запустим код и посмотрим LOG:
Это кратко о чтении наборов данных SAS и их настройке. В следующей статье мы познакомимся с Вами с объединением наборов данных с помощью операторов MERGE и SET.
А в качестве P.S. напомню структуру наших уроков по SAS BASE:
Статьи, которые уже опубликованы:
Буду рада обратной связи в комментариях! Какие еще темы Вы хотели бы увидеть в статьях?
Основы программирования на SAS Base. Урок 1
Привет! Я Анна Добрыченко, преподаватель учебного центра SAS в России: провожу тренинги по программированию на SAS Base, использованию SAS Enterprise Guide и SAS Visual Analytics, участвую в подготовке стажеров. Вся техническая документация и статьи продуктов и решений SAS изложены на английском языке, а локализованного материала в Рунете недостаточно.
Поэтому в нашем блоге на Хабрахабре я расскажу об основах программирования на SAS Base в цикле статей.
Язык SAS Base представляет собой основу большинства этих продуктов и решений SAS, именно ему и будут посвящены статьи. В них я познакомлю с терминологией, типами данных, с которыми работает SAS Base, со структурой кода, написанного на SAS Base, и покажу основные приемы, которые используются при написании программ SAS.
Вводная
Есть несколько вариантов изучить основы программирования на SAS Base.
Добываем инструменты
Научиться программировать на SAS Base можно на бесплатном интерфейсе под названием SAS University Edition или сокращенно SAS UE.
SAS UE — это мощный инструмент, который предоставляется SAS Institute. Пользовательский интерфейс для SAS UE (известный как SAS Studio) основан на web-браузере – это web-клиент. Скачать его можно на сайте SAS абсолютно бесплатно. На ПК SAS UE запускается под виртуальной машиной и требует установки программного обеспечения виртуализации. Для Windows подойдет Oracle VM VirtualBox и Vmware Player. Всю информацию по установке можно изучить вот в этом документе.
При запуске программы или задачи SAS Studio подключается к серверу SAS для обработки кода. Сервер SAS может быть размещен в облачной среде, локальной среде или же на локальном компьютере. После обработки кода результаты возвращаются в SAS Studio в вашем браузере.
SAS Studio поддерживает несколько веб-браузеров: Microsoft Internet Explorer, Apple Safari, Mozilla Firefox, and Google Chrome.
Разбираемся в интерфейсе
Немного о том, как выглядит интерфейс SAS UE.
Слева находится панель навигации, справа – рабочая область. Три основные вкладки рабочей области – «Код», «Журнал», «Результаты».
Справка по синтаксису появляется, как только вы уменьшаете список релевантных ключевых слов. Справка по синтаксису также появляется, если щелкнуть правой кнопкой мыши на ключевое слово в программе и выбрать Syntax Help (Справка по синтаксису).
Можно перейти на страницу документации по той или иной процедуре, кликнув на ссылку «Документация по продукту».
На вкладке «Выходные данные» вы можете увидеть созданные таблицы.
На вкладке «Результаты» вы можете просматривать вывод процедур, создающих отчеты.
Если какая-то часть программы используется часто, ее можно добавить во «Фрагменты кода».
После запуска и выполнения любой, даже самой простой программы рекомендую открывать и просматривать Log. Log является инструментом диагностирования и отладки потенциальных проблем, связанных с вашей программой. Журнал выводит текст запущенной программы, также в нем существует три вида сообщений: примечания, предупреждения и ошибки. Даже если ошибок сразу не видно, рекомендуется вдумчиво изучить Log.
Вы можете открыть справку (SAS Help) и документацию прямо из главной панели инструментов. SAS Studio Help (Справка SAS Studio) для перехода на страницу документации по SAS Studio. Эта веб-страница содержит справку по интерфейсу SAS Studio.
Если вы только начали изучать продукты SAS, то наверняка незнакомы с некоторыми особенностями терминологии, используемой в продуктах компании.
Sas7bdat и данные
С точки зрения традиционной терминологии SAS наборы данных состоят из переменных (variables) и наблюдений (observations). Проведя аналогию с терминологией реляционных баз данных, переменные являются столбцами, а наблюдения – строками.
Рассмотрим на примере описанное выше.
Представленная программа создает таблицу people (сам синтаксис мы рассмотрим позже):
Исходные данные могут иметь различный вид, SAS упростил эту задачу. В SAS существует всего два типа данных числовой (numeric) и символьный (character). В наборе данных people переменные First_Name, Last_Name, Phone_Number имеют символьный тип, а переменная Id – числовой. Стоит отметить, что даты в SAS — это тоже числа.
Данная программа создает набор данных time, содержащий текущие дату, время и дату и время (datetime) в формате SAS:
Возможный вид набора данных представлен ниже:
Все три значения – это даты в формате SAS. Итак, дата в формате SAS – это количество дней, начиная с 01 января 1960 до текущей даты, время в формате SAS – это количество секунд, начиная с полуночи текущей даты, дата и время – это количество секунд, начиная с полуночи 1960 года. Именно в таком виде хранятся даты в формате SAS в наборах данных.
Иногда данные могут быть неполными, как в наборе данных people: в нем отсутствуют некоторые значения. В SAS существует понятие missing – пропущенное значение. По факту, пропущенное значение – это тип значения для переменной, которая не содержит данных для конкретной строки или столбца. По умолчанию SAS записывает недостающее числовое значение в виде точки и отсутствующее значение текстовой переменной в качестве пробела. При сравнении «миссинг» всегда равен «миссингу», при этом в операторах сравнения «миссинг» — самое минимальное значение.
Кроме фактических значений, набор данных SAS имеет такие данные, как тип переменной, длину, имя, ярлыки, форматы, называемые атрибутами набора данных.
Переменные и атрибуты
У переменных в SAS есть ряд атрибутов, давайте познакомимся с некоторыми из них.
Длина переменной — это количество байт, приходящихся на один символ.
Данный код демонстрирует вышеизложенное:
Имена переменных, как и наборов данных, задаются самостоятельно. Есть ряд правил именования переменных SAS:
В последующих статьях мы подробнее познакомимся с атрибутом формат.
Ярлык переменной используется в отчетах вместо имен переменных. Ярлык может содержать до 256 символов, включая специальные символы, в том числе и знак пробела. В последующих статьях мы рассмотрим, виды ярлыков и как они используются в программном коде, а также приемы, когда в имени переменной может быть использован, например, пробел.
Структура программы SAS Base
Ознакомимся со структурой программы на языке SAS Base.
Все программы SAS состоят всего из двух шагов: шаг PROC и шаг DATA. Шаг DATA предназначен для чтения, преобразования и создания наборов данных SAS, а процедурный шаг PROC в основном – для анализа данных, формирования и печати отчетов. Шаги состоят из операторов. Индикатор окончания шага – это ключевое слово RUN (или, например, QUIT для ряда процедур), также сигналом к завершению шага может быть наличие операторов STOP и ABORT. Шаги могут размещаться в произвольном порядке, компилятор считывает последовательно шаг за шагом. Стоит отметить, что и сами шаги считываются построчно и никак иначе. Разные части программы обмениваются друг с другом данными в виде наборов данных SAS.
Синтаксис SAS Base очень прост, так же как и написание кода.
Пример простейшей программы SAS представлен ниже:
Важным требованием синтаксиса является наличие точки с запятой в конце каждого оператора. Данная программа SAS считывает набор данных ads из библиотеки sasuser (с понятием «библиотека» мы познакомимся в следующей статье), создает новый набор данных new. На следующем шаге мы создаем отчет из нового набора данных.
Стоит отметить, что у SAS Base нет требований к форматированию кода. Вы можете написать код в одну строку и код будет работать. Чтобы отформатировать код в SAS U, нажмите на кнопку «формат кода»:
Хороший тон для программиста – это пояснения к исходному тексту программы. Комментарии не влияют на семантику программы.
В SAS Base есть два вида комментариев:
Как отмечалось ранее, Log необходимо детально изучать. Давайте рассмотрим несколько самых распространенных синтаксических ошибок:
В данном случае шаг отработает с предупреждением. В Log мы увидим следующую информацию:
В данном случае run на втором шаге программы будет расценен как параметр оператора proc print.
Ошибка будет выглядеть следующим образом:
При непарных кавычках срабатывает подсветка и в Log заносится в этом случае следующее сообщение (фрагмент Log):
Итак, это кратко об интерфейсе SAS UE, терминологии SAS Base и основных требованиях к синтаксису SAS Base. В следующей статье мы рассмотрим библиотеки SAS и их создание, создание детализированных отчетов, рассмотрим форматирование значений и задание постоянных атрибутов переменным.
Уверена, что работа с SAS окажется интересной и увлекательной. Grow with SAS!
Хочу все знать. Язык SAS
История возникновения
Для начала в сотый раз обратимся к рейтингу ресурса TIOBE, дабы отыскать в нём нашего сегодняшнего героя. SAS располагается на “предлидирующем” 21 месте, что, согласитесь, для data-языка великолепный результат. Так что давайте познакомимся с ним поближе.
Естественно, для того, чтобы эффективно обрабатывать большие потоки информации потребовался не только качественный программный продукт, но и соответствующий язык. И им стал SAS. Изначально это был довольно примитивный набор шаблонных запросов для группировки данных, но со временем SAS стал полноценным и достаточно популярным языком программирования.
Разумеется, вскоре началась судебная тяжба, которая в итоге создала интересный прецедент для всего IT-сообщества: WPS выиграл суд, доказав, что авторское право не нарушается, если используется синтаксис и функциональность языка, но не используются исходные коды. Таким образом, язык SAS отчасти избежал участи MATLAB, сорвав ярлык “вещи в себе”.
Краткая справка
Впрочем, оставим дела компании и обратимся непосредственно к языку. Чтобы вы визуально представляли его внешний вид, вот небольшой отрывок кода, содержащий вывод на экран таблицу данных:
PROC PRINT DATA = models NOOBS;
WHERE Type = «Mountain»;
FORMAT Price DOLLAR6.;
TITLE «Current Models of Mountain Bicycles»;
RUN;
Основным конкурентом SAS является язык R, причём стоит признать, что последний имеет солидное преимущество. Во-первых, он был создан позднее, соответственно избежал многих проблем роста. Во-вторых, и это наверное главный фактор, он бесплатный, в то время как SAS требует дорогое программное обеспечение. Впрочем, давайте взглянем на преимущества и недостатки SAS в сравнении с главным конкурентом.
Простой синтаксис, быстрое обучение “с нуля”;
Отладка кода проходит значительно проще, чем на R;
Интеграция с БД (Oracle/Teradata);
Удобный формат выходных данных (особенно таблиц);
Мощная поддержка со стороны компании SAS;
Многолетний успешный опыт эксплуатации компаниями разной величины, с разными задачами и разным объёмом входных данных. В частности, России SAS используют ОАО “РЖД”, МТС, ЦБ РФ, а также ведущие банки, среди которых Сбербанк, Альфабанк, Тинькофф и многие другие.
Профессиональное использование языка предполагает покупку программного продукта;
Исходники многих исполняемых алгоритмов SAS не являются публичными, следовательно изучение работы языка сильно ограничено;
SAS значительно уступает в производительности R;
С точки зрения объёма кода SAS также зачастую сильно проигрывает (иногда в несколько раз).
При этом надо понимать, что далеко не во всех сферах SAS и R являются прямыми конкурентами. Взгляните на следующее изображение:
Из него отчётливо видно, что в Data Science SAS сильно проигрывает не только R, но и Python. Но вот в анализе данных, предполагающем дальнейшие прогнозы, SAS занимает лидирующую позицию.
Программный продукт
Для того, чтобы оценить степень размаха в прикладных программах, с которым придётся столкнуться желающему освоить SAS в полном объёме, можно посетить официальный раздел с перечислением пакетов заглавной IDE. Впрочем, здесь прослеживается аналогия с уже упомянутым продуктом MATLAB/Simulink, где также имеется большое количество надстроек, но по сути подавляющее большинство из них имеет строгую специализацию. Так что изначально стоит сфокусироваться лишь на 4 следующих:
Если вы вдруг сейчас подумали, что возможно стоит прикупить пару из них, то вот стоп-сигнал: SAS Enterprise Miner, к примеру, обходится крупным компаниям более чем в 100 тысяч долларов. Пакет Analytics будет значительно дешевле, около 8,5 тысяч, но разве от этого легче?
Обучение
Впрочем, это не означает, что постигнуть азы SAS невозможно. Компания активно продвигает свой продукт среди студентов, причём абсолютно бесплатно. Достаточно мощную пробную версию SAS University Edition можно скачать перейдя по ссылке.
Также на официальном сайте у вас есть возможность записаться на экспресс-курсы по изучению языка (причём на русском языке). Рекомендуемая длительность обучения в каждом разделе составляет 3 дня, требования и программу можно посмотреть прямо рядом с торжественной кнопкой записи.
В общем, было бы желание.
Работа
Откровенно говоря, получить работу конкретно SAS-специалисту в России будет очень сложно. Как правило, SAS идёт как жирный плюс. но не как основная специализация. Тем не менее, если вам удастся набраться практического опыта работы с SAS хотя бы в течение 2 лет, хотя бы базово освоить SQL, VB и прочие полезности, то вы сможете смело рассчитывать на зарплату не менее 80 тысяч рублей в месяц. Причём речь не только о столице, стоимость программного продукта SAS как бы подсказывает работодателю не экономить в поисках дешёвой рабочей силы. Но, как уже было сказано, нужную вакансию ещё придётся поискать.
Литература
Нет смысла перечислять лучшие иностранные книги по SAS, так как все они собраны в одном месте, прямо на официальном сайте компании. Особое внимание стоит уделить пошаговому самоучителю, описанию возможностей языка и IDE, а также справочнику новичка.
Что касается ресурсов на русском языке, то тут, разумеется, всё значительно сложнее, но кое-что всё же есть. Помимо официального сайта, лекции Дмитрия Звежинского помогут тем, кто пока не познал английский язык на хорошем уровне, на официальные курсы записывать не хочет, но SAS изучить отчаянно желает.
На этом краткое знакомство считаем оконченным. А вы сталкивались когда-нибудь с языком SAS? Какие впечатления?
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.
История возникновения
Для начала в сотый раз обратимся к рейтингу ресурса TIOBE, дабы отыскать в нём нашего сегодняшнего героя. SAS располагается на “предлидирующем” 21 месте, что, согласитесь, для data-языка великолепный результат. Так что давайте познакомимся с ним поближе.
Естественно, для того, чтобы эффективно обрабатывать большие потоки информации потребовался не только качественный программный продукт, но и соответствующий язык. И им стал SAS. Изначально это был довольно примитивный набор шаблонных запросов для группировки данных, но со временем SAS стал полноценным и достаточно популярным языком программирования.
Разумеется, вскоре началась судебная тяжба, которая в итоге создала интересный прецедент для всего IT-сообщества: WPS выиграл суд, доказав, что авторское право не нарушается, если используется синтаксис и функциональность языка, но не используются исходные коды. Таким образом, язык SAS отчасти избежал участи MATLAB, сорвав ярлык “вещи в себе”.
Краткая справка
Впрочем, оставим дела компании и обратимся непосредственно к языку. Чтобы вы визуально представляли его внешний вид, вот небольшой отрывок кода, содержащий вывод на экран таблицу данных:
PROC PRINT DATA = models NOOBS;
WHERE Type = «Mountain»;
FORMAT Price DOLLAR6.;
TITLE «Current Models of Mountain Bicycles»;
RUN;
Основным конкурентом SAS является язык R, причём стоит признать, что последний имеет солидное преимущество. Во-первых, он был создан позднее, соответственно избежал многих проблем роста. Во-вторых, и это наверное главный фактор, он бесплатный, в то время как SAS требует дорогое программное обеспечение. Впрочем, давайте взглянем на преимущества и недостатки SAS в сравнении с главным конкурентом.
Простой синтаксис, быстрое обучение “с нуля”;
Отладка кода проходит значительно проще, чем на R;
Интеграция с БД (Oracle/Teradata);
Удобный формат выходных данных (особенно таблиц);
Мощная поддержка со стороны компании SAS;
Многолетний успешный опыт эксплуатации компаниями разной величины, с разными задачами и разным объёмом входных данных. В частности, России SAS используют ОАО “РЖД”, МТС, ЦБ РФ, а также ведущие банки, среди которых Сбербанк, Альфабанк, Тинькофф и многие другие.
Профессиональное использование языка предполагает покупку программного продукта;
Исходники многих исполняемых алгоритмов SAS не являются публичными, следовательно изучение работы языка сильно ограничено;
SAS значительно уступает в производительности R;
С точки зрения объёма кода SAS также зачастую сильно проигрывает (иногда в несколько раз).
При этом надо понимать, что далеко не во всех сферах SAS и R являются прямыми конкурентами. Взгляните на следующее изображение:
Из него отчётливо видно, что в Data Science SAS сильно проигрывает не только R, но и Python. Но вот в анализе данных, предполагающем дальнейшие прогнозы, SAS занимает лидирующую позицию.
Программный продукт
Для того, чтобы оценить степень размаха в прикладных программах, с которым придётся столкнуться желающему освоить SAS в полном объёме, можно посетить официальный раздел с перечислением пакетов заглавной IDE. Впрочем, здесь прослеживается аналогия с уже упомянутым продуктом MATLAB/Simulink, где также имеется большое количество надстроек, но по сути подавляющее большинство из них имеет строгую специализацию. Так что изначально стоит сфокусироваться лишь на 4 следующих:
Если вы вдруг сейчас подумали, что возможно стоит прикупить пару из них, то вот стоп-сигнал: SAS Enterprise Miner, к примеру, обходится крупным компаниям более чем в 100 тысяч долларов. Пакет Analytics будет значительно дешевле, около 8,5 тысяч, но разве от этого легче?
Обучение
Впрочем, это не означает, что постигнуть азы SAS невозможно. Компания активно продвигает свой продукт среди студентов, причём абсолютно бесплатно. Достаточно мощную пробную версию SAS University Edition можно скачать перейдя по ссылке.
Также на официальном сайте у вас есть возможность записаться на экспресс-курсы по изучению языка (причём на русском языке). Рекомендуемая длительность обучения в каждом разделе составляет 3 дня, требования и программу можно посмотреть прямо рядом с торжественной кнопкой записи.
В общем, было бы желание.
Работа
Откровенно говоря, получить работу конкретно SAS-специалисту в России будет очень сложно. Как правило, SAS идёт как жирный плюс. но не как основная специализация. Тем не менее, если вам удастся набраться практического опыта работы с SAS хотя бы в течение 2 лет, хотя бы базово освоить SQL, VB и прочие полезности, то вы сможете смело рассчитывать на зарплату не менее 80 тысяч рублей в месяц. Причём речь не только о столице, стоимость программного продукта SAS как бы подсказывает работодателю не экономить в поисках дешёвой рабочей силы. Но, как уже было сказано, нужную вакансию ещё придётся поискать.
Литература
Нет смысла перечислять лучшие иностранные книги по SAS, так как все они собраны в одном месте, прямо на официальном сайте компании. Особое внимание стоит уделить пошаговому самоучителю, описанию возможностей языка и IDE, а также справочнику новичка.
Что касается ресурсов на русском языке, то тут, разумеется, всё значительно сложнее, но кое-что всё же есть. Помимо официального сайта, лекции Дмитрия Звежинского помогут тем, кто пока не познал английский язык на хорошем уровне, на официальные курсы записывать не хочет, но SAS изучить отчаянно желает.
На этом краткое знакомство считаем оконченным. А вы сталкивались когда-нибудь с языком SAS? Какие впечатления?
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.