Rupinder Dhillon Dec 14, 2012 TASS-i

Similar documents
SAS Data Integration Studio Take Control with Conditional & Looping Transformations

SESUG Paper SD ETL Load performance benchmarking using different load transformations in SAS Data Integration Studio.

I KNOW HOW TO PROGRAM IN SAS HOW DO I NAVIGATE SAS ENTERPRISE GUIDE?

Order Template Maintenance

An Introduction to Parallel Processing with the Fork Transformation in SAS Data Integration Studio

Extending the Scope of Custom Transformations

SAS Data Integration Studio 3.3. User s Guide

Quick-Start Guide To get ready to use Fixture offset Calculator: For each job (all done on Sheet1):

Call: SAS BI Course Content:35-40hours

Data Integration Best Practices

A Practical Introduction to SAS Data Integration Studio

Advance SSRS Reporting. Aun Ali Baghdadwala System Analyst Reporting, Enform Canada

Installing a Custom AutoCAD Toolbar (CUI interface)

Quick Start Guide. Marketing Bulk & Print Jobs

Best ETL Design Practices. Helpful coding insights in SAS DI studio. Techniques and implementation using the Key transformations in SAS DI studio.

ABSTRACT INTRODUCTION MACRO. Paper RF

My SAS Grid Scheduler

Certkiller.A QA

OnBase Guide Creating Document Packet Template

Certification Workflow Setup and Use

Combining Data.the EG way

Access Office Integration for Excel

To configure the extension please go to System Configuration Order Attributes in the admin panel.

WORKFLOW TRAINING. Reviewing an Agenda Item Through Laserfiche Client. Updated May 2017

ReportWorks: Intermediate

KB CAT Interactive Reporting and EPM

Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin, dunnhumby USA, Cincinnati, OH

ABSTRACT Have you been programming in SAS for a while and just aren t sure how Enterprise Guide can help you? It isn t just a pretty face!

Microsoft Access II 1.) Opening a Saved Database Music Click the Options Enable this Content Click OK. *

Ionic Tutorial. For Cross Platform Mobile Software Development

Creating a Crosstab Query in Design View

Updating Users. Updating Users CHAPTER

GETTING STARTED. A Step-by-Step Guide to Using MarketSight

GAS MANager Task Organizer Admin User's Guide

LOADING SMARTCALL PARENTS INTO ADVANCE

goanalyze User s Guide Version: 2.0

Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters

SALES REPORTING GUIDE TO MANUALLY ENTER SALES DATA IN TRADEMARX:

Custom Dashboard Tiles June 2014

Pentaho Data Integration (PDI) Techniques - Guidelines for Metadata Injection

VG Series Products Mass Interconnect Technologies

Laserfiche Agenda Workflow Training. Submitting an Agenda Item Through Laserfiche Web Access Version 10.2

When you first start OneNote, it creates a sample notebook for you. You can use this notebook or quickly create your own.

Extended Product Grid with Editor for Magento 2

Barchard Introduction to SPSS Marks

Data Extracts for everybody A SAS Customer Intelligence Studio implementation

Table of Contents. Tutorial The Basics Prerequisites Concepts... 1 Information... 1 Learning Objectives... 2

SAS. Studio 4.1: User s Guide. SAS Documentation

Starting Visual Studio 2005

NEW FEATURES OF ENTERPRISE GUIDE 6.1 MATT MALCZEWSKI, SAS CANADA

Paper HOW-06. Tricia Aanderud, And Data Inc, Raleigh, NC

Paperless Tax Office Automation

SAS Clinical Data Integration Server 2.1

Overview. Experiment Specifications. This tutorial will enable you to

Universal Access Tip Sheet: Creating Accessible PDF Files from a Scanned Document

Inventory Issues. Contents. Scanco Support - Scanco Support Phone number Opt Version

QBSalesData Version Release Notes

Business Insight Authoring

Importing Excel into SAS: A Robust Approach for Difficult-To-Read Worksheets

HerdMASTER 4 Crush Side Recording Utility Manual

SAS Studio: A New Way to Program in SAS

Paperless Tax Office Automation

SAS Clinical Data Integration 2.6

Your data just got even more accurate and meaningful.

Document Imaging User Guide

12 Writing CSV File Data in Device/PLC

Using Maps with the JSON LIBNAME Engine in SAS Andrew Gannon, The Financial Risk Group, Cary NC

Seagate Crystal Reports 8 and Hyperion Essbase

Alan Davies and Sarah Perry

% BigDataLoader: A SAS Macro to Migrate Big Data 99% Faster

Visual Analytics User s Guide

JUNE 2016 PRIMAVERA P6 8x, CONTRACT MANAGEMENT 14x AND UNIFIER 16x CREATING DASHBOARD REPORTS IN ORACLE BI PUBLISHER

Implementing CDISC Using SAS. Full book available for purchase here.

SAS Infrastructure for Risk Management 3.4: User s Guide

QlikView NPrinting release notes

Programming with ADO.NET

A SAS Data Integration Development

Table of Contents. 2 P a g e A I M Q U I C K R E F E R E N C E G U I D E

for Western Users of SAS Software 2014

Producing Summary Tables in SAS Enterprise Guide

CONFIGURING PARENT MODULE ALERTS

The Compliance Monitoring Data Portal (CMDP) Module 4: Chemical, Radionuclide and Microbial Samples and Results For lab users

Liberate, a component-based service orientated reporting architecture

The user guide may be freely distributed in its entirety, either digitally or in printed format, to all EPiServer Composer users.

Petrel TIPS&TRICKS from SCM

OSR Composer 3.7 User Guide. Updated:

You can also check the videos at the bottom of this page:

Using the Yield Editor

Thermacam Reporter 2000 Professional Template Building Tutorial

IBM Clarity 7 Server v7.2.1 FP1 New Features

SPSS Statistics 21.0 GA Fix List. Release notes. Abstract

Information Warehouse - Report Studio

Introduction to DWH / BI Concepts

CSC 330 Object-Oriented

Doc. Version 1.0 Updated:

Chasing the log file while running the SAS program

Recently Updated Dumps from PassLeader with VCE and PDF (Question 1 - Question 15)

Premium POS Pizza Order Entry Module. Introduction and Tutorial

Experimenting with Neural Nets Numbers marked with indicate material you need to write up.

Database to XML Wizard

Transcription:

Rupinder Dhillon Dec 14, 2012 TASS-i

Agenda Using DI Studio at Bell Problem we faced in our DI Studio ETL jobs How we used Parameters and Looping in DI Studio Adding Looping and Parameters to a Sample job Additional options available Some other applications

Using DI Studio at Bell Why use DI Studio? Can t I just write all my ETL in Base SAS? Standardization Built in Documentation Traceability analyze Reusability/Maintainability/Consistency Centralization Seamless integration with Scheduling

Problem we faced in our DI Studio ETL jobs What made us turn to Looping Extracting MASSIVE data from Bell EDW Spool space restrictions Needed to load history a chunk at a time

Looping: the built in Solution Turned our initial load into a loop Calculated spool space capacity what max date range could be extracted at one time without hitting errors. Divided up historical load into equal date ranges Looped the extract, passing it the calculated date range each time

Time Out: DI Studio Basics Used to Build ETL flows (BUT NOT LIMITED TO) Made up of Source tables, Target Tables, Transformations (and mappings in between) Source/Target tables found in the Inventory tab. Transformations found in.. Transformations tab.

Time Out: DI Studio Basics Transformations grouped together

Here is a sample DI Studio Job Source table: Customer_Orders Extract Step Table Loader into Target Table Target table: ODS_T_ORDER User Written Code: Update Control Table

What does the Data Extract Step look like?

What does the Data Extract Step look like?

We want to turn it into a Looping Job

We want to turn it into a Looping Job Steps: Define parameters in the Job you want to loop Create a parent job to control the loop Create a dataset of values you want to loop through Map the dataset values to the parameters that the job is expecting Specify what job should be looped Close the loop

Define parameters in the Job you want to loop Go to the Parameters Tab in the job properties

Define parameters in the Job you want to loop Click new prompt to define a new prompt May consider creating a group to keep the job parameters together Job Control

Define parameters in the Job you want to loop On the General Tab: Define a parameter called xtr_date. This parameter will control what date our extract will run for.

Define parameters in the Job you want to loop The new parameter appears under our Parameter Tab

Define parameters in the Job you want to loop Update our Data Extract where clause to use the new parameter & in the job; tells us the job uses a Parameter

Create a parent job to control the loop Start with dragging in our Control Table Add a User Written Code transformation

Create a parent job to control the loop In the General properties of the User Written Transformation, change the name In the CODE tab, you can have: All User Written Automatic User Written Body Change to All User Written

Create a parent job to control the loop How do we create our list of xtr_dates? With SAS Code

Create a parent job to control the loop What values did our SAS Code create?

Create a parent job to control the loop Add the Loop transformation

Create a parent job to control the loop Add the job that you want looped

Create a parent job to control the loop Almost Done We need to define the Loop Properties so that the loop knows what to do with our xtr_dates values

Create a parent job to control the loop In the Loop Properties Parameter Mapping Tab Our loop recognizes that the looping job is expecting a Parameter. Map our xtr_date Parameter to the xtr_date variable in our input loop dataset. What could we do with Row Number?

Create a parent job to control the loop Last Step make sure our xtr_date makes it to our Loop output:

Our Looping Job is complete We have 2 jobs: 1. The core job that should be looped 2. The Loop control job Note: Only the Loop Control Job needs to be deployed

Additional options available Can put multiple jobs within a loop Can add Return Code checks for more flexibility Can have multiple Parameters Each loop can be set to run in Parallel when running in a Grid Environment Using looping to create conditional processing (if dataset is empty, loop does not run) Create Loop job Templates based on common function Developer just has to change the particulars (job to call etc).

Where we have found Looping to be useful Loading Type 2 dimension tables when you have to run one day at a time Working around extract or load constraints Processing text files one at a time Reloading mismatched or missing data ranges

Lots more functionality to explore. Looping in a GRID environment - http://support.sas.com/documentation/cdl/en/gridref/63292/ HTML/default/viewer.htm#p069a2cddfgemtn0zxnvl0x94e87.h tm Using Looping to create conditional processing - http://support.sas.com/resources/papers/proceedings12/097-2012.pdf Best Practices - http://support.sas.com/resources/papers/proceedings11/137-2011.pdf Contact: Rupinder@DhillonConsulting.com

Appendix setting dataset variables into Macro Variables %macro doit; %let id=%sysfunc(open(sashelp.class)); %let NObs=%sysfunc(attrn(&id,NOBS)); %syscall set(id); %do i=1 %to &NObs; %let rc=%sysfunc(fetchobs(&id,&i)); %put # # # Processing &Name # # #; %* ---- Analysis Code Goes Here ----- *; %end; %let id=sysfunc(close(&id)); %mend; http://www2.sas.com/proceedings/forum2007/050-2007.pdf

Questions???