Система sas: Free Statistical Software, SAS University Edition

Содержание

история, примеры организации хранения / Хабр

В прошлый раз мы с вами рассмотрели все, что касается технологии SCSI в историческом контексте: кем она была изобретена, как развивалась, какие у нее есть разновидности и так далее. Закончили мы на том, что наиболее современным и актуальным стандартом является Serial Attached SCSI, он появился относительно недавно, но получил быстрое развитие. Первую реализацию «в кремнии» показала компания LSI в январе 2004 года, а в ноябре того же года SAS вошел в топ самых популярных запросов сайта storagesearch.com.

Начнем с основ. Как же работают устройства на технологи SCSI? В стандарте SCSI все построено на концепции клиент/сервер.

Клиент, называемый инициатором (англ. initiator), отправляет разные команды и дожидается их результатов. Чаще всего, разумеется, в роли клиента выступает SAS контроллер. Сегодня SAS контроллеры — это HBA и RAID-контроллеры, а также контроллеры СХД, стоящие внутри внешних систем хранения данных.

Сервер называется целевым устройством (англ. target), его задача — принять запрос инициатора, обработать его и вернуть данные или подтверждение выполнения команды обратно. В роли целевого устройства может выступать и отдельный диск, и целый дисковый массив. В этом случае SAS HBA внутри дискового массива (так называемая внешняя система хранения данных), предназначенный для подключения к нему серверов, работает в режиме Target. Каждому целевому устройству (“таргету”) присваивается отдельный идентификатор SCSI Target ID.

Для связи клиентов с сервером используется подсистема доставки данных (англ. Service Delivery Subsystem), в большинстве случаев, это хитрое название скрывает за собой просто кабели. Кабели бывают как для внешних подключений, так и для подключений внутри серверов. Кабели меняются от поколения к поколению SAS. На сегодня имеется три поколения SAS:

— SAS-1 или 3Gbit SAS

— SAS-2 или 6Gbit SAS

— SAS-3 или 12 Gbit SAS – готовится к выходу в середине 2013 года

Внутренние и внешние кабели SAS

Иногда в состав этой подсистемы могут входить расширители или экспандеры SAS. Под экспандерами (англ. Expanders, расширители, но в русском языке прижилось слово «экспандер») понимают устройства, помогающие доставке информации от инициаторов к целям и обратно, но прозрачные для целевых устройств. Одним из самых типичных примеров является экспандер, позволяющий подключить несколько целевых устройств к одному порту инициатора, например, микросхема экспандера в дисковой полке или на бэкплейне сервера. Благодаря такой организации, серверы могут иметь более 8 дисков (контроллеры, которые сегодня используются ведущими производителями серверов, обычно 8-портовые), а дисковые полки – любое необходимое количество.

Инициатор, соединенный с целевым устройством системой доставки данных, называют доменом. Любое SCSI устройство содержит как минимум один порт, который может быть портом инициатора, целевого устройства или совмещать обе функции. Портам могут присваиваться идентификаторы (PID).

Целевые устройства состоят из как минимум одного логического номера устройства (Logical Unit Number или LUN). Именно LUN и идентифицирует с каким из дисков или разделов данного целевого устройства будет работать инициатор. Иногда говорят, что target предоставляет инициатору LUN. Таким образом, для полной адресации к нужному хранилищу используется пара SCSI Target ID + LUN.

Как в известном анекдоте («Я не даю в долг, а Первый Национальный Банк не торгует семечками») — целевое устройство обычно не выступает в роли «посылающего команды», а инициатор — не предоставляет LUN. Хотя стоит отметить, что стандарт допускает тот факт, что одно устройство может быть одновременно и инициатором и целью, но на практике это используют мало.

Для «общения» устройств в SAS существует протокол, по «доброй традиции» и по рекомендации OSI, разделенный на несколько слоев (сверху вниз): Application, Transport, Link, PHY, Architecture и Physical.

SAS включает в себя три транспортных протокола. Serial SCSI Protocol (SSP) — используется для работы со SCSI устройствами. Serial ATA Tunneling Protocol (STP) — для взаимодействия с дисками SATA. Serial Management Protocol (SMP) — для управления SAS-фабрикой. Благодаря STP мы можем подключать диски SATA к контроллерам SAS. Благодаря SMP мы можем строить большие (до 1000 дисковых/SSD-устройств в одном домене) системы, а также использовать зонирование SAS (подробнее об этом в статье про SAS-коммутатор).

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

Все взаимодействие в SCSI строится на основании команд, которые инициатор посылает целевому устройству и ожидает их результата. Команды эти посылаются в виде блоков описания команды (Command Description Block или CDB). Блок состоит из одного байта кода команды и ее параметров. Первым параметром почти всегда выступает LUN. CDB может иметь длину от 6 до 32 байт, хотя последние версии SCSI допускают CDB переменной длины.

После получения команды целевое устройство возвращает код подтверждения. 00h означает что команда принята успешно, 02h обозначает ошибку, 08h — занятое устройство.

Команды делятся на 4 большие категории. N, от английского «non-data», предназначены для операций, не относящихся к непосредственно обмену данными. W, от «write» — запись данных, полученных целевым устройством от инициатора. R, как не сложно догадаться от слова «read» используется для чтения. Наконец В — для двустороннего обмена данными.

Команд SCSI существует достаточно много, поэтому перечислим только наиболее часто используемые.

Test unit ready (00h) — проверить, готово ли устройство, есть ли в нем диск (если это ленточный накопитель), раскрутился ли диск и так далее. Стоит отметить, что в данном случае устройство не производит полной самодиагностики, для этого существуют другие команды.

Inquiry (12h) — получить основные характеристики устройства и его параметры

Send diagnostic (1Dh) — произвести самодиагностику устройства — результаты этой команды возвращаются после диагностики командой Receive Diagnostic Results (1Ch)

Request sense (03h) — команда позволяет получить статус выполнения предыдущей команды — результатом этой команды может стать как сообщение типа «нет ошибки», так и разные сбои, начиная с отсутствия диска в накопителе и заканчивая серьезными проблемами.

Read capacity (25h) — позволяет узнать объем целевого устройства

Format Unit (04h) — служит для деструктивного форматирования целевого устройства и подготовки его к хранению данных.

Read (4 варианта) — чтение данных; существует в виде 4 разных команд, отличающихся длиной CDB

Write (4 варианта) — запись. Так же как и для чтения в 4 вариантах

Write and verify (3 варианта) — запись данных и проверка

Mode select (2 варианта) — установка различных параметров устройства

Mode sense (2 варианта) — возвращает текущие параметры устройства

А теперь рассмотрим несколько типичных примеров организации хранения данных на SAS.

Пример первый, сервер хранения данных.

Что это такое и с чем его едят? Большие компании типа Amazon, Youtube, Facebook, Mail.ru и Yandex используют сервера этого типа для того, чтобы хранить контент. Под контентом понимается видео, аудио информация, картинки, результаты индексирования и обработки информации (например, так популярный в последнее время в США, Hadoop), почта, и.т.д. Для понимания задачи и грамотного выбора оборудования под нее нужно дополнительно знать несколько вводных, без которых никак нельзя. Первое и самое главное – чем больше дисков – тем лучше.

Дата-центр одной из российских Web 2.0-компаний

Процессоры и память в таких серверах задействуются не сильно. Второе – в мире Web 2.0, информация хранится географически распределено, несколько копий на различных серверах. Хранится 2-3 копии информации. Иногда, если она запрашивается часто, хранят больше копий для балансировки нагрузки. Ну и третье, исходя из первого и второго, чем дешевле – тем лучше. В большинстве случаев все вышесказанное приводит к тому, что используются Nearline SAS или SATA диски высокой емкости. Как правило, Enterprise-уровня. Это значит, что такие диски предназначены для работы 24×7 и стоят значительно дороже своих собратьев, использующихся в настольных PC. Корпус обычно выбирают такой, куда можно вставить побольше дисков. Если это 3.5’’, то 12 дисков в 2U.

Типичный 2U-сервер хранения данных

Или 24 x 2.5’’ в 2U. Или другие варианты в 3U, 4U и.т.д. Теперь, имея корпус, количество дисков и их тип, мы должны выбрать тип подключения. Вообще-то выбор не очень большой. А сводится он к использованию экспандерного или безэкспандерного бэкплейна. Если мы используем экспандерный бекплейн, то контроллер SAS может быть 8-портовым. Если безэкспандерный – то количество портов контроллера SAS должно равняться или превышать количество дисков. Ну и последнее, выбор контроллера. Мы знаем количество портов, 8, 16, 24, например и выбираем контроллер исходя из этих условий. Контроллеры бывают 2х типов, RAID- и HBA. Отличаются они тем, что RAID-контроллеры поддерживают уровни RAID 5,6,50,60 и имеют достаточно большой объем памяти (512MB-2ГБ сегодня) для кэширования. У HBA памяти или cовсем нет, или ее очень мало. Кроме этого, HBA либо не умеют делать RAID вообще, либо умеют олько простые, не требующие большого объема вычислений уровни. RAID 0/1/1E/10 – типичный набор для HBA. Здесь нам нужен HBA, они стоят значительно дешевле, так защита данных нам не нужна совсем и мы стремимся к минимизации стоимости сервера.

16-портовый SAS HBA

Пример второй, почтовый сервер Exchange. А также MDaemon, Notes и другие подобные сервера.

Здесь все не так очевидно, как в первом примере. В зависимости от того, сколько пользователей должен обслуживать сервер, рекомендации будут различными. В любом случае, мы знаем что базу данных Exchange (так называемую БД Jet) лучше всего хранить на RAID 5/6 и она неплохо кэшируется с использованием SSD. В зависимости от количества пользователей определяем необходимые объемы хранения «сегодня» и «на вырост». Помним, что сервер живет 3-5 лет. Поэтому «на вырост» можно ограничить 5-летней перспективой. Потом будет дешевле полностью поменять сервер. В зависимости от объема дисков выберем корпус. С бэкплейном проще, рекомендуется использовать экспандеры, так как требования по цене не такие жесткие, как в предыдущем случае, и в общем случае, удорожание сервера на $50-$100, а иногда и больше, мы вполне переживем в угоду надежности и функциональности. Диски выберем SAS или NL-SAS/Enterprise SATA в зависимости от объемов. Далее, защита данных и кэширование. Выберем современный 4/8-портовый контроллер, поддерживающий RAID 5/6/50/60 и кэширование на SSD. Для LSI, это любой MegaRAID кроме 9240 с функцией кэширования CacheCade 2.0, или Nytro MegaRAID с SSD «на борту». Для Adaptec, это контроллеры, поддерживающие MAX IQ. Для кэширования в обоих случаях (кроме Nytro MegaRAID) нужно будет взять пару SSD на e-MLC-технологии Enterprise-класса. Такие есть у Intel, Seagate, Toshiba, и.т.д. Цены и компании – на выбор. Если вы не порч доплатить за бренд, то в линейках серверов IBM, Dell, HP, найдите подобные продукты и вперед!

SSD- кэширующий RAID-контроллер Nytro MegaRAID

Пример третий, внешняя система хранения данных своими руками.

Итак, самое серьезное знание SAS, конечно же, требуется тем, кто производит системы хранения данных или хочет их сделать своими руками. Мы остановимся на достаточно простой СХД, программное обеспечение для которой производится компанией Open-E. Конечно же, можно делать СХД и на Windows Storage Server, и на Nexenta, и на AVRORAID, и на Open NAS, и на любом другом подходящем для этих целей софте. Я просто обозначил основные направления, а дальше вам помогут сайты производителей. Итак, если это внешняя система, то мы почти никогда не знаем, сколько же дисков потребуется конечному пользователю. Мы должны быть гибкими. Для этого есть так называемые JBOD – внешние полки для дисков. В их состав входит один или два экспандера, каждый из которых имеет вход (4-х портовый разъем SAS), выход на следующий экспандер, остальные порты разведены на разъемы, предназначенные для подключения дисков. Причем, в двухэкспандерных системах первый порт диска разведен на первый экспандер, второй порт – на второй экспандер. Это позволяет строить отказоустойчивые цепочки JBOD-ов. Головной сервер может иметь внутренние диски в своем составе, либо не иметь их совсем. В этом случае используются «внешние» контроллеры SAS. То есть контроллеры с портами «наружу». Выбор между SAS RAID-контроллером или SAS HBA зависит от управляющего ПО, которое вы выбираете. В случае Open-E, это RAID-контроллер. Можно позаботиться и об опции кэширования на SSD. Если ваша СХД будет иметь очень много дисков, то решение Daisy Chain (когда каждый последующий JBOD подключается к предыдущему, либо к головному серверу) в силу многих причин не подходит. В этом случае головной сервер либо оснащается несколькими контроллерами, либо используется устройство, которое называется SAS-коммутатор. Он позволяет подключать один или несколько серверов к одному или нескольким JBOD. Подробнее SAS-коммутаторы мы разберем в следующих статьях. Для внешних систем хранения данных настоятельно рекомендуется использовать диски только SAS (в том числе NearLine) в силу повышенных требований к отказоустойчивости. Дело в том, что протокол SAS имеет в своем составе гораздо больше функций, чем SATA. Например, контроль записываемых-считываемых данных на всем пути с помощью проверочных сумм (T.10 End-to-End protection). А путь, как мы уже знаем, бывает очень длинным.

Многодисковый JBOD

Напоследок, хочется поделиться некоторыми сведениями о текущей адаптации SAS мировыми производителями оборудования. SAS сегодня – это стандарт де-факто для серверных систем и профессиональных рабочих станций. Серверные системы подавляющего большинства как A- так и B- брендов имеют в составе контроллеры SAS, как HBA, так и RAID. В области внешних систем хранения данных, основные производители оборудования (HP, EMC, NetApp, IBM) уже несколько лет как перевели внутренние архитектуры своих систем на SAS. Таким образом, диски Fibre Channel стали за последние пару лет настоящей экзотикой. Fibre Channel продолжает жить и развиваться, в основном, как способ подключения серверов к системам хранения данных, хотя в области Low-End, Mid-Range и профессиональных систем, SAS отвоевывает все большую долю.

На этом наш экскурс в мир истории и теории SCSI вообще и SAS в частности подошел к концу, и в следующий раз я расскажу вам более подробно о применении SAS в реальной жизни.

Основы программирования на SAS Base. Урок 2. Доступ к данным / Блог компании SAS / Хабр

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

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

Что такое библиотеки SAS?

Библиотека в SAS – это метод централизованного хранения и прозрачного использования данных в программах SAS. Библиотека может быть папкой или каталогом на вашем компьютере или располагаться на внешнем жестком диске, FLASH-накопителе или компакт-диске и так далее.

Существует два типа библиотек: постоянные и временные. Постоянные библиотеки SAS сохраняются до тех пор, пока вы их не удалите. Постоянная библиотека доступна для обработки в последующих сеансах SAS. Временная библиотека SAS существует только для текущего сеанса SAS.

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

Назначаем пользовательскую библиотеку.

Рассмотрим простой случай назначения библиотеки: наборы данных SAS находятся в одной директории c:\habrahabr. Есть два способа решения этой задачи.

1 способ:

Настроить библиотеку без программного кода. Во вкладке «Библиотеки» в SAS UE выбрать «Новая библиотека»:
Далее появится окно для настройки пользовательской библиотеки:
Имя библиотеки – library reference (или libref). Libref – это «псевдоним» (ссылка) для «хранилища», в котором находятся файлы. Название библиотеке задается в соответствии с правилами именования переменных в SAS (см. Урок 1), но на него выделяется не более 8 символов.

Правила именования библиотек, переменных, наборов данных и пр. в SAS можно изучить в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation SAS Language Reference: Concepts в разделе Names in the SAS Language.

Обратите внимание, что библиотека назначена на все время сеанса SAS, но переопределять ее параметры можно.

Далее задаем путь к наборам данных SAS.

После назначения библиотеки она появляется в левой панели SAS UE.

2 способ:

Назначить библиотеку программным путем. Назначение библиотеки SAS реализуется с помощью глобального оператора LIBNAME. Информацию по указанному оператору можно изучить в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation / Global Statements.

Рассмотрим общий синтаксис глобального оператора LIBNAME.

LIBNAME libref <engine> 'SAS-library' < options > <engine/host-options>;

libref – имя библиотеки.
engine — имя «движка», например, для наборов данных SAS – это BASE (но его можно не указывать, он задан по умолчанию). Если вы хотите создать новую библиотеку с другим «движком», отличным от механизма по умолчанию, вы можете отменить автоматический выбор.

Справочники, которые могут вам пригодиться при изучении механизмов подключения: SAS/ACCESS for Relational Databases и SAS Engines.

«Движки» SAS/ACCESS являются механизмами оператора LIBNAME, которые обеспечивают доступ к чтению, записи и обновлению более чем 60 реляционных и нереляционных баз данных, файлов ПК, устройств хранения данных и распределенных файловых систем.

‘SAS-library’ – путь к библиотеке, если путь задается с помощью макропеременной (будет рассматриваться в данном цикле статей), используются парные двойные кавычки. Во всех остальных случаях можно использовать парные одинарные кавычки.

options — допустимые опции. Простейшим примером является опция ACCSESS=READONLY, которая назначает атрибут «только для чтения» для всей библиотеки SAS. Со всем перечнем допустимых опций можно ознакомиться в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation /Global Statements.

engine/host-options — являются одним или несколькими параметрами, которые перечислены в общей форме keyword = value.

Рассмотрим синтаксис оператора LIBNAME на практике. Назначим библиотеку Habr только для чтения:

libname Habr "c:\habrahabr" access=readonly;

Запустим код и проверим Log:
Сообщения в журнале указывают, что библиотека успешна назначена. В качестве библиотек можно подключать данные, которые физически находятся не в формате наборов данных SAS (промышленные БД, excel, access).

Просматриваем содержимое библиотеки SAS.

Один из вариантов просмотра содержимого библиотеки – использование процедуры PROC CONTENTS. Ознакомиться с процедурами, используемыми в SAS, можно в справочнике SAS 9.4 Procedures by Name and Product.

Процедура PROC CONTENTS позволяет создавать вывод, который описывает либо содержимое библиотеки SAS, либо информацию дескриптора для отдельного набора данных SAS. Чтобы просмотреть содержимое библиотеки SAS, мы можем использовать следующую общую форму процедуры:

proc contents data = libref._ALL_ nods;
run; 

Параметр NODS (который означает «no details») подавляет печать подробной информации о каждом файле при указании опции _ALL_.

Для конкретной библиотеки код будет выглядеть следующим образом:

proc contents data=habr._all_ nods;
run; 

Фрагмент вывода процедуры:
Обратите внимание, что в библиотеке также хранятся другие типы файлов, например catalog, index. О них можно прочитать в справочнике SAS 9.4 Companion for Windows, Fifth Edition.

Файлы с member type DATA являются стандартными наборами данных SAS. Второй вариант просмотра содержимого библиотеки – использовать процедуру PROC DATASETS:

proc datasets lib=habr;
quit; 

Просмотр информации о конкретном наборе данных SAS реализуется следующим образом:

proc contents data=habr.charities;
run;

Обратите внимание на обращение к таблице в пользовательской библиотеке. Имя после data= двухуровневое: имя_библиотеки.имя_таблицы. В случае набора данных, хранящемся во временной библиотеке WORK, в обращении после data= можно использовать одноуровневое имя.

Например, в случае кода:

proc contents data=charities;
run;

выведется информация о наборе данных charities, находящемся во временной библиотеке WORK.

Рассмотрим вывод процедуры для набора данных charities в пользовательской библиотеке HABR:

Служебная информация о таблице, получаемая в результате вывода, называется дескриптором.
Дескриптор содежит общую информацию о наборе данных: его название и имя библиотеки, типе, «движке», дате и времени создания и последнего изменения, количестве наблюдений и переменных, общей длине наблюдений, индексах, сортировке, сжатии, размере страницы и их количестве, информацию об атрибутах переменных.

Читаем электронные таблицы.

Чтение файла EXCEL можно реализовать несколькими способами. В этой статье мы рассмотрим назначение библиотеки для файла excel.

Для назначения библиотеки SAS будем использовать электронную таблицу products.xlsx, хранящуюся в директории c:\workshop\habrahabr\products.xlsx. Данный документ выглядит следующим образом: он содержит 4 листа, каждый из которых станет отдельным набором данных SAS. Фрагмент данного документа представлен ниже:

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

LIBNAME libref <engine> 'SAS-library' < options > <engine/host-options>;

Существует несколько механизмов для обработки файла excel, у всех свои особенности и настройки, с которыми можно ознакомиться в документации.

  1. Excel
    libname XL excel "c:\workshop\habrahabr\products.xlsx";


    Результат выполнения оператора libname представлены ниже. Фрагмент Log:

    Информацию о библиотеке посмотрим через процедуру PROC CONTENTS:

    proc contents data=xl._all_ nods;
    run; 


    В зависимости от механизма дескриптор заполняется по-разному:

  2. XLSX
     libname xl xlsx "c:\workshop\habrahabr\products.xlsx";


    Результат выполнения оператора LIBNAME представлены ниже. Фрагмент Log:

    Информацию о библиотеке посмотрим через PROC CONTENTS:

    proc contents data=xl._all_ nods;
    run; 


    В зависимости от механизма дескриптор заполняется по-разному:

  3. PC Files
    libname XL pcfiles path='c:\workshop\habrahabr\products.xlsx';


    Результат выполнения оператора libname представлены ниже.

    Фрагмент Log:


    Информацию о библиотеке посмотрим через PROC CONTENTS:

    proc contents data=xl._all_ nods;
    run; 


    В зависимости от механизма дескриптор заполняется по-разному:

Создаем детализированные отчеты.

После получения доступа к требуемым данным рассмотрим процедуру для создания отчетов PROC PRINT. Подробную информацию о ней можно получить в справочнике SAS 9.4 Procedures by Name and Product. Распечатаем детализированный отчет, используя таблицу German из системной библиотеки sasuser.

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

proc contents data=sasuser.german;
run;

Фрагмент вывода процедуры:
Создадим детализированный отчет, удовлетворяющий представленным ниже требованиям:

  1. Не включайте переменные Change и Retain в отчет:
    proc print data=sasuser.german;
    var ID Pre Group Gender;
    run; 


    Оператор VAR определяет переменные для печати. Оператор выводит их в том порядке, в котором вы их перечислили.

    Фрагмент вывода:

  2. Распечатайте только те наблюдения, значения переменной Pre в которых не превышает 70.00 и значения переменной Group равны Treatment.

    В данном условии нам необходимо использовать фильтр в операторе WHERE.

    proc print data=sasuser.german;
    var ID Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    run;
    


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

    Вывод данной программы SAS:

  3. Не выводите номера строк.

    По умолчанию процедура PROC PRINT выводит номера строк, для того, чтобы убрать данный столбец, можно использовать опцию NOOBS (‘no observation’). В этом случае программный код выглядит следующим образом:

    proc print data=sasuser.german noobs;
    var ID Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    run;
    


    Операторы сравнения вы можете записывать привычными символами, а можете использовать мнемоники, как представлено в примере. Вывод данной программы представлен ниже:

  4. Переменную ID определите идентифицирующим столбцом.

    Идентификатором наблюдения можно определить любую переменную. Когда вы указываете одну или несколько переменных в операторе ID, он использует форматированные значения этих переменных для идентификации строк. Обратите внимание, что если одновременно переменная указана в операторе VAR и в операторе ID, то она выведется два раза. Также при использовании оператора ID нет необходимости в опции NOOBS.

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

    proc print data=sasuser.german;
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    run;
    


    Результаты выполнения кода представлены ниже:

  5. Задайте переменным ярлыки

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

    Для задания ярлыка используется оператор LABEL.

    Общий синтаксис оператора LABEL выглядит следующим образом:

    LABEL variable-1=label-1...<variable-n=label-n>;


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

    Не все процедуры «видят» ярлыки. Для того, чтобы процедура PROC PRINT выводила в отчет ярлыки, а не имена переменных, в опциях необходимо указать label (или split=). Опция SPLIT указывает разделитель, который контролирует разрывы в заголовках столбцов. Используем оператор LABEL в нашем программном коде:

    1 вариант

    proc print data=sasuser.german label;
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit'
            Group = 'Customer Group'
            Gender = 'Customer Gender';
    run;
    

    2 вариант


    (с использованием опции split=)

    В опции split= указывается разделитель (обязательно в кавычках). Код в данном случае выглядит следующим образом (обратите внимание на использование разделителей в операторе Label):

    proc print data=sasuser.german split='*';
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit'
            Group = 'Customer*Group'
            Gender = 'Customer*Gender';
    run;
    
  6. Задайте отчету заголовок и нижний колонтитул

    Оператор TITLE задает заголовок в отчете, оператор FOOTNOTE задает нижний колонтитул.

    Как и в случае оператора LIBNAME, данные операторы являются глобальными и действуют во время всего сеанса SAS до тех пор, пока вы не переопределите их значения. Вы можете использовать TITLE и FOOTNOTE как вне шагов PROC, так и непосредственно в них.

    Общий синтаксис операторов:

    TITLE<1...10> <text-options> 
                 <"text-string–1"> ... <text-options> <"text-string-n"> ;
    FOOTNOTE<1...10> <text-options> 
                 <"text-string–1"> ... <text-options > <"text-string-n"> ;

    Text-string – данный аргумент является строкой, которая может содержать до 512 символов. Вам необходимо заключать такие строки в одиночные или двойные кавычки. Текст отображается точно так же, как вы вводите его в операторе, включая прописные, строчные буквы и пробелы.

    Для заголовка в отчете вы можете использовать 10 операторов TITLE (аналогично с FOOTNOTE). Важно понимать, как переопределяются значения. Логика выполнения операторов одинаковая. Рассмотрим переопределение значений заголовков на примере оператора TITLE.







    КодРезультатПримечание
    TITLE ‘String number one’;String number oneTITLE и TITLE1 эквивалентны
    TITLE ‘String number three’String number one

    String number three

    Строка №2 пустая
    TITLE2 ‘String number two’;String number one

    String number two
    TITLE2 задал значение заголовку на второй строке и удалил значения заголовков ниже.
    TITLE1 ‘New Title’;New TitleTITLE1 задал значение заголовку на 1 строке и удалил значения заголовков ниже.
    TITLE;

    Пустой оператор TITLE удаляет все заголовки.3


    Другими словами, оператор TITLEn переопределяет значение заголовка в строке n и удаляет значения заголовков строк c n+1 до 10.

    Также для настройки заголовков и нижних колонтитулов можно использовать стили:

    title bold Italic 	
    color=brown bcolor=darkseagreen 
    height=5'Habrahabr';
    


    Результат выполнения:

    Итак, возвращаясь к разрабатываемому отчету:

    title 'Example for Habrahabr';
    footnote 'Created by Anna Dobrychenko';
    proc print data=sasuser.german split='*';
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit'
            Group = 'Customer*Group'
            Gender = 'Customer*Gender';
    run;
    /*Clear title and footnote*/
    title; footnote;
    


    Результат выполнения программы:

  7. Задайте переменной Pre формат

    Формат – это правило вывода значений переменных в отчет. Необходимо понимать, что формат не меняет значения в наборе данных SAS. Типы форматов соответствуют типу данных, но разбиты на категории: числовые, символьные, даты, время, дата-время.

    Всю информацию о форматах можно найти в справочнике SAS 9.4 Formats and Informats: Reference. Также поддерживается возможность создания пользовательских форматов, об этом мы поговорим в следующих статьях.

    Общий синтаксис оператора FORMAT.

    FORMAT variable-1 <...variable-n> <format> <DEFAULT=default-format>;

    variable – одна или несколько переменных, к которым небходимо применить формат.

    DEFAULT=default-format – определяет временный формат по умолчанию для отображения значений переменных, которые не указаны в операторе FORMAT, используется в шаге DATA.

    format – определяет формат, который используется для отображения переменных.

    Общий синтаксис использованиея формата в операторе FORMAT следующий:

    <$>format<w>.<d>


    $ — признак текстового формата

    Format – название формата

    w — ширина формата, количество всех выводимых символов в значении

    d — количество десятичных знаков

    Формат всегда оканчивается на точку или на количество десятичных знаков. Стоит отметить, что при неверном выборе ширины формата значения в выводе могут «обрезаться». Давайте рассмотрим пример:








    Значение переменнойФорматРезультат
    34566.78DOLLAR10.2$34,566.78
    34566.78DOLLAR9.2$34566.78
    34566.78DOLLAR8.234566.78
    34566.78DOLLAR7.234566.8
    34566.78DOLLAR6.234567
    34566.78DOLLAR4.235E3


    При этом значение в наборе данных SAS остается неизменным:

    data test;
    Var=34566.78;
    CurrentValue=Var;
    FORMAT Var dollar4.2;
    run;
    proc print data=test noobs;
    run;
    


    Результат выполнения шага:

    Итак, применим формат к переменной Pre:

    title 'Example for Habrahabr';
    footnote 'Created by Anna Dobrychenko';
    proc print data=sasuser.german split='*';
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit'
            Group = 'Customer*Group'
            Gender = 'Customer*Gender';
    format Pre dollar6.2;
    run;
    /*Clear title and footnote*/
    title; footnote;
    


    Отчет выглядит следующим образом:

  8. Сгруппируйте отчет по переменной Gender, и оставьте в отчете переменные Pre, Group и Gender

    Для группировки переменных используется оператор BY. Группировка переменных по определенным значениям подразумевает сортировку таблицы. Это связано с обработкой данных SAS Base.

    Отсортировать набор данных можно с помощью процедуры PROC SORT.

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

    Давайте проверим вышеизложенное. Если посмотреть на отчет, выводимый в п.7 данной статьи, столбец Gender отсортирован по полу по убыванию. Так ли это?

    title 'Example for Habrahabr';
    footnote 'Created by Anna Dobrychenko';
    proc print data=sasuser.german split='*';
    var Pre Group Gender;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit'
            Group = 'Customer*Group'
            Gender = 'Customer*Gender';
    format Pre dollar6.2;
    BY descending Gender;
    run;
    /*Clear title and footnote*/
    title; footnote;
    


    Результат выполнения процедуры представлен ниже:

    Добавим несколько опций для создания итогового отчета: nobyline и #byVAL()

    options nobyline;
    title 'Example for Habrahabr';
    title2 'Report for Gender: #BYVAL(Gender) and for Group: Treatment';
    footnote 'Created by Anna Dobrychenko';
    proc print data=sasuser.german split='*';
    var Pre;
    where Pre le 70 and Group='Treatment';
    ID ID;
    label   ID = 'Identifier' 
            Pre = 'Pre credit';
    format Pre dollar6.2;
    BY descending Gender;
    run;
    /*Clear title and footnote*/
    title; footnote;
    options byline;
    


    Таким образом, мы получили требуемый детализированный отчет на основании набора German в библиотеке Sasuser.

Итак, это кратко об организации доступа к данным и созданию детализированных отчетов. В следующей статье мы рассмотрим чтение внешних файлов, изучим операторы INFILE и INPUT, а также процедуру PROC IMPORT.

И, конечно, традиционно — Grow with SAS!

мы анализировали данные и обучали модели задолго до того, как это стало модным / Блог компании SAS / Хабр

Наша аналитическая платформа работает в WalMart, Bank of America, Bank of China, Сбербанке, МТС. SAS как предмет преподают в МГУ, ВШЭ, МИФИ, МГТУ им. Баумана, МЭИ, МИИТ и других ВУЗах. А под катом — наша краткая история-знакомство, с которой мы хотим открыть наш блог на Хабре.

Кто мы такие

Компания SAS существует с 1976 г. Мы выросли из маленького проекта одного молодого профессора математики из Университета Северной Каролины. Началось все с небольших подрядов на статобработку данных Минсельхоза, которые он выполнял вместе со своими студентами.

Разумеется, стандартных решений для автоматизации тогда не существовало, поэтому большинство статистических функций профессор писал сам на языках С и COBOL.

В какой-то момент количество перешло в качество: вместо того чтобы просто выполнять определенные расчеты для своих клиентов, профессор решил продавать сами свои наработки по расчетам и другим клиентам, которым необходимо было работать с аналитикой и статистикой, а также строить математические модели. Так появилась компания SAS.

Сегодня мы работаем по всему миру практически во всех традиционных отраслях, где необходим анализ статистики. В круг наших партнеров входят банки и крупнейшие страховые компании, ритейлеры и производственные компании, энергетика и нефтегаз, ресторанные и гостиничные сети, а также самые разные госструктуры. На сегодняшний день мы обслуживаем более 83 000 клиентов по всему миру. В нашей компании работает 14 000 сотрудников, более 4 000 из которых заняты непосредственно разработкой ПО.

Мы имеем богатую историю работы и на российском рынке. Хотя официальная история SAS в России началась с 1996 года, первые крупные внедрения нашего ПО относятся к самому началу 90-х, а отдельные решения работали еще при существовании СССР.

Одним из первых крупных клиентов на российском рынке стал Альфа-банк, история работы с которым уходит в самое начало 90-х. Среди крупнейших российских клиентов можно упомянуть и компанию МТС, где мы создавали хранилище данных и систему обработки управленческой и аналитической отчетности. Общий объем хранилища составлял 30 ТБ, что на тот момент (более 10 лет назад) являлось самым большим хранилищем данных в РФ, а возможно даже и в Европе. Также наши технологии и решения активно используется в сфере железнодорожного транспорта и некоторых других отраслях российской промышленности.

Зачем мы здесь

Одна из целей нашего присутствия на Хабре – познакомиться с молодежью, развеять мифы о нас, в том числе главный – о недоступности SAS из-за высокой стоимости и прочих ограничений. Нет, у нас не все платное – вы всегда можете найти варианты бесплатного использования, в том числе для исследований и изучения; нет, у нас не все недоступное – в открытом доступе есть масса ресурсов; нет, у нас не все на английском языке – и мы обязательно будем работать над увеличением русскоязычного материала.

На каких рынках мы работаем

Мы активно работаем на банковском рынке, в число наших клиентов входят практически все крупнейшие банки. Наши решения используются в клиентской аналитике, целевом маркетинге, помогают обеспечить управление данными и подготовку управленческой и аналитической отчетностью. Одно из ключевых направлений — управление рисками, которое применяется в том числе для борьбы с мошенничеством.

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

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

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

Ключевые требования

Однако не все так просто. Эффективность работы с аналитикой зависит от нескольких ключевых факторов, отсутствие которых способно испортить весь эффект.

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

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

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

Наконец, сейчас широко распространяется аутсорсинг, когда собственно работу аналитиков берут на себя партнеры, а заказчик получает готовые для понимания и использования аналитические данные. Например, часто в начале сотрудничества мы работаем в качестве внешних аналитиков (по модели RaaS), и клиент получает эффект и понимание, что и как работает, какие направления следует развивать, а какие – нет. Это поможет ему при формировании своей команды или же подтолкнет принять решение продолжить работать на аутсорсе.

Что мы делаем

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

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

Один из наших приоритетов – интегрировать наши решения в рабочие процессы и схемы принятия решений в компании. Дело в том, что если аналитика и данные существуют отдельно, «в вакууме», эффективность их использования существенно падает. Кроме того, без нормальной бесшовной интеграции очень велик риск операционных ошибок. А такие ошибки очень сильно бьют по доверию к аналитике и моделям.

Для встраивания аналитики в бизнес-процессы в SAS предусмотрен целый стек технологий. Интеграция на уровне данных (SAS Data Integration), интеграция на уровне потоков событий (SAS Event Stream Processing), интеграция на уровне запросов решений (SAS Decision Manager), интеграция на уровне управления жизненным циклом моделей (SAS Model Manager), интеграция на уровне разнородных аналитических инструментов типа R, Python, Scala (SAS Viya). В крупной организации, будь то банк, ретейлер, телеком или что-то другое, основная сложность — это огромное количество разнородных источников данных на разных платформах и СУБД, и большое число процессов, где требуется применение аналитики (потребителей аналитики), реализованных в разных системах.

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

Естественно, что сегодня SAS работает не только по традиционной модели предоставления софта, но и предоставляет облачные сервисы. В самых разных форматах: SaaS (ПО как сервис), BaaS (бизнес как сервис – аутсорсинг аналитических процессов), RaaS (результат как сервис – реализация какого-либо законченного продукта для клиента под ключ, от разработки прогнозной модели, до формирования статистически обоснованной стратегии развития сети торговых точек, например).

Облачные сервисы востребованы больше не в банках, где все хорошо с данными, с деньгами, с аналитиками, а в других отраслях – страховании, ритейле, агросекторе, например. Клиенты в этих отраслях готовы привлекать внешних экспертов не только на этапе настройки, но и на постоянную работу. Еще один плюс облачных сервисов — отсутствие необходимости больших инвестиций в начале работы, что дает более быстрый выход на окупаемость и снижает риски убытков.

Как выбирают

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

Однако сама точность модели – фактор не постоянный. Она зависит от многих факторов, как относящихся к модели, так и внешних. Например, точность модели полностью зависит от корректности и адекватности предоставляемых в рамках тестирования данных. Иногда они есть, иногда нужные данные находятся в рассеянном виде и их нужно искать, собирать и приводить к единому формату, либо вообще приходится самостоятельно налаживать их сбор.

Также на первом этапе не всегда понятно, что к чему, какие есть особенности и главное, что именно нужно клиенту. Поэтому на первых этапах работы преимущество в точности часто получают усредненные модели, которые уже «из коробки» дают относительно высокую точность работы. Однако такая модель со временем скорее всего будет терять актуальность за счет того, что меняются условия работы предприятия и самого рынка. Это необходимо учитывать и либо вручную, либо автоматически адаптировать модель к меняющимся условиям.

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

Мы уверены в своих решениях, и та статистика, что у нас есть, показывает, что клиенты нам тоже доверяют. Отток клиентов у нас не превышает 1%, очень часто менеджеры и клиенты, переходя в новую компанию, стремятся и ее перевести на использование наших решений. В России мы растем на 40% в год, что дает нам основания считать, что наши решения востребованы.

Что привлекает клиентов

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

Мы сами разрабатываем все свои продукты и решения, что обеспечивает единообразность и согласованную работу, в дальнейшем наши решения можно легко масштабировать или модифицировать. Наши решения тесно интегрированы между собой: мы предлагаем общую платформу, на которую можно «навешивать» разные модули. Благодаря этому степень риска при их внедрении гораздо ниже – клиенту не надо собирать в единую систему из чужих технологий и инструментов с неизвестным результатом. Можно сразу (и зачастую перед полноценным внедрением) оценить работу решения, составить предварительное впечатление.

В наши решения заложены накопленные нами знания и опыт в области решения конкретных аналитических задач, типовые бизнес-процессы, формы мониторинга и отчетности и т.д. Плюс, у нас нет «просто аналитиков», наши специалисты обладают предметными данными в конкретной области, что позволяет им лучше понимать ситуацию. В принципе, даже технические специалисты обладают знаниями и пониманием происходящих в отрасли процессов, что позволяет им более адекватно работать с данными.

Еще момент – скорость обработки данных. О высокой скорости говорят все, но чаще речь идет о каких-то специальных бенчмарках. Мы же имеем опыт реальных внедрений сложных решений с огромными скоростями обработки для таких компаний как WalMart, Bank of America, Bank of China, Сбербанк. Кроме того, у нас есть особая услуга: специальный дата-центр, имеющий 114 высокопроизводительных процессорных ядра, 3 ТБ оперативной памяти, 24 ТБ SSD емкости, который смонтирован в передвижном ящике весом в 120 кг. Мы можем поставить его у заказчика на пару недель, чтобы он смог проверить и оценить его работу. Да, и часто клиенты не хотят отдавать ее обратно.

Наконец, стоит отметить, что, хотя продукты SAS и стоят немало, для наших клиентов цены конкретных решений, как правило, не играют решающей роли – они больше смотрят на то, какие выгоды они получат от внедрения. Это может быть повышение рентабельности, снижение издержек или повышение скорости реагирования, что тоже повышает эффективность. Впрочем, если цена кажется излишней или заказчик пока не понимает, выгодным ли для него окажется использование наших решений, можно начать с облачных сервисов на платформе SAS – порог вхождения для них куда ниже, но при этом можно в полной мере оценить наши возможности.


Уже сейчас с решениями SAS работают ведущие предприятия во многих отраслях. SAS преподают в крупнейших вузах – спецкурсы, куда могут прийти все желающие, есть в МГУ, ВШЭ, МИФИ, МГТУ им. Баумана, МЭИ, МИИТ и др. Мы регулярно проводим набор на стажерскую программу, причем она расширена и на наших клиентов – всем нужны люди со знанием SAS.

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

Беспрецедентная совместимость последовательных интерфейсов

На протяжении более 20 лет параллельный шинный интерфейс был самым распространенным протоколом обмена данных для большинства систем хранения цифровых данных. Но с ростом потребности в пропускной способности и гибкости систем стали очевидными недостатки двух самых распространенных технологий параллельного интерфейса: SCSI и ATA. Отсутствие совместимости между параллельными интерфейсами SCSI и ATA — разные разъемы, кабели и используемые наборы команд — повышает стоимость содержания систем, научных исследований и разработок, обучения и квалификации новых продуктов.

На сегодняшний день параллельные технологии пока еще устраивают пользователей современных корпоративных систем с точки зрения производительности, но растущие потребности в более высоких скоростях, более высокой сохранности данных при передаче, уменьшении физических размеров, а также в более широкой стандартизации ставят под сомнение способность параллельного интерфейса без излишних затрат поспевать за быстро растущей производительностью ЦПУ и скоростью накопителей на жестких дисках. Кроме того, в условиях жесткой экономии, предприятиям становится все труднее изыскивать средства на разработку и содержание разнотипных разъемов задних панелей серверных корпусов и внешних дисковых массивов, проверку на совместимость разнородных интерфейсов и инвентаризацию разнородных соединений для выполнения операций «ввод/вывод».

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

Представляем SAS и SATA

Последовательные технологии, такие как Serial ATA (SATA) и Serial Attached SCSI (SAS), позволяют преодолеть архитектурные ограничения, присущие традиционным параллельным интерфейсам. Свое название эти новые технологии получили от способа передачи сигнала, когда вся информация передается последовательно (англ. serial), единым потоком, в отличие от множественных потоков, которые используются в параллельных технологиях. Главное преимущество последовательного интерфейса заключается в том, что, когда данные передаются единым потоком, они движутся гораздо быстрее, чем при использовании параллельного интерфейса.

Последовательные технологии объединяют многие биты данных в пакеты и затем передают их по кабелю со скоростью, в 30 раз превышающей скорость параллельных интерфейсов.

SATA расширяет возможности традиционной технологии ATA, обеспечивая передачу данных между дисковыми накопителями со скоростью 1,5 Гбайт в секунду и выше. Благодаря низкой стоимости в пересчете на гигабайт емкости диска SATA будет оставаться господствующим дисковым интерфейсом в настольных ПК, серверах начального уровня и сетевых системах хранения информации, где стоимость является одним из главных соображений.

Технология SAS, преемница параллельного интерфейса SCSI, опирается на проверенную временем высокую функциональность своего предшественника и обещает значительно расширить возможности современных систем хранения данных масштаба предприятия. SAS обладает целым рядом преимуществ, не доступных традиционным решениям в области хранения данных. В частности, SAS позволяет подключать к одному порту до 16 256 устройств и обеспечивает надёжное последовательное соединение «точка-точка» со скоростью до 3 Гб/с.

Кроме того, благодаря уменьшенному разъему SAS обеспечивает полное двухпортовое подключение как для 3,5-дюймовых, так и для 2,5-дюймовых дисковых накопителей (раньше эта функция была доступна только для 3,5-дюймовых дисковых накопителей с интерфейсом Fibre Channel). Это очень полезная функция в тех случаях, когда требуется разместить большое количество избыточных накопителей в компактной системе, например, в низкопрофильном блэйд-сервере.

SAS улучшает адресацию и подключение накопителей благодаря аппаратным расширителям, которые позволяют подключить большое количество накопителей к одному или нескольким хост контроллерам. Каждый расширитель обеспечивает подключение до 128 физических устройств, каковыми могут являться другие хост контроллеры, другие SAS расширители или дисковые накопители. Подобная схема хорошо масштабируется и позволяет создавать топологии масштаба предприятия, с лёгкостью поддерживающие многоузловую кластеризацию для автоматического восстановления системы в случае сбоя и для равномерного распределения нагрузки.

Одно из важнейших преимуществ новой последовательной технологии заключается в том, что интерфейс SAS будет также совместим с более экономичными накопителями SATA, что позволит проектировщикам систем использовать в одной системе накопители обоих типов, не тратя дополнительные средства на поддержку двух разных интерфейсов. Таким образом интерфейс SAS, представляя собой следующее поколение технологии SCSI, позволяет преодолеть существующие ограничения параллельных технологий в том, что касается производительности, масштабируемости и доступности данных.

Несколько уровней совместимости

Физическая совместимость

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

Набор команд SATA является подмножеством набора команд SAS, что обеспечивает совместимость устройств SATA и контроллеров SAS. Однако SAS накопители не могут работать с контроллером SATA, поэтому они снабжены специальными ключами на разъёмах, чтобы исключить вероятность неверного подключения.

Кроме того, сходные физические параметры интерфейсов SAS и SATA позволяют использовать новую универсальную заднюю панель SAS, которая обеспечивает подключение как накопителей SAS, так и накопителей SATA. В результате отпадает необходимость в использовании двух разных задних панелей для накопителей SCSI и ATA. Подобная конструктивная совместимость выгодна как производителям задних панелей, так и конечным пользователям, ведь при этом снижаются затраты на оборудование и проектирование.

Совместимость на уровне протоколов

Технология SAS включает в себя три типа протоколов, каждый из которых используется для передачи данных разных типов по последовательному интерфейсу в зависимости от того, к какому устройству осуществляется доступ. Первый — это последовательный SCSI протокол (Serial SCSI Protocol SSP), передающий команды SCSI, второй — управляющий протокол SCSI (SCSI Management Protocol SMP), передающий управляющую информацию на расширители. Третий — туннельный протокол SATA (SATA Tunneled Protocol STP), устанавливает соединение, которое позволяет передавать команды SATA. Благодаря использованию этих трех протоколов интерфейс SAS полностью совместим с уже существующими SCSI приложениями, управляющим ПО и устройствами SATA.

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

Выгоды совместимости

Совместимость SAS и SATA дает целый ряд преимуществ проектировщикам систем, сборщикам и конечным пользователям.

Проектировщики систем могут благодаря совместимости SAS и SATA использовать одни и те же задние панели, разъемы и кабельные соединения. Модернизация системы с переходом от SATA к SAS фактически сводится замене дисковых накопителей. Напротив, для пользователей традиционных параллельных интерфейсов переход от ATA к SCSI означает замену задних панелей, разъемов, кабелей и накопителей. К числу других экономичных преимуществ совместимости последовательных технологий следует отнести упрощенную процедуру сертификации и управление материальной частью.

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

Для конечных пользователей совместимость SATA и SAS означает новый уровень гибкости в том, что касается выбора оптимального соотношения цены и производительности. Накопители SATA станут наилучшим решением для недорогих серверов и систем хранения данных, в то время как накопители SAS обеспечат максимальную производительность, надежность и совместимость с управляющим ПО. Возможность модернизации с переходом от накопителей SATA к накопителям SAS без необходимости приобретать для этого новую систему значительно упрощает процесс принятия решения о покупке, защищает инвестиции в систему и снижает общую стоимость владения.

Совместная разработка протоколов SAS и SATA

20 января 2003 года Ассоциация производителей SCSI Trade Association (STA) и Рабочая группа Serial ATA (SATA) II Working Group объявили о сотрудничестве в целях обеспечения совместимости технологии SAS с дисковыми накопителями SATA на системном уровне.

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

Спецификация SATA 1.0 была утверждена в 2001 году, и сегодня на рынке представлены продукты SATA от различных производителей. Спецификация SAS 1.0 была утверждена в начале 2003 года, а первые продукты должны появиться на рынке в первой половине 2004 года.

Решение SAS® Customer Intelligence 360 для омниканального маркетинга

Логотип SAS

  • Решения
    • По отрасли
      • Банки
      • Коммуникации
      • Образование
      • Государственные организации
      • Здравоохранение
      • Страхование
      • Фармакология
      • Производство
      • Розничная торговля
      • Энергетика
      • Все отрасли
    • По технологии и теме
      • Продвинутая аналитика
      • Искусственный интеллект и Машинное обучение
      • Облачные вычисления
      • Клиентская аналитика
      • Управление данными
      • Противодействие мошенничеству и безопасность
      • Интернет вещей (IoT)
      • Открытая интеграция
      • Операционализация аналитики
      • Управление рисками
      • Все технологии и темы
    • По продукту
      • SAS Customer Intelligence 360
      • SAS Detection & Investigation
      • SAS Model Risk Management
      • SAS Visual Analytics
      • SAS Visual Data Mining & Machine Learning
      • SAS Model Manager
      • SAS Visual Forecasting
      • Все продукты
      • Бесплатные пробные версии
    • По роли
      • Разработчики
      • Соискатели
      • Начинающие пользователи
      • Партнеры
      • Малый и средний бизнес
      • Для студентов и преподавателей
      • Лидеры мнений
  • Попробовать / Купить
    • Бесплатные пробные версии
      • COVID-19 Data Discovery Environment
      • Event Stream Processing
      • SAS Viya для разработчиков
      • Машинное обучение SAS в облаке SAS Analytics
      • SAS Visual Analytics
      • SAS Visual Data Mining & Machine Learning
      • SAS Visual Statistics
      • Все пробные версии
    • Купить
      • Запросить демо
      • Запросить расчет стоимости ПО
      • Связаться с отделом продаж SAS
  • Почему SAS
    • Мнения исследователей
    • Награды компании
    • Руководство компании
    • Истории успеха
    • SAS Insights
    • Инновационный дизайн R&D
    • Новости и важные сообщения
    • Экосистема партнеров
    • Служба поддержки мирового уровня
  • Обучение
    • Обучение
      • e-Learning
      • SAS Academy for Data Science
      • Главная
      • My Training
    • Курсы
      • Программирование 1
      • SAS Enterprise Guide 1
      • Введение в SAS Enterprise Miner
      • SAS Visual Analytics
      • Администрирование SAS 9.4
      • Все курсы
    • Tips & Tricks
    • Вебинары
    • Training Points
    • Бейджи SAS Learn
    • Сертификация
      • Base Programming Specialist
      • Advanced Programming
      • Data Scientist
      • Statistical Business Analyst
      • Predictive Modeler
      • Все программы сертификации
    • Управление сертификацией
    • Книги
      • Для начинающих
      • Сертификация
      • Скидки
      • Скоро выйдут
      • Все книги
    • Начните изучать SAS
  • Документация
    • По продукту
      • Base SAS
      • SAS Enterprise Guide
      • SAS Enterprise Miner
      • SAS/STAT
      • SAS Studio
      • SAS Visual Analytics
      • Все продукты
      • Обновления ПО
    • Программирование
      • SAS 9.4 и SAS Viya
      • SAS 9.3 и ранние версии
    • Администрирование
      • SAS Viya
      • SAS 9.4 и ранние версии
    • Установка и Конфигурация
      • Центр установки
      • Системные требования
      • Совместимость со сторонним ПО
    • Технические документы
    • Вся документация
  • Поддержка
    • Поддержка Home
    • База знаний
      • Подсказки по инсталляции
      • Примечания к проблеме
      • Примечан

В чём понт SAS? — Хабр Q&A

Ох, сигейта нет на вас ;). Я видел отличную презентацию про отличия SAS и SATA у Игоря Макарова из Seagate. По стараюсь кратко и по существу.

Ответов несколько и с разных сторон.

1. С точки зрения протоколов, SAS — это протокол, направленный на максимальную гибкость, надежность, функциональность. Я бы сравнил SAS с технологией ECC для памяти. SAS — это с ECC, SATA — без. Примером могут служить следующие уникальные фичи (по сравнению с SATA).

— 2 полнодуплексных порта на устройствах SAS в отличие от одного полудуплексного у SATA. Это дает возможность строить отказоустойчивые много дисковые топологии в системах хранения данных.

— end-to-end data protection T.10. — набор алгоритмов SAS, позволяющий с помощью чексумм быть уверенным в том, что данные, подготовленные на запись без искажений записаны на устройство. И прочитаны и переданы на хост без ошибок. Эта уникальная функция позволяет избавиться от так называемых silent errors, то есть когда на диск пишутся ошибочные данные, но никто об этом не знает. Ошибки могут появиться на любом уровне. Чаще всего в буферах в оперативной памяти при приеме-передаче. Silent errors — бич SATA. Некоторые компании утверждают что на диске SATA объемом боле 500 ГБ вероятность повреждения данных хотя бы в одном секторе близка к единице.

— про мультипасинг говорили в предыдущих ответах.

— зонинг T.10 — позволяет разбить домен SAS на зоны (типа VLAN, если такая аналогия ближе).

— и многое-многое другое. Я привел только самые общеизвестные фичи. Кому интересно — читайте спецификации SAS/SATA

2. Не все SAS диски одинаковы. Есть несколько категорий SAS и SATA.

— т.н. Enterprise SAS — обычно 10K или 15K оборотов в минуту. Объемы до 1 ТБ. Используются для СУБД и критичных к скорости приложений.

— Nearline SAS — обычно 7.2K, объемы от 1 ТБ. Механика таких устройств похожа на Enterprise SATA. Но все равно два порта и другие прелести SAS. Используются в enterprise, где нужны большие объемы.

— Enterprise SATA, иногда RAID edition SATA — почти то же самое что и NL SAS, только однопортовый SATA. Чуть дешевле NL SAS. Объемы от 1 TB

— Desktop SATA — то что ставится в PC. Самые дешевые и самые низкокачественные диски.

Первые три категории можно ставить в массивы на контроллерах от LSI и Adaptec. Последний — нельзя категорически. Проблем не оберетесь потом. И не потому, что у нас картельный сговор, а потому, что диски проектируются под разные задачи. То есть 8×5 или 24×7, например. Есть также такое понятие как максимальная допустимая задержка, после которой контроллер считает диск умершим. Для десктопных дисков она в разы больше. Это значит, что под нагрузкой рабочие Desktop SATA будут «вываливаться» из массива.

Короче, ориентируйтесь на конкретные линейки под конкретные задачи. Лучше всего смотреть на сайтах производителей. Есть например специальные мало шумящие и мало греющиеся винты для домашней электроники.

Те же подходы и к SSD, но область еще на сформировавшаяся, поэтому много тонкостей. Здесь мы ориентируемся по параметрам. Хотя все, что сказано в п., справедливо и для SSD.

Системные требования | Поддержка SAS

SAS Logo

  • Решения
    • По отраслям
      • Сельское хозяйство
      • Банковское дело
      • Связь
      • Образование
      • Здравоохранение
      • Страхование
      • Науки о жизни
      • Производство
      • Государственный сектор
      • Малый бизнес
      • MISS

      • Все отрасли
    • По технологиям и темам
      • Расширенная аналитика
      • ИИ и машинное обучение
      • Облачные вычисления
      • COVID-19
      • Управление данными
      • Принятие решений
      • Анализ мошенничества и безопасности
      • Io0004T Интернет )

      • Marketing Analytics
      • Открытая интеграция
      • Операционная аналитика
      • Управление рисками
      • Все технологии и темы
    • По продуктам
      • SAS Viya
      • SAS Customer Intelligence 360 ​​
      • SAS Detection & Investigation n
      • SAS Model Manager
      • SAS Visual Analytics
      • SAS Visual Data Mining & Machine Learning
      • SAS Visual Forecasting
      • Все продукты
      • Пробные версии бесплатного ПО
    • По ролям
      • Разработчики 9000ek4
      • Поиск вакансий Пользователи

      • Партнеры
      • Малый и средний бизнес
      • Студенты и преподаватели
      • Лидеры идей
  • Попробовать / купить
    • Пробные версии бесплатного ПО
      • COVID-19 Среда обнаружения данных
      • Обработка потока событий SAS в облаке SAS
      • Машинное обучение SAS
    • Купить
      • Запросить демонстрацию
      • Запросить цену на программное обеспечение
      • Связаться с торговым представителем SAS
    • Partner Marketplace
  • Почему SAS
    • Analyst Company
    • 000
    • Руководство
    • Истории успеха клиентов
    • Лидерство в мыслях
    • Инновационный дизайн НИОКР
    • Новости и основные моменты
    • Экосистема партнеров
    • Службы поддержки мирового класса
  • Обучение
    • Обучение
      • Бесплатное обучение
      • Обучение

      • SAS Academy for Data Science
      • Все обучение
      • My Training
    • Курсы
      • Программирование 1
      • Программирование 2
      • SAS Enterprise Guide 1
      • SAS Programming for RUsers
      • SAS 9000 Viya Enablement Курсы
    • Форматы обучения
      • Электронное обучение
      • Интернет в реальном времени
      • Классы
      • Видеоуроки
      • Все форматы обучения
    • Вебинары
    • Сертификация
    • Программа
    • mer
    • Data Base Ученый
    • Статистический бизнес-аналитик
    • Predictive Modeler
    • Все сертификаты
  • Подготовка к экзаменам
  • Менеджер по сертификации
  • Книги
    • Для начинающих
    • Сертификация
    • Все книги
    • Все скидки

      Обучение

  • Документация
    • По продуктам
      • Base SAS
      • SAS Enterprise Guide
      • SAS Enterprise Miner
      • SAS / STAT
      • SAS Studio
      • SAS Visual Analytics
      • Изменения и изменения программного обеспечения
      • Все продукты
    • Программирование
      • SAS 9.4 & SAS Viya
      • SAS 9.3 и более ранние версии
    • Администрирование
      • SAS
      • SAS 9.4 и более ранние версии
    • Установка и настройка
      • Центр установки
      • Системные требования
      • Стороннее программное обеспечение
      • Технические документы
      • Вся документация
    • Поддержка
      • Главная страница поддержки
      • База знаний
        • Замечания по установке
        • Замечания по проблемам
        • Замечания по использованию

    ,

    вики по тегам sas — qaruQaruSite

    Переполнение стека

    1. Товары

    2. Клиенты
    3. Случаи использования
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Команды
      Частные вопросы и ответы для вашей команды

    3. предприятие
      Частные вопросы и ответы для вашего предприятия

    4. работы
      Программирование и связанные с ним возможности технической карьеры

    5. Талант
      Нанять технических талантов

    6. реклама
      Обратитесь к разработчикам по всему миру

    ,

Отправить ответ

avatar
  Подписаться  
Уведомление о