Sunday, August 10, 2014

Business Intelligence Components Part 2: Multidimensional aggregation and allocation

In part two of the 'Business Intelligence Components' series, we'll look at the 'Multidimensional aggregation and allocation' component. For more information about this series and its context, see Part I of the series Overview and the 'Master' BI Components list

Multidimensional aggregation and allocation
This means processing data from many different data sources in a memory efficient way.

Examples of 'multidimensional aggregations' are OLAP (online analytical processing) cubes or 'multidimensional data analysis'. Basically, taking several different data sources (e.g. cities, sales transactions, date of creation, items) and displaying these in a single analytical view which gives the users a view of the information and how they all relate to each other. Depending on the application where the cubes are being leveraged, the users may be able to drill into certain parts of the data (e.g. city) and see even more detailed information around the selected data (e.g. which stores in that drilled into city are selling how much).

Depending on how complex the above links are to display the information from the tables, memory consumption can be quite complicated. It's one thing to process the data accurately. It's another thing to process it quickly and efficiently. Therefore, it is required to allocate the multidimensional information into strategic blocks of memory so it can be equally as strategically removed. While people want all the data in the world, no one wants to wait for it.

To look at these two concepts together, think of a Rubik's cube where each axis represents a different data source. There are nine boxes on each side of the cube. Now picture a fixed multidimensional array variable where we'd declare something to the tune of  int   multiDimArray [9] [9] [9]. The 9s represent the number of blocks on each side of the cube. Think of these as values in the tables. Fixed arrays are more efficient memory wise than dynamic arrays.

I know I skimmed over a bunch of details above but again this is a high level look at these concepts. If I explain in more detail than the above, I'm defeating the whole purpose of these posts.

PART I:      Overview and the 'Master' BI Components list
PART II:    Multidimensional aggregation and allocation
PART III:   Denormalization, tagging and standardization
PART IV:   Realtime reporting with analytical alert
PART V:     A method of interfacing with unstructured data sources
PART VI:   Group consolidation, budgeting and rolling forecasts
PART VII:  Statistical inference and probabilistic simulation
PART VIII: Key performance indicators optimization
PART IX:    Version control and process management
PART X:     Open item management

Monday, August 4, 2014

Business Intelligence Components Part 1: Overview and the 'Master' BI Components list

Business Intelligence (BI) is a hot topic in today's business landscape. Everyone wants it but not everyone knows what they need. In describing a business' needs and analyzing capabilities of existing BI solutions, people often refer to a list of generic classifications of BI components.

The interesting thing about this is that someone (or organization) had compiled a list of BI components in which everyone seems to refer to in all of their BI articles. It's also found on Wikipedia (http://en.wikipedia.org/wiki/Business_intelligence). Whether all these articles are all referring to this source for their information or not is irrelevant. The important thing is this list is out there and is used verbatim and in order in many locations.

Everyone seems to be describing BI as being something along the lines of "made up of an increasing number of components. These include the following" and then including the below list from Wikipedia http://en.wikipedia.org/wiki/Business_intelligence:
  • Multidimensional aggregation and allocation
  • Denormalization, tagging and standardization
  • Realtime reporting with analytical alert
  • A method of interfacing with unstructured data sources
  • Group consolidation, budgeting and rolling forecasts
  • Statistical inference and probabilistic simulation
  • Key performance indicators optimization
  • Version control and process management
  • Open item management

  • Funny thing is no one actually talks about what these are or why their important. They just rely on Wikipedia's BI knowledge to provide generalized talking points. ~95% of the articles mention the components in fancy wording. The other discussions I found on the specific topics got so far under the hood that most people would give up reading after paragraph one.

    The following series of blog posts is meant to provide a high level look at what these components of BI actually mean in layman's terms. I originally had these in one GIANT post but it was getting ridiculous so I made this a ten part series with this being part 1.

    PART I:      Overview and the 'Master' BI Components list
    PART II:    Multidimensional aggregation and allocation
    PART III:   Denormalization, tagging and standardization
    PART IV:   Realtime reporting with analytical alert
    PART V:     A method of interfacing with unstructured data sources
    PART VI:   Group consolidation, budgeting and rolling forecasts
    PART VII:  Statistical inference and probabilistic simulation
    PART VIII: Key performance indicators optimization
    PART IX:    Version control and process management
    PART X:     Open item management