Руководство по SAS Enterprise Чтение незафиксированных в Query Builder

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

Есть ли способ сделать это в SAS Enterprise Guide? Я знаю, что в меню «Параметры» есть место для запуска пользовательского кода перед кодом задачи и запроса, но я не знаю, что здесь ввести, чтобы это произошло.

Спасибо!


person RVD5Star    schedule 01.05.2018    source источник
comment
Что вы запрашиваете — наборы данных SAS, SQL Server, Hadoop и т. д.? И как это определено в SAS — используете ли вы библиотеку, определяемую метаданными? Или вы сами определяете библиотеку или соединение?   -  person Joe    schedule 01.05.2018
comment
Это для запроса SQL-сервера; Я добавил подключения к моему администратору ODBC в Windows, а затем запускаю автоматический код при подключении к серверу для определения библиотек (если это имеет смысл). Извините, если это не так - я все еще новичок в SAS.   -  person RVD5Star    schedule 01.05.2018
comment
То, что вы делаете, звучит правильно. Пожалуйста, предоставьте скриншот или более подробную информацию о том, что вы делаете в своем проекте EG. Я дам первоначальный ответ на ваш вопрос.   -  person momo1644    schedule 01.05.2018


Ответы (2)


Ответ - зависит. Часть, в которой вы принудительно выполняете незафиксированное чтение, настраивается в определении имени библиотеки. Если ваше имя библиотеки определено в метаданных, то нет - вы не можете сделать это в EG (по крайней мере, без использования мастера), вам понадобится менеджер библиотек в SMC или DI studio.

Если ваше имя библиотеки определено программно, то синтаксис зависит от того, какую базу данных вы используете. Для SQL Server вам необходимо добавить следующую опцию: Read_Isolation_Level=RU.

Обратите внимание, что это может означать, что вы читаете «грязные данные» (см. -it-improve-performance-or/td-p/160936" rel="nofollow noreferrer">thread).

person Allan Bowe    schedule 01.05.2018
comment
Код, который загружается при подключении к серверу (из параметров в sas), выглядит следующим образом: %include "y:\autoexec.sas"; Этот файл включает следующее подключение: libname MS_SQL ODBC datasrc="MS SQL Server Connection" schema=dbo; Могу ли я добавить Read_Isolation_Level=RU в конец, чтобы получить то, что я ищу? libname MS_SQL ODBC datasrc="MS SQL Server Connection" schema=dbo Read_Isolation_Level=RU; - person RVD5Star; 02.05.2018

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

  1. В вашем проекте EG: создайте новую программу: File/new/Program. Это добавит новую программу в ваш поток.
  2. Если имя библиотеки SQL называется «SQL», а таблица, которую вы хотите запросить, — «ORDERS»; вы используете PROC SQL, который очень похож на MS-SQL, затем нажмите «Выполнить» или «F8».

    proc sql; select id, sum(sales) as total_sales from SQL.ORDERS group by id ; quit;

Пример

Шаг 1:

шаг 1

Шаг 2: Шаг 2

Новая программа

Выполнить

person momo1644    schedule 01.05.2018