Display 10.1 Total Sales by Employee Report One way to create this report is to create a SAS Data Integration Studio job that joins the required tables and writes the output of the join
Trang 1150 Example: Creating a Job That Joins Two Tables and Generates a Report 4 Chapter 10
Example: Creating a Job That Joins Two Tables and Generates a Report
Preparation Suppose that you wanted to create a report that shows which sales person is making the most sales, as described in “Which Salesperson Is Making the Most Sales?” on page
45 You decide to extract columns from several existing tables, write that information to
a new table, and run a report on the new table An example of this report is shown in the following display
Display 10.1 Total Sales by Employee Report
One way to create this report is to create a SAS Data Integration Studio job that joins the required tables and writes the output of the join to a new table The new table would be the input to a report transformation This example demonstrates one way to create such a process flow
In the example, columns from source tables (ORGANIZATION_DIM and ORDER_FACT) are extracted and mapped to columns in the main target table (Total_Sales_By_Employee) The main target table, in turn, is the input to a report transformation (Publish to Archive) that creates the desired report
Assume the following about the example job:
3 Metadata for both source tables in the job (ORGANIZATION_DIM and ORDER_FACT) is available in a current metadata repository “Identifying Targets”
on page 48 describes how these tables were created by combining information from other tables
3 The ORGANIZATION_DIM and ORDER_FACT tables have the same key column: Employee_ID In the current example, these tables will be joined on the
Employee_ID column
3 Metadata for the main target table in the job (Total_Sales_By_Employee) is available in a current metadata repository “Example: Using the Target Table Designer to Register SAS Tables” on page 140 describes how the metadata for this table could be specified As described in that section, the
Total_Sales_By_Employee table has only those columns that are required for the report The metadata for these columns is shown in Display 9.5 on page 144
3 You have selected a default SAS application server for SAS Data Integration Studio, as described in “Selecting a Default SAS Application Server” on page 96 This server can access all tables that are used in the job
3 The main metadata repository is under change-management control For the current example, the metadata for the Total_Sales_By_Employee table must be checked out because (a) the metadata for this table was created and checked in earlier, as described in “Example: Using the Target Table Designer to Register
Trang 2Example Process Flows 4 Create the New Job and Specify the Main Process Flow 151
SAS Tables” on page 140, and (b) the metadata for the table must be updated for the current job When you are finished with the current job, metadata for the new job and the updated metadata for the Total_Sales_By_Employee table will be checked in For details about change management, see “Working with Change Management” on page 113
3 It is assumed that you have started SAS Data Integration Studio and have opened the appropriate metadata profile
The first task is to check out any existing metadata that must be updated for the current job
Check Out Existing Metadata That Must Be Updated
You do not have to check out the metadata for a table in order to add it as a source or
a target in a job However, the metadata for the Total_Sales_By_Employee table must
be checked out because its metadata must be updated for the current job The
Total_Retail_Price column in the table must be updated so that it summarizes a total revenue number from individual sales
Follow these steps to check out existing metadata:
1 On the SAS Data Integration Studio desktop, select the Inventory tree
2 In the Inventory tree, open the Tables folder.
3 Select the table that must be updated for the current job:
Total_Sales_By_Employee
4 Select Project I Check Out from the menu bar The metadata for this table will
be checked out and will appear in the Project tree
The next task is to create and populate the job In this example, you will populate the job in two stages First, you will create and test the process flow that loads the Total_Sales_By_Employee table Then you will add the report generation process to the end of the flow
Create the New Job and Specify the Main Process Flow
Follow these steps to populate a job that loads the Total_Sales_By_Employee table
To populate a job means to create a complete process flow diagram, from sources,
through transformations, to targets
1 From the SAS Data Integration Studio menu bar, select Tools I Process
Designer The New Job wizard displays.
2 Enter a name and description for the job Type the name
Total_Sales_By_Employee, press the TAB key, the enter the description
Generates a report that ranks salespeople by total sales revenue
3 Click Finish An empty job will open in the Process Designer window The job has
now been created and is ready to be populated with two sources, a target, and an SQL Join transformation
4 On the SAS Data Integration Studio desktop, click the Process Library tab to
display the Process Library
5 In the Process Library, open the Data Transforms folder.
Trang 3152 Create the New Job and Specify the Main Process Flow 4 Chapter 10
6 Click, hold, and drag the SQL Join transformation into the empty Process
Designer window Release the mouse button to display the SQL Join transformation template in the Process Designer window for the new job The SQL Join transformation template displays with drop zones for two sources and one target, as shown in the following display
Display 10.2 The New SQL Join Transformation in the New Job
7 On the SAS Data Integration Studio desktop, click the Inventory tab to display
the Inventory tree
8 In the Inventory tree, open the Tables folder.
9 In the Tables folder, click and drag the ORGANIZATION_DIM table into one of the
two input drop zones in the Process Designer window, then release the mouse
button The ORGANIZATION_DIM table appears as a source in the new job.
10 Repeat the preceding step to specify the ORDER_FACT table as the second of the
two sources in the new job
11 On the desktop, click the Project tab to display the Project tree You will see the
new job and the Total_Sales_By_Employee table that you checked out
Trang 4Example Process Flows 4 (Optional) Reduce the Amount of Data Processed by the Job 153
12 Click and drag Total_Sales_By_Employee table into the output drop zone in the
Process Designer window The target replaces the drop zone and a Loader
transformation appears between the target and the SQL Join transformation template, as shown in the following display
Display 10.3 Sources and Targets in the Example Job
The job now contains the main flow diagram, from sources, through transformations,
to target The next task is to update the default metadata for the transformations and the target
(Optional) Reduce the Amount of Data Processed by the Job
As you build the process flow for a job, you might want to create and test part of the flow before adding more processes and tables to the flow However, repeated executions
of a job can become tedious if you have to work with large amounts of data One way to reduce the amount of data processed by a job is to specify the SAS System option OBS=
on the Pre and Post Process tab in the properties window for the job.
Follow these steps to specify an OBS= option in the properties window for the job that was created in the previous section:
1 In the Process Designer window for the job, right-click the canvas and select
Properties from the pop-up menu The properties window for the job displays
2 Click the Pre and Post Process tab.
3 Select the Pre Processing check box.
4 In the Type selection box, select Metadata.
Trang 5154 (Optional) Reduce the Amount of Data Processed by the Job 4 Chapter 10
5 In the Description field, enter a description of the option that you are about to
set, such as Limit data rows processed by this job The Pre and Post Process
tab should resemble the following display
Display 10.4 Pre and Post Processing Tab
6 Click Edit to display the window where you will specify the OBS= option Specify
a convenient number of observations (rows of data) For this example, specify OBS=500 The Edit Source Code window should resemble the following display