Overview
I've recently been working with clients to convert from Clarity to TM1. There are many different resources out there to help folks with the move, but I wanted to list some key ones here for everyone. This post is a listing of IBM TM1 learning resources I think everyone should know about. I know everyone is busy and we're not going to watch or read everything, but depending on what you want to learn about, these are good places to start.
Clear Insight Youtube Playlist - IBM TM1 Training
This playlist contains videos from our past webinars on various IBM TM1-related topics. In particular, there are a few webinars focused on helping folks transition from Clarity to TM1.
IBM TM1 Product Details
This page has an overview and a datasheet on TM1 and how it can help organizations in many ways.
IBM TM1 Youtube Overview
This is an IBM promotional video showing a quick overview of some of the features of the platform.
IBM TM1 10.2.2 Support Details
This support site provides documentation, updates and downloads. In particular, there are some good resources to help plan an installation and deployment in an environment.
IBM Analytics Zone
A community of free samples for many industries and verticals. In particular, I recommend checking out the blueprints for Revenue Planning, Expense Planning, Capital Planning, Workforce Planning and Profitability Analytics.
IBM Knowledge Center
This is a development support resource containing documentation and samples for all features and functions in TM1. Anyone looking to write ETL may want to check this out.
TM1 Cookbook
This is a set of developer notes for folks interested in more advanced TM1 concepts.
IBM Cognos TM1 - The Official Guide
This book contains learning material for anyone to get up to speed on TM1. It also has many industry specific patterns that can be used and implemented by just following the instructions. The patterns here are pretty good and they will be a big help over starting from scratch.
Monday, May 25, 2015
Thursday, May 21, 2015
Speeding up Clarity with Analysis Services Compression
Overview
Some Clarity implementations use Microsoft Analysis Services as the OLAP engine. For those implementations, there are some system settings we can enable to speed things up. These should only be enabled in a production environment. Development environments where objects are changing should not have any caching or compression enabled.Implementing Compression in Analysis Services
Below are the steps to implement caching and compression in Analysis Services.Step 1 - Open SQL Server Management Studio
This should already be installed on your server. When you open the program, be sure to select 'Analysis Services' as the server type. We want to connect to the OLAP engine, not the database engine.Step 2 - Open Service Properties
After connecting, you should be able to right click on the server name and select properties. This will open the service properties. If you do not have this option, you probably do not have administrative privileges on the service. By default, the only person who has administrative privileges on this service is the user account through which the service runs.
If you need to check which account this runs as, it can be seen on the Services control panel. In this system the service runs as Local System. It is also common for this to be a domain account with administrative privileges on both the application server and the database server.
Step 3 - Change Settings
Here are the recommended settings to improve caching and compression.
Network \ Requests \ EnableCompression true
Network \ Responses \ EnableCompression true
Step 4 - Restart the Analysis Services service
Since we've made changes to settings, they will not take effect until we restart the service.Step 5 - Check that everything still works
Compression can have unintended side-effects in some environments. Test a few reports and templates to make sure they still retrieve and save data normally. If everything is fine, that's great. If anything is not working, just put the settings back the way they were and restart the service to rollback.Conclusion
Some Clarity implementations on Analysis Services can benefit from enabling compression at the server level.Speeding up Clarity with IIS Compression
Overview
Clarity is a web application, so web server compression can speed things up a bit for end users. By enabling web server compression, Internet Information Server (IIS) compresses all files sent to the client. If there are folks connecting on slow connections, this can really help. This is something that needs some baseline testing first. In some implementations, enabling compression can actually slow things down.Implementing IIS Compression for Clarity
Below are the steps for implementing Internet Information Server server-side compression to support faster access over limited bandwidth connections to the Clarity server.Step 1 - Baseline Test
Before doing anything, pick a long running report that returns a big dataset. Run this from a user's workstation and time how long it takes for the report to appear after selecting page options. This is now our baseline for timing performance.Step 2 - Check current compression settings
From the server, review and run the following batch file to check what the current settings are, and if you have the same version of IIS running.HttpCompressionSettingsCheck.bat
@ECHO OFFECHO.
ECHO Checking settings for IIS6 HTTP Compression
ECHO.
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/deflate/HcFileExtensions
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/deflate/HcDoStaticCompression
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/deflate/HcDynamicCompressionLevel
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/deflate/HcOnDemandCompLevel
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/deflate/HcScriptFileExtensions
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/gzip/HcFileExtensions
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/gzip/HcDoStaticCompression
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/gzip/HcDynamicCompressionLevel
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/gzip/HcOnDemandCompLevel
cscript C:\Inetpub\AdminScripts\adsutil.vbs get /w3svc/filters/compression/gzip/HcScriptFileExtensions
ECHO.
ECHO.
ECHO Changes completed. Do an iisreset for changes to have effect!
ECHO.
PAUSE
Step 3 - Enable compression
From the server, review and run the following batch file to turn on the maximum level of compression.HttpCompressionSettings.bat
@ECHO OFFECHO.
ECHO Adding "Best practice" settings for IIS6 HTTP Compression
ECHO.
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcFileExtensions "css" "htm" "html" "txt" "js" "rdf" "vbs"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcDoStaticCompression "TRUE"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcDynamicCompressionLevel "9"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcOnDemandCompLevel "9"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcScriptFileExtensions "aspx" "asmx" "asbx" "ashx" "axd" "php" "asp"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcFileExtensions "css" "htm" "html" "txt" "js" "rdf" "vbs"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcDoStaticCompression "TRUE"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcDynamicCompressionLevel "9"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcOnDemandCompLevel "9"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcScriptFileExtensions "aspx" "asmx" "asbx" "ashx" "axd" "php" "asp"
ECHO.
ECHO.
ECHO Changes completed. Do an iisreset for changes to have effect!
ECHO.
PAUSE
Step 4 - Restart IIS
At this point, we need to restart IIS. This can be done many ways. One way is to run this command line as an administrator.iisreset
Step 5 - Test against the baseline
Now that we have compression enabled, run the same test as before. Compare the time of the report from before and after to see if compression has had any effect. Be sure to run it a few times though. The first time, may run the same time or slower, but subsequent runs should be faster.
Step 6 - Decide if you want to rollback or not
At this point, the system could be faster, slower or unchanged. If you want to rollback and put things back the way they were, here is a batch file to set everything back to the default settings. If you do not want to rollback, then we are done.HttpCompressionSettingsUndo.bat
@ECHO OFFECHO.
ECHO Reverting "Best practice" settings for IIS6 HTTP Compression to Default
ECHO.
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcFileExtensions "htm" "html" "txt"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcDoStaticCompression "FALSE"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcDynamicCompressionLevel "0"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcOnDemandCompLevel "10"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/deflate/HcScriptFileExtensions "asp" "dll" "exe"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcFileExtensions "htm" "html" "txt"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcDoStaticCompression "TRUE"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcDynamicCompressionLevel "0"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcOnDemandCompLevel "10"
cscript C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/filters/compression/gzip/HcScriptFileExtensions "asp" "dll" "exe"
ECHO.
ECHO.
ECHO Changes completed. Do an iisreset for changes to have effect!
ECHO.
PAUSE
Conclusion
As a web application, Clarity can benefit from some internet information server configuration tweaks, like enabling compression. Above are steps to check current compression settings, enable compression and rollback changes. As these are administrative tasks, there are risks involved. If you would like assistance with any of these items, please reach out to us at http://www.clearinsight.ca and we will be happy to help.Thursday, March 12, 2015
Virtualizating an IBM Clarity Server
Virtualize Clarity?
Recently, I worked with a client whose IT department was going through the process of virtualizing physical servers into the cloud. For them, moving to the cloud would reduce their maintenance effort, and provide a safe off-site location for all their data. Their IBM Clarity servers were physical boxes located in their office datacenter. In this case, the client used Azure, but SoftLayer is another good option. For these folks, virtualizing was the strategic decision.
Experiment First
As an experiment, they shutdown the development server, took an image of it, and uploaded it to Azure. This required a few hours of downtime for the whole thing, but it was all planned, so users knew what to expect. The corporate network was setup so any of their Azure servers still appear as a regular server in their domain. There were no VPN clients required to access the server. When the virtual machine started up, it came online and just worked. The server still had the same machine name, same domain and same corporate IP. When we first logged into the box and ran through some of the application, we found the speed picked up too. Through testing, we identified disk access times were 75% faster. Making backups, restoring backups and copying large folders all seemed much faster now.
Pros vs Cons
In general, there are some really nice benefits to virtualizing any environment. Here are some to think about. Should you do it? Well, it depends. It depends on how you view some of these pros and cons.
|
|
|
|
User Experience
From a user's perspective, we were curious how they would experience the change. Since Clarity is a web-based planning tool, many users just access the website. Their bookmarks still worked. Their network credentials still worked. They could still perform all their same actions. Saving was the same. Retrieving was faster. The most important observations were that it worked, and performance was the same or better.
Conclusion
Whether to virtualize a server or not has many considerations. For these folks, it worked very well. Any organization considering this should think about these questions:
- Are there strategic reasons for or against?
- Are there monetary reasons for or against?
- Are there legal reasons for or against?
From a technical perspective, I think there are strong technologies out now to support server applications living in the cloud. In a day when many people work remotely, do we really care where the server lives? IMHO, as long as it works and we can get our jobs done servers can be virtualized.
Thursday, February 26, 2015
Only Send Changed Rows - Why do I care?
What Does This Do?
Recently, a client was trying to figure out why a template wasn't working and it came down to just one checkbox, the Only Send Changed Rows checkbox. By default, this is checked when you start building a template, but what does it mean, and why do I care? If we are working with a grid of 100 accounts, showing the projections for each month of the year (12 months), we have 1200 cells that could be updated (12 months * 100 accounts). If we change the projection for only one account in one month, then only one cell is being changed. When saving, we need to send data for cells back to the database. If we only changed one cell, sending one cell back is faster than sending 1200.When Would I Change This?
This sounds like something that should always be enabled, right? Nope. There is a very specific, but common, case when this checkbox needs to be disabled. Imagine you are building a template where folks enter driver projections for their budget. Maybe they enter how many units they expect to sell over each of the next 12 months. In a hidden range, there are formulae that take the driver and multiply it by standard rates to figure out ancillary revenue or additional costs to be budgeted. If a user changes a driver in the top section, Clarity knows that rows has changed and marks it correctly. Clarity does NOT know the values in the hidden section have changed, so those never get saved back to the cube. This creates a very frustrating experience for the person developing this report. It appears that the saving just isn't working. The numbers from the hidden section never get updated in the cube. The Excel formulae are perfect. The only challenge is that Clarity doesn't know it needs to send these cells back to the cube. If you look at the olap datamap properties page, shown above, and ever see the combination shown for BudgetNR, you NEED to disable this feature. The combination of Allow Update and Preserve Formulas requires that the Only Send Changed Rows feature be disabled. This is when we uncheck the Only Send Changed Rows checkbox. This auto-magically fixes our issue and everything works as expected. The calculated values in our hidden range are saved back to the cube and we are done.Any Downside?
The only downside is that each time this template saves, it MUST send back every cell. In our example above, we are sending back all 1200 cells to be saved every time. For 1200 cells, the difference won't even be noticeable. Over 10,000 cells, the template will start feeling clunking and quite slow. As a rule of thumb, templates should take less than 3 seconds to save. From my experience, 3 seconds is about the amount of time someone can wait without losing their train of thought, or losing their feeling of flow. When our train of thought or flow is lost, we easily get frustrated. As with all template development, make sure you only show the cells you need, use bottom level leaves and avoid making people scroll around the screen. Following those simple principles will always lead to happier users, and fewer support calls.
Subscribe to:
Posts (Atom)