A friend forwarded some more interview questions regarding MicroStrategy, but this time with answers. I’ve not checked the answers. Enjoy.
- What are Logical Views used for?
Logical Views allows application architects to create any desired view using MicroStrategy, without DBA involvement. Once these Logical views are created, they are available to the report designer in a way similar to any other table. This allows developers to model attributes and facts whose expressions span multiple tables.
- How will Project Sources be configured in MSTR Office?
By editing the projectsources.xml, new project sources can be added.
- Difference between standard, absolute and ignore condition in metrics?
Standard filtering allows the report filter to affect the metric.
Absolute filtering raises the report filter to the level of the target, so all subcategories in the categories included on the report are added together.
Ignore filtering disregards filtering criteria based on the attribute in the target and its related attributes (both parents and children).
- Comparison between Consolidations and Custom Groups?
A custom group is a set of special filters that can be placed on a template. It is made up of an ordered collection of elements called custom group elements. Consolidations are used to specify the data you want to view in your report. They allow you to group attribute elements in new ways without changing the metadata and warehouse definitions.
- What is an object prompt?
An object prompt allows you to select which MicroStrategy objects to include in a report, such as attributes, metrics, custom groups and so on. Object prompts can either determine the definition of the report template or the report filter.
- How the reports are optimized?
VLDB properties allow you to customize the SQL that MicroStrategy generates, and determine how data is processed by the Analytical Engine.
- What is the order of precedence of VLDB properties?
- Difference between Report Limit and Report filter?
A report limit specifies a set of criteria used to restrict the data returned in the report data set after the report metrics are calculated.
Report Filter applies the where condition to the query sent to warehouse to extract the results.
- What is Metric Formula Join Type? How it is different with Metric Join Type?
This is basically used for Compound Metrics and determines how the different tables used in metric formula are joined.
Whereas the Metric Join Type determines how the metrics are joined to other metrics.
- What are attribute roles?
A user defines two attributes that have the same definition but play different roles in the business model. In this example, attribute Origin Airport and Destination Airport are defined using the same Lookup Table and Column (Airport_ID). Both attributes share the same forms, or information about them (Description, Location, etc.). In the fact table, however, a separate column exists for each of their roles (Origin_Airport_ID and Destination_Airport_ID).
- How do we resolve attribute roles?
By creating explicit table alias for the same or enabling the Automatic Attribute Role recognition.
- What are statistics tables and how do you configure the project statistics?
Statistics tables contain data on the MicroStrategy system’s usage and performance, and are populated by all projects that are configured to log statistics.
- Set up the Enterprise Manager.
- Define the statistics and enterprise warehouse database.
- Create the statistics database instance
- Go the project configuration wizard of the project
- Select statistics and define the what you want to log
- What is the Command Manager?
MicroStrategy Command Manager lets you perform various administrative and application development tasks by using text commands that can be saved as scripts.
Like for example: – server management, user management, security, database management.
- Difference between project merge and object manager?
- Object Manager can move just a few objects or just the objects in a few folders. Project Merge moves all the objects in a project.
- Object Manager must locate the dependents of the copied objects and then determine their differences before performing the copy operation. Project Merge does not do a dependency search, since all the objects in the project are to be copied.
- Project Merge can be run from the command prompt in Microsoft Windows.
- How conflicts occur and what the ways to resolve them?
When copying objects across projects with Object Manager, if an object with the same ID as the source object exists anywhere in the destination project, a conflict occurs.There are various ways to resolve depending upon the conditions like use existing, replace, keep both, use newer, use older, update in same path, update in new path and merge privileges.
- How many types the microstrategy license can be bought?
Two types: – named users or cpu license.
- What are report caches and how many types are there?
A report cache is a result set from an executed report that is stored on MicroStrategy Intelligence Server. 4 types: matching caches, history caches, matching-history caches and xml caches.
- While establishing relationship between attributes how do you decide which attribute qualifies as child and which one as parent?
While establishing the relationship between attributes one can either look from business hierarchy point of view and the attribute higher in the hierarchy becomes parent of the attribute lower in the hierarchy. Parent and Child follow a one-to-many relationship. Example Time hierarchy Year > Month > Date. Here Year would be parent of Month and Date and Month parent of Date.
We can also identify Parent-Child relationship from database design point of view. Here in a table the Primary Key uniquely identifies the other columns in the table and hence qualifies as child of all the other attributes from the table, in the same ways as a child in real world identifies his father (at least the biological one).
- What is a joint child?
A joint child is Microstrategy way of handling Composite Keys. Composite keys are constituted of two or more columns which together act as unique identifier. To handle this case in Microstrategy we make this set of columns, constituting composite keys, as joint child.
- What is a logical size of a table and what does it depend on?
Logical size is Microstrategy way of generating the best suitable/optimized SQL to fetch the required data. Microstrategy follows an algorithm to calculate the logical size of a table, which depends on the no of attributes and facts based on the table and also the position of those attributes in the system hierarchy.
The logical size does not depend on the actual data (no of rows) in the database. If the candidate answers this than his concept is wrong.
- What are Level Metrics? And why are they required?
Level metrics are advanced metrics which are set to be evaluated at a specified attribute level. These are required when in the same report you need to roll up a metric at two different levels side by side. Example is comparison of “Revenue from a Region” to “Revenue from a Country”. Here Region and Country are the two different levels.
- What is the difference in the way Microstrategy Handles Custom Group and Consolidations? Any advantage of using one over the other?
Custom Groups are handled at the database end where as Consolidations are handled at the Analytical Engine end. As a result the Consolidations are not an overhead for the database as there is a single pass in the query. On the other hand Custom Groups are an overhead on the database as they fire a separate SQL pass for every Custom group element.
- What are VLDB properties?
VLDB stands for Verly Large Data Base Properties. This is Microstartegy way of handling database specific preferences while generating the report SQL. There are number of them. A few common one are for Attribute or Metric join types, cross join check, type of intermediate table, etc.
- At which levels you can set the VLDB properties? Which level has the highest pecedence?
VLDB Properties can be set at various levels like Report, Template, Metric, Project, Database Instance and DBMS level. Out of this Report level has the highest priority. It overrides all other levels.
- What are the various ways of incorporating security in Microstrategy?
In Microstrategy security can be incorporated using a mix of any of the following ways:
- Putting user specific restrictions at the database end and using user specific connection mapping. This is for column level security.
- Applying folder and object level security to restrict access to certain set of reports/objects
- Applying Security filters to the user. This provides row level security.
- What are pass-through functions and why they are so called? Give some examples.
Pass-through functions are Microstrategy way of generating database specific SQL construct which otherwise are not possible. These are called pass-through functions because Microstrategy does not check the actual SQL construct and dumps it as is on the database. Example include ApplySimple, ApplyComparison, etc.
- Please write a query to get “All the departments, and the count of employee in those department, which have more than 50 employees and are based out of State New York. Following are the table structures:
Department table: Department_ID, Department_Name, State (Note: Department ID is Unique here and more than one department can belong to one State)
Employee Table: Employee_ID, Employee_Name, Department_ID (Note: Employee ID is unique here and more than one Employee can belong to one department, but one employee does not belong to more than one department)
Following should be the query
FROM department dept
JOIN employee emp
ON dept.department_id = emp.department_id
WHERE dept.state = “new york”
GROUP BY dept.department_id
HAVING Count(emp.employee_id) > 50