Как управлять форматами SAS из разных источников?

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

Для источников данных с правильными метаданными объединение таблиц для описания значений работает нормально, но когда метаданных не существует и их нужно поддерживать отдельно, как это сделать? Несколько простых примеров/идей:

  • Обычные файлы .sas с собственным шагом PROC FORMAT, который поддерживается отдельно.
  • Внешние файлы (например, Excel, CSV), которые хранятся отдельно и импортируются в SAS для создания библиотеки форматов.
  • Таблицы базы данных, поддерживаемые отдельно, могут быть прочитаны для создания библиотеки форматов.

Помимо форматированных значений, управление изменениями значений (т. е. даты вступления в силу для certian значений) также вызывает беспокойство.

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


person chucknelson    schedule 05.09.2013    source источник


Ответы (1)


Я не уверен, что здесь есть единственное лучшее решение - это во многом зависит от вашей среды, ваших пользователей и т. д.

Если у вас есть довольно наивные пользователи, то я определенно рекомендую один полный репозиторий, если это возможно; будь то файл .sas7bcat, если вы используете одну версию/ОС/разрядность SAS, или готовую таблицу/набор данных для ввода в PROC FORMAT (и файл .sas, включенный в их autoexec, для выполнения импорта). Самым большим недостатком этого является то, что вы должны активно им управлять (например, вы не можете позволить пользователям записывать свои собственные форматы в набор данных основного формата, поскольку они могут перезаписывать другие), и что потребуется дополнительная работа для обеспечения форматирования. имена не конфликтуют - YNF. может быть 1=YES 2=NO или 1=YES 0=NO или чем-то еще. Это также не позволяет вам легко обрабатывать даты вступления в силу; но, возможно, это лучше для ваших пользователей (и тогда просто обрабатывать документацию отдельно).

Если у вас есть более продвинутые пользователи, вы можете рассмотреть таблицу/набор данных, которые являются более реляционными по своей природе. Гибридный подход может включать набор данных со столбцами:

  1. Имя набора данных (при необходимости уточняется для обеспечения уникальности)
  2. Название формата
  3. Начинать
  4. Этикетка
  5. Другие элементы (Тип, HLO и т. д.)
  6. Дата вступления в силу

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

Однако, на мой взгляд, лучшим вариантом является использование словаря данных для обработки метаданных, который сочетает самодокументирование с управлением метаданными. Как и выше, у вас есть таблица с набором данных и элементами формата, но вы добавляете столбцы для описательного текста (например, описание вопроса) и другой полезной информации, в зависимости от ваших вариантов использования. Это можно сохранить в таблице базы данных или наборе данных или, возможно, более полезно в Excel или подобном документе, который можно использовать совместно с непрограммистами и легко редактировать. Я использую этот метод для нескольких проектов, и он окупился, позволив моим пользователям помогать писать документацию для моего кода, поддерживая точность и актуальность моих программ, сводя к минимуму постоянные обсуждения обновлений. Я просто импортирую электронную таблицу и запускаю формат proc каждый раз, когда запускаю свои данные.

Затем у вас может быть одна электронная таблица для каждого набора данных, одна вкладка или одна полная электронная таблица со всеми наборами данных в них — в зависимости от того, что проще всего использовать. Это также легко решает проблемы типа «дата вступления в силу» или даже управление версиями, поскольку это можно обрабатывать в электронной таблице.

person Joe    schedule 05.09.2013
comment
Спасибо за тщательный вклад. Наибольший риск, безусловно, связан с контролем согласованности при поддержке всех форматов (в дополнение к поддержанию актуальности в целом). У меня возникает соблазн использовать старые добрые книги Excel. Они допускают метаданные (например, даты вступления в силу), гибкость в обработке с помощью включений или макросов, и все пользователи в моей ситуации хорошо знакомы с Excel. Первоначальные решения были ориентированы на собственные форматы SAS, но, возможно, их можно было бы использовать исключительно для PICTURE или других особых потребностей формата SAS, и все обычные форматы ключ-значение могли бы жить в Excel. - person chucknelson; 06.09.2013