You are previewing Expert Cube Development with Microsoft SQL Server 2008 Analysis Services.
O'Reilly logo
Expert Cube Development with Microsoft SQL Server 2008 Analysis Services

Book Description

Design and implement fast, scalable and maintainable cubes

  • A real-world guide to designing cubes with Analysis Services 2008

  • Model dimensions and measure groups in BI Development Studio

  • Implement security, drill-through, and MDX calculations

  • Learn how to deploy, monitor, and performance-tune your cube

  • Filled with best practices and useful hints and tips

In Detail

Microsoft's SQL Server Analysis Services 2008 is an OLAP server that allows users to analyze business data quickly and easily. However, designing cubes in Analysis Services can be a complex task: it's all too easy to make mistakes early on in development that lead to serious problems when the cube is in production. Learning the best practices for cube design before you start your project will help you avoid these problems and ensure that your project is a success.

This book offers practical advice on how to go about designing and building fast, scalable, and maintainable cubes that will meet your users' requirements and help make your Business Intelligence project a success.

This book gives readers insight into the best practices for designing and building Microsoft Analysis Services 2008 cubes. It also provides details about server architecture, performance tuning, security, and administration of an Analysis Services solution.

In this book, you will learn how to design and implement Analysis Services cubes. Starting from designing a data mart for Analysis Services, through the creation of dimensions and measure groups, to putting the cube into production, we'll explore the whole of the development lifecycle.

This book is an invaluable guide for anyone who is planning to use Microsoft Analysis Services 2008 in a Business Intelligence project.

Table of Contents

  1. Expert Cube Development with Microsoft SQL Server 2008 Analysis Services
  2. Credits
  3. About the Authors
  4. About the Reviewers
  5. Preface
    1. What this book covers
    2. What you need for this book
    3. Who this book is for
    4. Conventions
    5. Reader feedback
    6. Customer support
      1. Downloading the example code and database for the book
      2. Errata
      3. Piracy
      4. Questions
  6. 1. Designing the Data Warehouse for Analysis Services
    1. The source database
      1. The OLTP database
      2. The data warehouse
      3. The data mart
    2. Data modeling for Analysis Services
      1. Fact tables and dimension tables
      2. Star schemas and snowflake schemas
      3. Junk dimensions
      4. Degenerate dimensions
      5. Slowly Changing Dimensions
      6. Bridge tables, or factless fact tables
      7. Snapshot and transaction fact tables
      8. Updating fact and dimension tables
      9. Natural and surrogate keys
      10. Unknown members, key errors, and NULLability
    3. Physical database design for Analysis Services
      1. Multiple data sources
      2. Data types and Analysis Services
      3. SQL queries generated during cube processing
        1. Dimension processing
        2. Dimensions with joined tables
        3. Reference dimensions
        4. Fact dimensions
        5. Distinct count measures
        6. Indexes in the data mart
      4. Usage of schemas
      5. Naming conventions
      6. Views versus the Data Source View
    4. Summary
  7. 2. Building Basic Dimensions and Cubes
    1. Choosing an edition of Analysis Services
    2. Setting up a new Analysis Services project
    3. Creating data sources
    4. Creating Data Source Views
    5. Designing simple dimensions
      1. Using the 'New Dimension' wizard
      2. Using the Dimension Editor
        1. Adding new attributes
        2. Configuring a Time dimension
        3. Creating user hierarchies
        4. Configuring attribute relationships
    6. Building a Simple Cube
      1. Using the 'New Cube' wizard
      2. Deployment
      3. Processing
    7. Summary
  8. 3. Designing More Complex Dimensions
    1. Grouping and Banding
      1. Grouping
      2. Banding
    2. Slowly Changing Dimensions
      1. Type I SCDs
      2. Type II SCDs
        1. Modeling attribute relationships on a Type II SCD
        2. Handling member status
      3. Type III SCDs
    3. Junk dimensions
    4. Ragged hierarchies
      1. Parent/child hierarchies
      2. Ragged hierarchies with HideMemberIf
    5. Summary
  9. 4. Measures and Measure Groups
    1. Measures and aggregation
      1. Useful properties of measures
        1. Format String
        2. Display folders
      2. Built-in measure aggregation types
        1. Basic aggregation types
        2. Distinct Count
        3. None
        4. Semi-additive aggregation types
        5. By Account
      3. Dimension calculations
        1. Unary operators and weights
        2. Custom Member Formulas
      4. Non-aggregatable values
    2. Measure groups
      1. Creating multiple measure groups
      2. Creating measure groups from dimension tables
      3. Handling different dimensionality
      4. Handling different granularities
      5. Non-aggregatable measures: a different approach
      6. Using linked dimensions and measure groups
      7. Role-playing dimensions
    3. Dimension/measure group relationships
      1. Fact relationships
      2. Referenced relationships
      3. Data mining relationships
    4. Summary
  10. 5. Adding Transactional Data such as Invoice Line and Sales Reason
    1. Details about transactional data
    2. Drillthrough
      1. Actions
      2. Drillthrough actions
        1. Drillthrough Columns order
        2. Drillthrough and calculated members
      3. Drillthrough modeling
        1. Drillthrough using a transaction details dimension
        2. Drillthrough with ROLAP dimensions
        3. Drillthrough on Alternate Fact Table
        4. Drillthrough recap
    3. Many-to-many dimension relationships
      1. Implementing a many-to-many dimension relationship
      2. Advanced modelling with many-to-many relationships
      3. Performance issues
    4. Summary
  11. 6. Adding Calculations to the Cube
    1. Different kinds of calculated members
    2. Common calculations
      1. Simple calculations
      2. Referencing cell values
      3. Aggregating members
      4. Year-to-dates
      5. Ratios over a hierarchy
      6. Previous period growths
      7. Same period previous year
      8. Moving averages
      9. Ranks
      10. Formatting calculated measures
    3. Calculation dimensions
      1. Implementing a simple calculation dimension
      2. Calculation dimension pitfalls and problems
        1. Attribute overwrite
        2. Limitations of calculated members
      3. Calculation dimension best practices
    4. Named sets
      1. Regular named sets
      2. Dynamic named sets
    5. Summary
  12. 7. Adding Currency Conversion
    1. Introduction to currency conversion
      1. Data collected in a single currency
      2. Data collected in a multiple currencies
    2. Where to perform currency conversion
    3. The Add Business Intelligence Wizard
      1. Concepts and prerequisites
      2. How to use the Add Business Intelligence wizard
        1. Data collected in a single currency with reporting in multiple currencies
        2. Data collected in multiple currencies with reporting in a single currency
        3. Data stored in multiple currencies with reporting in multiple currencies
    4. Measure expressions
      1. DirectSlice property
      2. Writeback
    5. Summary
  13. 8. Query Performance Tuning
    1. How Analysis Services processes queries
    2. Performance tuning methodology
    3. Designing for performance
    4. Performance-specific design features
      1. Partitions
        1. Why partition?
        2. Building partitions
        3. Planning a partitioning strategy
        4. Unexpected partition scans
      2. Aggregations
        1. Creating an initial aggregation design
        2. Usage-based optimization
        3. Monitoring partition and aggregation usage
        4. Building aggregations manually
        5. Common aggregation design issues
    5. MDX calculation performance
      1. Diagnosing Formula Engine performance problems
      2. Calculation performance tuning
        1. Tuning algorithms used in MDX
          1. Using named sets to avoid recalculating set expressions
        2. Using calculated members to cache numeric values
        3. Tuning the implementation of MDX
    6. Caching
      1. Formula cache scopes
      2. Other scenarios that restrict caching
      3. Cache warming
        1. Create Cache statement
        2. Running batches of queries
    7. Scale-up and scale-out
    8. Summary
  14. 9. Securing the Cube
    1. Sample security requirements
    2. Analysis Services security features
      1. Roles and role membership
      2. Securable objects
      3. Creating roles
      4. Membership of multiple roles
      5. Testing roles
    3. Administrative security
    4. Data security
      1. Granting read access to cubes
      2. Cell security
      3. Dimension security
      4. Applying security to measures
      5. Dynamic security
      6. Dynamic dimension security
      7. Dynamic security with stored procedures
      8. Dimension security and parent/child hierarchies
    5. Dynamic cell security
    6. Accessing Analysis Services from outside a domain
    7. Managing security
    8. Security and query performance
      1. Cell security
      2. Dimension security
      3. Dynamic security
    9. Summary
  15. 10. Productionization
    1. Making changes to a cube in production
    2. Managing partitions
      1. Relational versus Analysis Services partitioning
      2. Building a template partition
      3. Generating partitions in Integration Services
    3. Managing processing
      1. Dimension processing
      2. Partition processing
      3. Lazy Aggregations
      4. Processing reference dimensions
      5. Handling processing errors
      6. Managing processing with Integration Services
      7. Push-mode processing
      8. Proactive caching
    4. Analysis Services data directory maintenance
    5. Backup
    6. Copying databases between servers
    7. Summary
  16. 11. Monitoring Cube Performance and Usage
    1. Analysis Services and the operating system
      1. Resources shared by the operating system
        1. CPU
        2. Memory
        3. I/O operations
      2. Tools to monitor resource consumption
        1. Windows Task Manager
        2. Performance counters
        3. Resource Monitor
      3. Analysis Services memory management
        1. Memory differences between 32 bit and 64 bit
        2. Controlling the Analysis Services Memory Manager
        3. Out of memory conditions in Analysis Services
      4. Sharing SQL Server and Analysis Services on the same machine
    2. Monitoring processing performance
      1. Monitoring processing with trace data
        1. SQL Server Profiler
        2. ASTrace
        3. XMLA
        4. Flight Recorder
      2. Monitoring Processing with Performance Monitor counters
      3. Monitoring Processing with Dynamic Management Views
    3. Monitoring query performance
      1. Monitoring queries with trace data
      2. Monitoring queries with Performance Monitor counters
      3. Monitoring queries with Dynamic Management Views
      4. MDX Studio
    4. Monitoring usage
      1. Monitoring Usage with Trace Data
      2. Monitoring usage with Performance Monitor counters
      3. Monitoring usage with Dynamic Management Views
      4. Activity Viewer
    5. How to build a complete monitoring solution
    6. Summary