Преемственность версий SAS.

Странная картина наблюдается, когда вы пытаетесь подсоединиться через SAS Managment Console 9.3  или SAS Data Integration Stuido 4.4  к серверу SAS MetaData Server 9.2, а именно вы увидите следующее сообщение об ошибке:

Т.е из клиентов от SAS 9.3. вы не сможете подсоединиться к более старой версии SAS, а именно 9.2.

Обратное кстати не верно, т.е. из SAS Managment Console 9.2 и SAS Data Integration Stuido 4.2 вы сможете подсоединяться к SAS 9.3.

Таким образом при переходе на SAS 9.3 возможно на каких-то клиентских машинах потребуется переустанавливать клиентов SAS.

Кстати говоря SAS Enterprise Guide 5.1 отлично соединяться как с версией SAS 9.3, так и с версией SAS 9.2.

SAS connect to Oracle. Part 4. Hints.

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

Сегодня рассмотрим задачу использования Oracle Hints при обращении к БД Oracle из SAS.

Для этого вам потребуется всего лишь в строку соединения добавить следующие слова:

preserve_comments

А теперь рассмотрим примеры:
Пример довольно простой — мы хотим узнать сколько строк в некой таблице Oracle

1. Вариант (без preserve_comments)

Прошу обратить внимание на Log данного запроса из которого видно, что наш parallel hint был вычеркнут из запроса.

2. Вариант (c preserve_comments)

А в этом варианте видно, что выражение с hint дошло до oracle именно в том виде в котором мы написали.

P.S.

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

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

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

SAS connect to Oracle. Part 3. BULKLOAD.

В предыдущих примерах мы рассматривали задачу загрузки данных из Oracle в SAS.
Теперь же давай попробуем из положить из SAS в Oracle.

1. Data set.

В данном примере мы видим, что время выгрузки данных в Oracle существенно больше чем время загрузки, а именно более 2-х минут против 10 секунд загрузки.

 2. Proc sql.

Здесь также видим превышение 2-х минут.

3. Proc sql + BULKLOAD

В данном примере мы использовали опцию BULKLOAD и время выгрузки уменьшилось с более чем 2-х минут до 11 секунд.

P.S. Для работы параметра BULKLOAD вам необходимо чтобы стоял полный клиент Oracle, а именно в директории Oracle_HOMEproduct11.2.0client_1BIN находился файл: sqlldr.exe.
У меня изначально была поставлена легкая версия клиента и этот файл отсутствовал. Пришлось переставлять клиента.

SAS connect to Oracle. Part 2. Pass-Through.

Мы уже рассмотрели способ соединения с Oracle по средством libname.

Теперь рассмотрим способ Pass-Through или еще такой способ называют push down.

В данном случае выполняемый код «проваливается в базу данных» и обратно возвращается результат запроса.

Прошу обратить внимание, что время выгрузки идентично примерам из предыдущего поста и составляет чуть меньше 10 секунд.

А теперь добавим еще один параметр readbuff=100000 в строку соединения и получим:

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

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

SAS connect to Oracle. Part 1. Libname.

Сегодня рассмотрим способы взаимодействия SAS и Oracle.

Для начала нужно убедиться, что в вашу лицензию входит компонент SAS/ACCESS Interface to Oracle (сделать это можно запустив proc setinit; и убедиться что в перечне компонент есть описанный выше см предыдущий пост).

Есть несколько способов соединения:

Libname:

В таком случае можно обращаться к таблицам oracle следующими способами:

1. Data-set.

2. Proc sql.

Хочется отметь, что второй вариант более подходит для людей который изначально привыкли писать SQL запросы.

В следующем посте рассмотрим альтернативный способ соединения с БД Oracle.

Что входит в Вашу лицензию SAS?

Всем доброго времени суток.

Иногда возникает вопрос при работе с продуктами SAS что входит в лицензию или например когда заканчивается срок действия лицензии.

Ответ на данный вопрос легко получить с помощью следующей команды:

После запуска данный команды увидим в логах необходимую нам информацию:

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