SAS Information Map StudioВВЕДЕНИЕЕще совсем недавно существовала (пожалуй, и сейчас существует) должность, имеющая название «информационный технолог», функциональные обязанности которой определяет работа с информацией. Это человек, который знает где, как и какая информация лежит, и как ее правильно взять, чтобы получить то, что надо. Функции автоматизации работы такого информационного технолога выполняет решение SAS Information Map Studio. Создав один раз информационную карту и сделав ее доступной нужному кругу сотрудников, такой специалист избавляется от необходимости объяснять каждому, что поле с поэтическим именем dfgfdfdf123 содержит остатки, приведенные к числу Х на дату У. (А ведь без этих знаний теряют свой смысл все накопленные в организации массивы данных!). Как сделать доступными пользовательские форматы ?В SAS Information Map Studio есть два пути, позволяющих сделать User-Defined Formats доступными. Первый заключается в том, чтобы поместить определенно названный каталог с форматами в директорию, назначенную LIBRARY libref, второй - определить каталог с форматами в системе FMTSEARCH, находящийся в конфигурационном файле SAS. Используя команду LIBRARY libref : Используя опцию FMTSEARCH: Как сделать SAS программы доступными как SAS Stored Processes в информационных картах?Чтобы использовать SAS программы для обновления или создания информационной карты,конвертируйте программу в SAS Stored Processи сделайте ее доступной для использования информационной картой. 1. Таблица и ее библиотека должны быть определены в метаданных перед тем, как таблица начнет использоваться в качестве источника информации для информационной карты. (По этой причине вы не можете начать использовать библиотеку Work). Libname source 'path-to-source-data'; - Используйте Data Library Manager (в SAS Management Console), SAS Data Integration Studio или SAS Metadata LIBNAME Engine, чтобы определить таблицу отчета и ее библиотеку в метаданных. Когда Вы устанавливаете libref для определения библиотеки, используйте тот, что вы выбрали в программе. Для образца, показанного выше, вы должны были выбрать libref STPOUT. 2. В программе вставьте значение *ProcessBody сразу после того, как %GLOBAL macro переменная объявлена. Этот комментарий необходим, когда программа ссылается на macro переменные (global или reserved) и stored process запускается на SAS Workspace Server. 3. Измените значение LIBNAME для вашей таблицы отчета, чтобы оно ссылалось на библиотеку Work workspace сервера. Теперь stored process создаст отчет в этой временной локации. *ProcessBody; 4. Сохраните программу. 5. Назначьте программу в метаданных как stored process (используя BI) Manager в SAS Management Console или SAS Enterprise Guide). Убедитесь, что завершение программы произойдет на workspace сервере и после сделайте тип output'a - NONE. Если вы используете global macro переменные в вашей программе и хотите использовать их для того, чтобы уточнить значения для пользователей, то добавьте stored process input параметр для каждой global macro переменной. 6. Пользуясь BI Manager, проверьте, есть ли у пользователей SAS Information Map Studio доступ ReadMetadata к stored process. Ограничение доступа к определенным столбцам, используя SAS Stored ProcessМожно использовать SAS Stored Process, чтобы ограничивать доступ пользователей information map к определенным рядам ячеек в таблице. Относящийся к Information Map, Stored process завершается до любого из запросов, которые создаются из этой Information Map. Следовательно, Stored process может быть использован, чтобы выполнить любой тип подвыборки данных, который должен произойти до запуска запроса. Для ограничения доступа к определенным строкам информации в вашей таблице Вы можете создать stored process, который фильтрует строки, поэтому запросы пользователя информационной карты будут касаться только оставшейся информации. Чтобы определить, кому ограничить доступ, воспользуйтесь _METAPERSON и _METAUSER reserved макро переменными в исходном тексте stored process (SAS program). Эти macro переменные являются системными и несут в себе метаданные пользователя (_METAPERSON) и логий (_METAUSER). Следующий пример описывает, как создать stored process, использующий _METAPERSON reserved macro переменную, чтобы ограничивать доступ к строкам. Созданный вами stored process должен включать в себя запрос, фильтрующий ID пользователей, которые не принадлежат пользовательский отчет. Обычный запрос выглядит следующим образом: Имена Employee_Name в таблице Organization_Dim используются как метаданные имен пользователей сотрудников (_METAPERSON). Воспользовавшись командой SELECT, вы можете определять ID сотрудника, который запускает отчет. SELECT Employee_ID FROM orstar.Organization_Dim AS o2 Включите подзапрос в структуру запроса, который вы создали, и вы получите: Employee_ID IN ( *ProcessBody; Как сделать детальные данные доступными для Drill-through?Можно использовать SAS OLAP Cube Studio или OLAP procedure для того, чтобы сделать детальные данные доступными в кубе. В SAS OLAP Cube Studio вы можете определить таблицу для drill-through, когда создаете или редактируете куб, пользуясь Cube Designer wizard как показано на рисунках ниже: Use input table for Drill-Through
Select table for Drill-Through from list
В функции PROC OLAP, используйте опцию DRILLTHROUGH_TABLE, чтобы определить имя drill-through table для использования. Больше информации об опции DRILLTHROUGH_TABLE можно найти в "PROC OLAP Statement", SAS OLAP Server: User's Guide. Как сделать детальные данные доступными на OLAP сервере?SAS библиотека должна быть определена так, чтобы OLAP сервер имел к ней доступ. Самый простой путь определить библиотеку - назначить ее в метаданных. Чтобы сделать библиотеку назначенной, нужно выполнить следующие шаги: 1. В Data Library Manager (находиться в SAS Management Console) найдите папку SAS Libraries и проделайте одно из следующих заданий, которое позволит вам выбрать дополнительные опции:
- для созданной библиотеки: откройте папку SAS Libraries и кликните правой кнопкой на желаемой библиотеке. Затем выберите Properties из меню и после закладку Options.
2. Кликните на Advanced Options. 3. Выберете пункт Library is pre-assigned, в закладке Pre-Assign. 4. В закладке Assign, New Library Wizard, убедитесь, что выделенный сервер - это сервер OLAP.
5. Нажмите OK в диалоговом окне properties, или закончите вводить информацию wizard. 6. Перезагрузите OLAP сервер. Выбранная библиотека будет назначена после перезагрузки. После того, как сервер вновь запустится, убедитесь, что библиотека назначена к правильному SAS OLAP серверу. Как сделать детальные данные доступными для информационной карты?Чтобы сделать отчет с возможностью drill-through, сначала эта опция должна быть выставлена в информационной карте. Вы можете сделать это одним из двух способов: Как сделать подписи колонок для Drill-Through таблиц доступными?Если Вы хотите видеть подписи колонок при совершении операции drill through, Вам необходимо выставить опцию в Server Manager (SAS Management Console). Прежде, чем Вы сможете сделать подписи доступными, Вы должны убедиться, что SAS 9.1.3 Service Pack 4 установлен. (См. "Upgrading Repository Metadata" в Metadata Manager Help, SAS Management Console). После того, как метаданные модернизированы, проделайте следующие шаги, чтобы сделать подписи колонок доступными: 1. В навигационной ветке Server Manager'а, найдите строку, показывающую ваш физический OLAP сервер.
4. В окне Advanced Options выберите закладку Server, затем отметьте пункт Use the drill-through table column labels. 5. Нажмите ОK, чтобы сохранить параметры. Как просмотреть детальные данные для Большого Куба?Если ваш куб несет в себе очень большое количество детальных данных, тогда, чтобы просмотреть эти данные в рамках Information Map Studio, Вам придется увеличить Java heap size для SAS Information Map Studio или увеличить максимальное число drill-through строк, которое может поддержать ваш SAS OLAP сервер. Подробнее об увеличении heap size, см. "Increase the Java Heap Size for SAS Information Map Studio". 1. В навигационной ветке Server Manager'а найдите строку, показывающую ваш физический OLAP сервер.
2. Выберите сервер и File > Properties из меню. Советы по созданию Information Maps Как создать фильтр для Measure (Меры), Category (Измерения) или Column (Колонки)?Когда Вы создаете фильтр в SAS Information Map Studio, Вы можете определить подмножество категорий, мер и колонок таблицы в выражении фильтра. Чтобы скрыть фильтр от пользователей SAS Web Report Studio, используйте только табличные колонки в выражении фильтра, так как SAS Web Report Studio не показывает фильтры, основанные только на табличных колонках. Содержание выражения фильтра устанавливает тип SQL команд, созданных для фильтра. Таблица сделок (ORDER_FACT), которая включает в себя продажи продуктов компании. Таблица включает в себя следующие колонки: ORDER_FACT соединен с PRODUCT_DIM в колонке Product_ID. Сценарий: Фильтр данных после объединения Вы хотите установить, какие продукты вашей компании полезны. Кликните Edit в закладке Definition в диалоговом окне Data item Properties, чтобы открыть окно Expression Editor. Используйте колонки Total_Retail_Price, CostPrice_Per_Unit и Quantity, чтобы создать множество данных measure, под названием Gross Profit, которое вычисляет валовую прибыль из продаж продукта.
В закладке Classifications/Formats в диалоговом окне Data Item Properties выберем Measure, как классификацию элемента и SUM(argument), как объединяющую функцию.
После того, как Вы создали элемент данных, создайте фильтр, который проверит валовую прибыль (что валовая прибыль с продукта больше 0). Если Вы хотите вычислить объединенное значение (валовая прибыль всех сделок, связанных с продажей этого продукта), используйте Gross Profit, measure элемент в выражение фильтра.
Выберете элемент данных Product Name, Gross Profit и фильтр для тестового запроса. Сгенерированный запрос SQL, должен быть похож на следующий:
Результат должен выглядеть так: Сценарий: Убрать фильтр из SAS Web Report Studio Вы хотите применить пре фильтр, который не дает пользователям таблицы ORDER_FACT просматривать сделки, произошедшие до 2000 года. Так же, Вы не хотите, что бы пользователи SAS Web Studio использовали этот фильтр, так как он будет применен как пре фильтр. Для создания фильтра, отображающего даты заказов, нажмите Edit Data Item в диалоговом окне New Filter, чтобы выбрать табличную колонку Order_Date как значение для поля Data Item. Затем, в секции Value(s), выберите число, до которого вы хотите фильтровать данные.
Затем назначьте фильтр как пре фильтр в таблице ORDER_FACT. Когда пользователи SAS Web Report Studio откроют информационную карту, этот фильтр не будет показан. Каждый раз, при использовании таблицы ORDER_FACT в запросе, данные будут переделаны (содержать только заказы после 2000 года (включительно)). Как использовать SAS Stored Process с Information Map ? Чтобы использовать SAS Stored Process с информационной картой, последняя должна иметь тот же источник данных, как и stored process. В свою очередь, и stored process должен быть выбран для информационной карты. Stored Process, объединенный с Information Map, завершается прежде любого запроса, создаваемого Information Map. Этот порядок обработки позволяет использовать инструменты SAS, как, например, DATA step или macro language для обработки данных, которые будут использованы для Information Map. Предварительная обработка часто включает в себя запрос или обновление данных для пользователя (например, когда пользователю позволено вводить параметры значений). По этой причине полезно использовать библиотеку Work сервера Workspace, чтобы хранить временные копии данных, обработанные отдельными пользователями. После того, как Вы создадите stored process (используя SAS Data Integration Studio или SAS Enterprise Guide), выполните следующие шаги для того, чтобы использовать stored process с информационной картой: 1. Убедитесь, что stored process загружается на Workspace сервере (stored process, который запускается на stored process сервере, не может быть использован для информационной карты!). 2. Просмотрите программный код вашего stored process'a. Убедитесь, что следующая команда вставлена сразу после global макропеременной (%GLOBAL): *ProcessBody; 3. Убедитесь, что каждая таблица для отчетов Stored Process определена в метаданных. Это необходимо сделать до использования таблицы в качестве источника данных. Выполните следующие шаги для того, чтобы определить таблицу и ее библиотеку в метаданных: a. Если таблица физически не существует, то запустите Stored Process один раз, чтобы создать ее и сохранить в постоянной библиотеке. Созданная таблица должна нести в себе информацию о заголовках колонок и их атрибутах. b. Используйте Data Library Manager (в SAS Management Console), SAS Data Integration Studio или SAS Metadata LIBNAME Engine, чтобы определить таблицу для отчета и ее библиотеку в метаданных. Для библиотеки используйте тот же libref, что Вы определили в программном коде. 4. Убедитесь, что источник данных, определенный вами для информационной карты, является таблицей для отчета stored process'а. Например, если отчет stored process'а записан в таблицу RESULT_SET в библиотеке STPOUT, то Вы должны использовать эту таблицу как источник данных для информационной карты. 5. Из меню SAS Information Map Studio, выбираем Tools _ Stored Processes, а затем - нужный stored process в диалоговом окне.
6. Нажмите ОК, чтобы связать stored process с информационной картой и выйти из диалогового окна. Когда запрос, сгенерированный информационной картой, выполнен, stored process запустится (до того, как запрос будет обработан). Как использовать вводимые параметры SAS Stored Process с Information Map?Если Вы используете SAS Stored Process с информационной картой и хотите, чтобы stored process обновил отчетность пользователей, то добавьте входные параметры. Если программный код вашего stored process'а использует макро переменные, которые вам необходимы для уточнения значений, выполните следующие шаги: 1. Добавьте входной параметр для макропеременной (если вы хотите предложить пользователям ввести значения этих переменных). Используйте BI Manager (в SAS Management Console), SAS Data Integration Studio или SAS Enterprise Guide, чтобы ввести входные параметры в stored process. 2. Объедините stored process с информационной картой.
Используйте алиас для поддержки рекурсивного соединения или альтернативного соединения пары таблиц. Пример: Рекурсивное СоединениеВы создаете Employee таблицу, включающую в себя колонки Employee_ID, Employee_Name и Manager_ID. После вы вставляете дополнительный логический образ Employee таблицы, создавая тем самым связь между Manager_ID и Employee_ID, чтобы показать имя менеджера для каждого сотрудника. Пример: Альтернативное Соединение Пары ТаблицВы создаете Order таблицу, включающую в себя колонки Origin_Location и Destination_Location, и таблицу Geography, включающую названия стран в колонке Location. Чтобы сопоставить страны производители со странами назначения, Вы должны создать некую связь между каждой _location таблицей в таблице Order и их логическими продолжениями из таблицы Geography. SQL код должен выглядеть примерно так: FROM Создание Условного SQL кодаExpression Editor в SAS Information Map Studio позволит вам создавать условный SQL код для элементов данных. Вы можете использовать команду CASE в выражении для относительных элементов данных, чтобы применить обработку для их значений. Следующие шаги описывают, как создавать относительные элементы данных, конвертирующие аббревиатуры названий стран в полные имена: case <<GEOGRAPHY_DIM.Country Abbreviation>> В этом выражении именем таблицы является GEOGRAPHY_DIM, а ярлыком колонки -Country Abbreviation.
6 Кликните на Validate Expression, чтобы проверить ошибки в выражении. Создание элементов данных из иерархий Если Вы используете панель Physical Data в главном окне SAS Information Map Studio, Следующие шаги описывают, как создать элемент данных category, ссылающийся на элемент последнего месяца Year-Quarter-Month hierarchy, названный YQM: 1. В SAS Information Map Studio откройте information map, с которой Вы хотите работать.
6. Кликните на Validate Expression, чтобы проверить ошибки в выражении. Авторский перевод - Баранов А. |
|
|
2009
Copyright
Accessibility | legal notice | contact | sitemap |