Related article: Adaptive SAS programming for the Software Development Life Cycle
When new SAS users get introduced to the SAS Business Intelligence software (SAS BI), along with the thrill of a wide spectrum of new and desirable functionality, almost always comes a state of confusion – if not panic.
How do we go about adapting it to our organization IT guidelines? How do we arrange and support development and production environments? How do we set up our SAS developers so they can collaborate, but not overwrite each other’s work? What are the best practices for setting up SAS BI environments? What the hell are SAS folders? Why do we need them and how are they different from the operating system folders and directories?
Let’s make everything straight. This post will explain the two distinct dimensions to a SAS BI environment: folder structure and software life cycle environments. It will also provide some suggestions on how you can set up your SAS Business Intelligence environment the right way.
What folders are we talking about?
The folder structure dimension is two-fold (pun is accidental). There is a metadata folder structure and a physical folder structure (or directory structure). It is imperative to absolutely distinguish between them and realize that they are by no means are related to each other.
Metadata folder structure is a logical tree created within SAS metadata and is used to store different SAS objects such as library definitions, data table definitions, information maps, SAS web reports, stored process definitions, dashboard definitions, SAS prompt definitions, SAS job definitions and other software elements.
Physical folder/directory structure is located within file system of an operating system – Windows, UNIX, zOS - and is used to store any files (SAS code, data tables, Excel files, HTML, PDF, RTF and other files.)
When it comes to the physical folders or directories where you typically would store some of your SAS code, SAS data and other data, they can be organized alongside your customized SAS metadata folders, or in any other logical way reflecting your business structure. Keep in mind that some objects in the SAS metadata rely on the physical folder structure (such as library definitions), so in many cases, you cannot independently change physical folder structure without affecting SAS folder objects.
Here are a few helpful resources:
- For managing SAS metadata folders, use Best Practices for Managing SAS Folders.
- Pay close attention to moving SAS objects between SAS folders as described in the Best Practices for Maintaining Associations among Objects in SAS Folders.
- You can also customize your SAS folders to align them with your organization needs. See Customizing Your Folder Structure.
What’s the best practice for multiple SAS environments?
Development of SAS BI systems usually employs a variation of the three-tier or three-environment life cycle approach:
- Development/Integration environment
- Staging/Testing environment
- Production/Operation environment
With SAS BI development, each of these environments could be implemented either as a folder structure within single SAS BI installation or as a completely separate SAS BI installation.
During the systems development life cycle, development activities, along with the corresponding metadata and filesystem objects, are gradually propagated from Development/Integration environment to Staging/Testing, and finally to Production/Operation environment.
Make sure you maintain identical SAS folder and physical folder structures among all the environments for smooth and seamless migration of the metadata and files from one environment to another.
In the development environment only, it is also possible to create a pre-development or sandbox folder with personal sub-folders corresponding to each member of the development team. The sandbox is where developers can experiment with different coding approaches before moving their code to the development/integration.
To encourage code sharing among developers and to protect them from accidentally overwriting each other’s code, these personal folders can be assigned permissions allowing the owner of the folder READ and WRITE permissions, and READ ONLY permission to all other developers.
How did you set up your SAS Business Intelligence environment?
Instead of a conclusion, I would like to invite you to share how you set up SAS environment in your organization. What are your considerations? What are pros and cons? What would you advise to others?Related article: Adaptive SAS programming for the Software Development Life Cycle