Search code examples
data-warehousebusiness-intelligenceolap

Business Intelligence


I need please some clarifications about the BI architecture. According to what I understood, the first step is to gather data from different data sources, clean it, and load it to a data warehouse through an ETL. The Data Schema of the datawarehouse shouldn't be relational, and should support fast business operations (ex. Star schema), then finally we have some reporting tools such as qlick, Tableau ...etc. My question is, what is OLAP and in which step does it come to existence?

thx,


Solution

  • OLAP = online analytical processing, which usually means 'cube' which is usually about reporting at various summaries

    This is in contrast to OLTP = online transactional processing which usually refers to a system (usually stored in a relational database) that does a high volume of reads and writes at a detailed level

    A cube represents things to users as facts and dimensions.

    A data warehouse star schema also represents things as facts and dimensions. In a datawarehouse star schema (which is relational but is not normalised), these are stored in tables

    To get a 'grand total' out of a star schema you write a SQL query that runs against the database and adds up all the detail level data into a grand total. Sometimes this takes time

    To get a 'grand total' out of a cube (OLAP) you drag and drop the dimensions and measures you want (you usually use a client tool to analyse a cube) and the answer appears much faster because a cube is generally optimised for summaries, (i.e. it usually has summaries pre saved in it, and the storage mechanism is optimised for generating summaries)

    A cube is usually built from a star schema but doesn't have to be - it just makes it a lot easier to build it if it is

    are'nt Olap cubes represented by the data model in warehouse (star schema for ex.)?

    Yes they are represented but they are different things. One stores data in a database. One stores data in a cube. A cube is usually loaded from data, usually from a database.