observations, and whether other engines are required for processing). The engine
uses this information to organize the data in the standard logical form for SAS
processing.
This standard form is called the SAS data file, which consists of the descriptor
information and the data values organized into columns (variables) and rows
(observations).
SAS procedures and DATA step statements access and process the data only in its
logical form. During processing, the engine executes whatever instructions are
necessary to open and close physical files and to read and write data in appropriate
formats.
Data that is accessed by an engine is organized into the SAS data set model, and in the
same way, groups of files that are accessed by an engine are organized in the correct
logical form for SAS processing. Once files are accessed as a SAS library, you can use
SAS utility windows and procedures to list their contents and to manage them. See
Chapter 26, “SAS Libraries,” on page 585 for more information about SAS libraries.
The following figure shows the relationship of engines to SAS libraries.
Figure 37.2 Relationship of Engines to SAS Libraries
files
engine
SAS utility
windows and procedures
SAS data library model
Engine Characteristics
About Engine Characteristics
The engine that is used to access a SAS data set determines its processing characteristics.
Different statements and procedures require different processing characteristics. For
example, the FSEDIT procedure requires the ability to update selected data values. And,
the POINT= option in the SET statement requires random access to observations as well
as the ability to calculate observation numbers from record identifiers within the file.
The following figure describes the types of activities that engines regulate.
Engine Characteristics 747
Figure 37.3 Activities That Engines Regulate
ACCESS
PATTERNS
Engine
READ/WRITE
ACTIVITY
LOCKING
LEVELS
INDEXING
INTEGRITY
CONSTRAINTS
COMPRESSION/REUSE
GENERATIONS
DATA COMPATIBILITY
Cross Platform
Cross Release
Read/Write Activity
An engine can perform one or more of the following tasks:
limit read/write activity for a SAS data set to read-only
fully support updating, deleting, renaming, or redefining the attributes of the data set
and its variables
support only some of these functions
For example, the engines that process BMDP, OSIRIS, or SPSS files support read-only
processing. Some engines that process SAS views permit SAS procedures to modify
existing observations while others do not.
Access Patterns
SAS procedures and statements can read observations in SAS data sets in one of four
general patterns:
sequential access
processes observations one after the other, starting at the beginning of the file and
continuing in sequence to the end of the file.
random access
processes observations according to the value of some indicator variable without
processing previous observations.
BY-group access
groups and processes observations in order of the values of the variables that are
specified in a BY statement.
multiple-pass
performs two or more passes on data when required by SAS statements or
procedures.
If a SAS statement or procedure tries to access a SAS data set whose engine does not
support the required access pattern, SAS prints an appropriate error message in the SAS
log.
Levels of Locking
Some features of SAS require that data sets support different levels at which Update
access is used. When a SAS data set can be opened concurrently by more than one SAS
748 Chapter 37 SAS Engines

Get SAS 9.4 Language Reference, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.