Sas server is offline что значит
Начнем с основ. Как же работают устройства на технологи 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
Инициатор, соединенный с целевым устройством системой доставки данных, называют доменом. Любое 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 существует достаточно много, поэтому перечислим только наиболее часто используемые.
А теперь рассмотрим несколько типичных примеров организации хранения данных на SAS.
Пример первый, сервер хранения данных.
Дата-центр одной из российских Web 2.0-компаний
Процессоры и память в таких серверах задействуются не сильно. Второе – в мире Web 2.0, информация хранится географически распределено, несколько копий на различных серверах. Хранится 2-3 копии информации. Иногда, если она запрашивается часто, хранят больше копий для балансировки нагрузки. Ну и третье, исходя из первого и второго, чем дешевле – тем лучше. В большинстве случаев все вышесказанное приводит к тому, что используются Nearline SAS или SATA диски высокой емкости. Как правило, Enterprise-уровня. Это значит, что такие диски предназначены для работы 24x7 и стоят значительно дороже своих собратьев, использующихся в настольных PC. Корпус обычно выбирают такой, куда можно вставить побольше дисков. Если это 3.5’’, то 12 дисков в 2U.
Типичный 2U-сервер хранения данных
16-портовый SAS HBA
Пример второй, почтовый сервер Exchange. А также MDaemon, Notes и другие подобные сервера.
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). А путь, как мы уже знаем, бывает очень длинным.
Напоследок, хочется поделиться некоторыми сведениями о текущей адаптации SAS мировыми производителями оборудования. SAS сегодня – это стандарт де-факто для серверных систем и профессиональных рабочих станций. Серверные системы подавляющего большинства как A- так и B- брендов имеют в составе контроллеры SAS, как HBA, так и RAID. В области внешних систем хранения данных, основные производители оборудования (HP, EMC, NetApp, IBM) уже несколько лет как перевели внутренние архитектуры своих систем на SAS. Таким образом, диски Fibre Channel стали за последние пару лет настоящей экзотикой. Fibre Channel продолжает жить и развиваться, в основном, как способ подключения серверов к системам хранения данных, хотя в области Low-End, Mid-Range и профессиональных систем, SAS отвоевывает все большую долю.
На этом наш экскурс в мир истории и теории SCSI вообще и SAS в частности подошел к концу, и в следующий раз я расскажу вам более подробно о применении SAS в реальной жизни.
Like most SAS users and administrators, you usually don't know where your backend SAS servers are located--probably in some basement server farm or perhaps another building or even another town. But I'm sure you do know that your SAS client application must have a way to reach services running on those hosts. But what happens if the server fails? How will your application find the lost server? How can a grid-enabled SAS servers be configured to cause the least disruption to services?
Let's review what we know about client applications and their communication with host servers:
- The SAS client applications must know the SAS server name (or at least an alias) and port where services are listening.
- The SAS client applications store the SAS server name and port for services that are required in configuration files or in metadata.
For most grid-enabled installations, when a SAS server is taken offline or fails to start, those services are protected by failover mechanisms and restarted on a different server. If server names and identities are stored in the client application or metadata, how can the connection be restored? Well, as SAS administrator, you have to manually update the SAS client application’s configuration information or SAS Metadata definitions with the new location—not an easy task for a business user and not manageable for large enterprises.
There are two solutions to enable client applications to access lost services regardless of whether the service is running on a primary or a failover server:
- a hardware solution using a virtual IP switch or IP load balancer
- a software solution using DNS resolution
In this post, I'd like to detail more about a hardware solution for avoiding lost servers!
Структура программы 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.
Ошибка будет выглядеть следующим образом:
- Непарные кавычки. В SAS Base можно использовать одинарные и двойные кавычки, которые должны быть парными.
Итак, это кратко об интерфейсе SAS UE, терминологии SAS Base и основных требованиях к синтаксису SAS Base. В следующей статье мы рассмотрим библиотеки SAS и их создание, создание детализированных отчетов, рассмотрим форматирование значений и задание постоянных атрибутов переменным.
Уверена, что работа с SAS окажется интересной и увлекательной. Grow with SAS!
В предыдущей статье мы познакомились с интерфейсом SAS UE, терминологией SAS Base, типами данных, основными требованиях к синтаксису SAS Base, а также рассмотрели распространенные синтаксические ошибки.
Сегодня я расскажу, как можно получить доступ к данным различных форматов. Обратите внимание, что в данной статье имеются ссылки на документацию, которая поможет вам подробнее ознакомиться с рассматриваемыми примерами.
Назначаем пользовательскую библиотеку.
Рассмотрим простой случай назначения библиотеки: наборы данных SAS находятся в одной директории c:\habrahabr. Есть два способа решения этой задачи.
Advantages of a hardware solution
The advantages of a virtual IP switch are evident:
- It provides a single virtual IP address for critical applications to clients.
- It provides quick failover because switching incoming traffic to the failover host is nearly instantaneous.
- SAS clients don’t need to know where applications are running.
This solution may be more expensive, since organizations have to purchase and maintain additional hardware. Additionally, to avoid that the virtual IP switch itself becoming a single point of failure, the installation would be required to have at least two of them.
In my next post, I’ll show how to achieve the same result with a software implementation. Stay tuned!
Sas7bdat и данные
Начнем с того, что SAS Base работает только с особым форматом данных, который называется SAS Data Set (набор данных SAS). Но помимо всего прочего SAS является очень гибким инструментом и может считывать практически любые данные, преобразовывая в SAS Data Set. Набор данных SAS представляет собой обычную плоскую таблицу, состоящую из строк и столбцов. Набор данных 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 имеет такие данные, как тип переменной, длину, имя, ярлыки, форматы, называемые атрибутами набора данных.
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.
Переменные и атрибуты
У переменных в SAS есть ряд атрибутов, давайте познакомимся с некоторыми из них.
Длина переменной — это количество байт, приходящихся на один символ.
Данный код демонстрирует вышеизложенное:
Имена переменных, как и наборов данных, задаются самостоятельно. Есть ряд правил именования переменных SAS:
- Имена не должны превышать 32 символов.
- Имена должны начинаться только с буквы или символа нижнего подчеркивания.
- Имена могут содержать только буквы, цифры или символы нижнего подчеркивания.
- В именах переменных нельзя использовать специальные символы, в том числе и пробел.
- Имена могут содержать как прописные, так и строчные буквы, так как SAS не чувствителен к регистру при именовании сущностей (переменные, наборы данных, библиотеки и так далее). Обращаться в коде к переменной вы можете в любом регистре. Но! Важно то, что SAS запоминает первое появление названия переменной в программе и при формировании отчета использует именно его.
В последующих статьях мы подробнее познакомимся с атрибутом формат.
Ярлык переменной используется в отчетах вместо имен переменных. Ярлык может содержать до 256 символов, включая специальные символы, в том числе и знак пробела. В последующих статьях мы рассмотрим, виды ярлыков и как они используются в программном коде, а также приемы, когда в имени переменной может быть использован, например, пробел.
Leave A Reply Cancel Reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Привет! Я Анна Добрыченко, преподаватель учебного центра SAS в России: провожу тренинги по программированию на SAS Base, использованию SAS Enterprise Guide и SAS Visual Analytics, участвую в подготовке стажеров. Вся техническая документация и статьи продуктов и решений SAS изложены на английском языке, а локализованного материала в Рунете недостаточно.
Поэтому в нашем блоге на Хабрахабре я расскажу об основах программирования на SAS Base в цикле статей.
Язык SAS Base представляет собой основу большинства этих продуктов и решений SAS, именно ему и будут посвящены статьи. В них я познакомлю с терминологией, типами данных, с которыми работает SAS Base, со структурой кода, написанного на SAS Base, и покажу основные приемы, которые используются при написании программ SAS.
Connection sequence with IP switch with failover
Now let's look and the connection sequence when one of the servers in the configuration fails, for example, sgcwin071. The grid has been configured to restart the SAS Metadata Server on the failover server, in this example, SGCWIN072.
The SAS Management Console client application runs follows the same connection pathway as always; however, the virtual IP switch recognizes that port 5555 is open on sgcwin072, not sgcwin071. Therefore, the switch forwards connection requests for 10.0.0.2 to IP address 123.456.78.91.
The end user does not know, but now the application has reached a different server! There's no disruption in service, and no action required by the SAS administrator.
2 вариант
(с использованием опции split=)
В опции split= указывается разделитель (обязательно в кавычках). Код в данном случае выглядит следующим образом (обратите внимание на использование разделителей в операторе Label):
Оператор TITLE задает заголовок в отчете, оператор FOOTNOTE задает нижний колонтитул.
Как и в случае оператора LIBNAME, данные операторы являются глобальными и действуют во время всего сеанса SAS до тех пор, пока вы не переопределите их значения. Вы можете использовать TITLE и FOOTNOTE как вне шагов PROC, так и непосредственно в них.
Общий синтаксис операторов:
Text-string – данный аргумент является строкой, которая может содержать до 512 символов. Вам необходимо заключать такие строки в одиночные или двойные кавычки. Текст отображается точно так же, как вы вводите его в операторе, включая прописные, строчные буквы и пробелы.
Также для настройки заголовков и нижних колонтитулов можно использовать стили:
Итак, возвращаясь к разрабатываемому отчету:
Результат выполнения программы:
Формат – это правило вывода значений переменных в отчет. Необходимо понимать, что формат не меняет значения в наборе данных SAS. Типы форматов соответствуют типу данных, но разбиты на категории: числовые, символьные, даты, время, дата-время.
Всю информацию о форматах можно найти в справочнике SAS 9.4 Formats and Informats: Reference. Также поддерживается возможность создания пользовательских форматов, об этом мы поговорим в следующих статьях.
Общий синтаксис оператора FORMAT.
variable – одна или несколько переменных, к которым небходимо применить формат.
DEFAULT=default-format – определяет временный формат по умолчанию для отображения значений переменных, которые не указаны в операторе FORMAT, используется в шаге DATA.
format – определяет формат, который используется для отображения переменных.
Общий синтаксис использованиея формата в операторе FORMAT следующий:
$ — признак текстового формата
Format – название формата
w — ширина формата, количество всех выводимых символов в значении
d — количество десятичных знаков
Формат всегда оканчивается на точку или на количество десятичных знаков. Стоит отметить, что при неверном выборе ширины формата значения в выводе могут «обрезаться». Давайте рассмотрим пример:
Значение переменной | Формат | Результат |
---|---|---|
34566.78 | DOLLAR10.2 | $34,566.78 |
34566.78 | DOLLAR9.2 | $34566.78 |
34566.78 | DOLLAR8.2 | 34566.78 |
34566.78 | DOLLAR7.2 | 34566.8 |
34566.78 | DOLLAR6.2 | 34567 |
34566.78 | DOLLAR4.2 | 35E3 |
При этом значение в наборе данных SAS остается неизменным:
Результат выполнения шага:
Отчет выглядит следующим образом:
Для группировки переменных используется оператор BY. Группировка переменных по определенным значениям подразумевает сортировку таблицы. Это связано с обработкой данных SAS Base.
Отсортировать набор данных можно с помощью процедуры PROC SORT.
При сортировке набора данных вам необходимо указать источник (исходный набор данных), группирующую переменную или переменные, а также при необходимости выходной (промежуточный) набор данных.
Давайте проверим вышеизложенное. Если посмотреть на отчет, выводимый в п.7 данной статьи, столбец Gender отсортирован по полу по убыванию. Так ли это?
Результат выполнения процедуры представлен ниже:
Таким образом, мы получили требуемый детализированный отчет на основании набора German в библиотеке Sasuser.
Руфат, я предполагаю что может от провайдера зависит? Где-то кто-то что-то заблочил. Из за наших умников в правительстве
не нада ничего скачивать, половмна из перечисленных так называемых спозобов попасть в гарену, это всё вирусняки!!
Создаем детализированные отчеты.
После получения доступа к требуемым данным рассмотрим процедуру для создания отчетов PROC PRINT. Подробную информацию о ней можно получить в справочнике SAS 9.4 Procedures by Name and Product. Распечатаем детализированный отчет, используя таблицу German из системной библиотеки sasuser.
Для начала изучим дескриптор указанной таблицы, нас интересуют атрибуты столбцов:
Фрагмент вывода процедуры:
Создадим детализированный отчет, удовлетворяющий представленным ниже требованиям:
-
Не включайте переменные Change и Retain в отчет:
Оператор VAR определяет переменные для печати. Оператор выводит их в том порядке, в котором вы их перечислили.
В данном условии нам необходимо использовать фильтр в операторе WHERE.
Обратите внимание, что при работе с текстовыми переменными важен регистр, а также вы обязательно заключаете требуемое значение в парные кавычки (двойные или одинарные).
Вывод данной программы SAS:
По умолчанию процедура PROC PRINT выводит номера строк, для того, чтобы убрать данный столбец, можно использовать опцию NOOBS (‘no observation’). В этом случае программный код выглядит следующим образом:
Операторы сравнения вы можете записывать привычными символами, а можете использовать мнемоники, как представлено в примере. Вывод данной программы представлен ниже:
Идентификатором наблюдения можно определить любую переменную. Когда вы указываете одну или несколько переменных в операторе ID, он использует форматированные значения этих переменных для идентификации строк. Обратите внимание, что если одновременно переменная указана в операторе VAR и в операторе ID, то она выведется два раза. Также при использовании оператора ID нет необходимости в опции NOOBS.
В нашем случае программа SAS будет иметь следующий вид:
Результаты выполнения кода представлены ниже:
Стоит отметить, что при задании атрибутов таких как ярлык и формат, они будут использованы только на определенном шаге PROC для создания требуемого отчета.
Для задания ярлыка используется оператор LABEL.
Общий синтаксис оператора LABEL выглядит следующим образом:
В ярлыке вы можете использовать любые символы, в том числе и пробелы, количество символов не должно превышать 256. Ярлыки переменных будут использованы для создания отчетов.
Не все процедуры «видят» ярлыки. Для того, чтобы процедура PROC PRINT выводила в отчет ярлыки, а не имена переменных, в опциях необходимо указать label (или split=). Опция SPLIT указывает разделитель, который контролирует разрывы в заголовках столбцов. Используем оператор LABEL в нашем программном коде:
Connection sequence with a virtual IP switch
The virtual IP switch, or IP load balancer, is a hardware device that serves as an intermediary between a client application and the services running on the grid. In effect, they help decouple the grid operation from the physical structure of the grid. When the client application wants to connect to the service, it connects to the load balancer, which then redirects the request to the appropriate host machine running the service. Common IP switches on the market include Cisco, F5 BIG-IP or Barracuda Load Balancer.
Here's the connection sequence between SAS Management Console and SAS Metadata Server with a virtual IP switch in place:
- SAS Management Console makes a request to connect to the SAS Metadata Server on meta_alias on port 5555.
- The networking software determines the physical IP address for the meta_alias name, which is actually an alias setup pointing to the virtual IP switch, and returns it to SAS Management Console.
- SAS Management Console sends the connection request to the virtual IP switch for the IP address: 10.0.0.2.
Normal connection sequence
Finding the IP address for a server name is referred to as resolving the IP address and is built into the operating system’s networking software. Let’s see what happens under the covers when a client such as SAS Management Console tries to resolve the SAS Metadata Server's name.
2 способ:
Назначить библиотеку программным путем. Назначение библиотеки SAS реализуется с помощью глобального оператора LIBNAME. Информацию по указанному оператору можно изучить в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation / Global Statements.
Рассмотрим общий синтаксис глобального оператора LIBNAME.
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 только для чтения:
Запустим код и проверим Log:
Добываем инструменты
Научиться программировать на SAS Base можно на бесплатном интерфейсе под названием SAS University Edition или сокращенно SAS UE.
При запуске программы или задачи SAS Studio подключается к серверу SAS для обработки кода. Сервер SAS может быть размещен в облачной среде, локальной среде или же на локальном компьютере. После обработки кода результаты возвращаются в SAS Studio в вашем браузере.
SAS Studio поддерживает несколько веб-браузеров: Microsoft Internet Explorer, Apple Safari, Mozilla Firefox, and Google Chrome.
Что такое библиотеки SAS?
Библиотека в SAS – это метод централизованного хранения и прозрачного использования данных в программах SAS. Библиотека может быть папкой или каталогом на вашем компьютере или располагаться на внешнем жестком диске, FLASH-накопителе или компакт-диске и так далее.
Существует два типа библиотек: постоянные и временные. Постоянные библиотеки SAS сохраняются до тех пор, пока вы их не удалите. Постоянная библиотека доступна для обработки в последующих сеансах SAS. Временная библиотека SAS существует только для текущего сеанса SAS.
Файлы SAS, созданные во время сеанса, хранятся в специальном рабочем пространстве, которое может быть или не быть внешним носителем. Это рабочее пространство обычно назначается по умолчанию с именем Work. Файлы во временной рабочей библиотеке могут использоваться на любом шаге в программе SAS, но они не доступны для последующих сессий SAS. Файлы, хранящиеся в рабочей библиотеке, удаляются в конце сеанса SAS.
3 Comments
How is the health check implemented from the load balancer? I've seen this done on other services where a specific connection string is sent from the load balancer, tcp portt 5555 , to return a specific value back to the load balancer. The return value would enable the load balancer to determine which server is best able to return the traffic requests from the client.
Просматриваем содержимое библиотеки SAS.
Один из вариантов просмотра содержимого библиотеки – использование процедуры PROC CONTENTS. Ознакомиться с процедурами, используемыми в SAS, можно в справочнике SAS 9.4 Procedures by Name and Product.
Процедура PROC CONTENTS позволяет создавать вывод, который описывает либо содержимое библиотеки SAS, либо информацию дескриптора для отдельного набора данных SAS. Чтобы просмотреть содержимое библиотеки SAS, мы можем использовать следующую общую форму процедуры:
Параметр NODS (который означает «no details») подавляет печать подробной информации о каждом файле при указании опции _ALL_.
Для конкретной библиотеки код будет выглядеть следующим образом:
Фрагмент вывода процедуры:
Обратите внимание, что в библиотеке также хранятся другие типы файлов, например catalog, index. О них можно прочитать в справочнике SAS 9.4 Companion for Windows, Fifth Edition.
Файлы с member type DATA являются стандартными наборами данных SAS. Второй вариант просмотра содержимого библиотеки – использовать процедуру PROC DATASETS:
Просмотр информации о конкретном наборе данных SAS реализуется следующим образом:
Обратите внимание на обращение к таблице в пользовательской библиотеке. Имя после data= двухуровневое: имя_библиотеки.имя_таблицы. В случае набора данных, хранящемся во временной библиотеке WORK, в обращении после data= можно использовать одноуровневое имя.
Например, в случае кода:
выведется информация о наборе данных charities, находящемся во временной библиотеке WORK.
Рассмотрим вывод процедуры для набора данных charities в пользовательской библиотеке HABR:
Служебная информация о таблице, получаемая в результате вывода, называется дескриптором.
Дескриптор содежит общую информацию о наборе данных: его название и имя библиотеки, типе, «движке», дате и времени создания и последнего изменения, количестве наблюдений и переменных, общей длине наблюдений, индексах, сортировке, сжатии, размере страницы и их количестве, информацию об атрибутах переменных.
Читаем электронные таблицы.
Чтение файла EXCEL можно реализовать несколькими способами. В этой статье мы рассмотрим назначение библиотеки для файла excel.
Для назначения библиотеки SAS будем использовать электронную таблицу products.xlsx, хранящуюся в директории c:\workshop\habrahabr\products.xlsx. Данный документ выглядит следующим образом: он содержит 4 листа, каждый из которых станет отдельным набором данных SAS. Фрагмент данного документа представлен ниже:
Общий синтаксис назначения библиотеки такой же, как и в случае наборов данных SAS, меняется только механизм подключения:
Существует несколько механизмов для обработки файла excel, у всех свои особенности и настройки, с которыми можно ознакомиться в документации.
Результат выполнения оператора libname представлены ниже. Фрагмент Log:
Информацию о библиотеке посмотрим через процедуру PROC CONTENTS:
В зависимости от механизма дескриптор заполняется по-разному:
Результат выполнения оператора LIBNAME представлены ниже. Фрагмент Log:
Информацию о библиотеке посмотрим через PROC CONTENTS:
В зависимости от механизма дескриптор заполняется по-разному:
Результат выполнения оператора libname представлены ниже.
Информацию о библиотеке посмотрим через PROC CONTENTS:
В зависимости от механизма дескриптор заполняется по-разному:
About Author
Edoardo Riva is a Principal Technical Architect in the Global Enablement and Learning (GEL) Team within SAS R&D's Global Technical Enablement Division.
Разбираемся в интерфейсе
Немного о том, как выглядит интерфейс SAS UE.
Слева находится панель навигации, справа – рабочая область. Три основные вкладки рабочей области – «Код», «Журнал», «Результаты».
Справка по синтаксису появляется, как только вы уменьшаете список релевантных ключевых слов. Справка по синтаксису также появляется, если щелкнуть правой кнопкой мыши на ключевое слово в программе и выбрать Syntax Help (Справка по синтаксису).
Можно перейти на страницу документации по той или иной процедуре, кликнув на ссылку «Документация по продукту».
На вкладке «Выходные данные» вы можете увидеть созданные таблицы.
На вкладке «Результаты» вы можете просматривать вывод процедур, создающих отчеты.
Если какая-то часть программы используется часто, ее можно добавить во «Фрагменты кода».
Вы можете открыть справку (SAS Help) и документацию прямо из главной панели инструментов. SAS Studio Help (Справка SAS Studio) для перехода на страницу документации по SAS Studio. Эта веб-страница содержит справку по интерфейсу SAS Studio.
Если вы только начали изучать продукты SAS, то наверняка незнакомы с некоторыми особенностями терминологии, используемой в продуктах компании.
1 вариант
Вводная
Есть несколько вариантов изучить основы программирования на SAS Base.
- Прочитать документацию: все решения SAS хорошо задокументированы, чтобы пользоваться ими было легко даже новичку. Все справочники находятся на сайте поддержки. Из плюсов стоит отметить, что найти можно все, что интересует бесплатно, из минусов – долго, и вся информация на английском языке.
- Посмотреть бесплатный онлайн-курс в формате e-Learning. Плюсы – все подробно разъясняется с примерами и выполнением практических упражнений, минусы – долго (длительность 24 часа), курс на английском языке. Также можно посмотреть видео SAS на Youtube.
- Купить книгу, например, Little SAS Book. Книга знакомит начинающих пользователей с языком SAS Base, содержит практические примеры и упражнения. Но опять же, вся литература, выпускаемая SAS, на английском языке и имеет относительно высокую стоимость. Все книги представлены на официальном сайте SAS в разделе «Обучение», также можно воспользоваться ресурсом Amazon. Но если вы студент и участвуете, например, в нашей стажерской программе, то вам могло повезти и вы получили книгу в подарок, что не может не радовать.
- Прочитать наш курс статей, освящающий основы программирования на SAS Base. Эти статьи адресованы новым пользователям SAS, работающим в различных сферах бизнеса, по большому счету для всех, кто собирается проводить анализ данных с помощью решений SAS или писать свои программы на SAS Base.
Читайте также: