Cleaner OLAP cube physical folder structures

Each spring and fall, I start clearing out the kid's small clothes, old toys, etc. It can sometimes go too far and reach into my "digital pack-rat" issues. (Wait, what does that mean? Well, just ask the person who last week requested detail on a project I worked 3 years ago, I keep everything hence my self-coined term "digital pack-rat".) My OLAP folder was getting messy because when OLAP cubes are refreshed in-place and users are still accessing the cube, a second generation of the cube is created.

For illustration purposes, I have included below a sample folder structure of a simple OLAP cube created from SASHELP.SHOES. The cube was created at 11:07am, then updated in-place at 11:15am. But at 11:18am, when I ran the update in-place code again I was still viewing the cube in SAS Enterprise Guide. Therefore, since the gen0001 folder was locked for viewing, a gen0002 folder was created. This is the back-end magic for update in-place to work correctly.

You can not just delete the old generational folder (gen0000) when everyone is done using it. Per the SAS OLAP documentation on archiving and deleting prior generations a cube's new generations typically look through prior generational folder. But cleaning up this folder isn't just for saving space or reducing a pack-rat's digital footprint, each version of the cube remains completely viable and can therefore become less efficient over time.

To combine everything back together, you will need to run a full refresh of the cube during off-hours (which adds its own complexity), or run an COALESCE_AGGREGATIONS option in PROC OLAP as shown below.

PROC OLAP
   CUBE                   = "/Projects/Cubes/Shoes"
   COALESCE_AGGREGATIONS;

Included is what my new clean (and "digital pack-rat" busting) folder looks like:

More information on how to update cubes in place using SAS code is available in my prior post on OLAP refresh best practices.

tags: OLAP

2 Comments

  1. Sudhir
    Posted November 14, 2012 at 2:36 am | Permalink

    Hi Angela

    I have recently installed SAS 9.3 EBIEDIEG one machine , All products were installed and configured successfully . I validated all products in the Management console appeared validation message successfully. After two days again I try validate products in Management console but i'm getting validation error for SASAPP-Logical Pooled Workspace Server and SASAPP-Logical Stored Process Server .. here is the error
    1) "Hostname:8701". No server is available at that port on that machine.
    2) "Hostname:8601". No server is available at that port on that machine.
    This is the Log Msg where I found at JBOSS LOG :

    Unable to connect.SASApp - Logical Pooled Workspace Server [ com.sas.services.connection.FatalConnectionFactoryException: The application could not log on to the server "Hostname:8701". No server is available at that port on that machine.

    Could you please tell me how to solve this problem It's very confusing for me. Please reply me .

    Thank you

    • Angela Hall Angela Hall
      Posted November 14, 2012 at 10:23 pm | Permalink

      Sudhir,
      If things were working correctly at one point but now are failing, I would first check on the services themselves.
      Verify that they are starting in the correct order (there could be a need for a pause between service startup). Check out my prior post on scripting the restart process.

      If restarting services in the correct order doesnt address it, review the log files. (I have a post on reorganizing the log files so they are easier to find and review in these situations.) The log files will provide additional text around the issue so that you can search through KB entries on the support.sas.com site.

      Hope all this helps,
      Angela

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <p> <pre lang="" line="" escaped=""> <q cite=""> <strike> <strong>