Skip to main content

mstrio – Python and R wrappers for the MicroStrategy

mstrio – Python and R wrappers for the MicroStrategy REST APIs


Connecting to MicroStrategy 

Create a connection to the Intelligence Server using Connection() and  connect() in Python and R, respectively. Required arguments for the  Connection() function are the URL for the MicroStrategy REST API server, MicroStrategy Intelligence Server username and password, as well as the MicroStrategy project name. By default, the  connect() function anticipates your MicroStrategy Intelligence Server username and password. LDAP authentication is also supported. Use the optional argument  login_mode=16  in the  connect() function for LDAP authentication. 


Extract data from cubes and reports 

To extract data from MicroStrategy cubes and reports, use the  get_cube() and  get_report() functions. Use your connection object and the ID for the cube or report that you are fetching. You can get the ID by navigating to the cube or report within MicroStrategy Web, right-clicking on the desired cube, and selecting Properties. Alternatively, you can use MicroStrategy Developer in a similar manner.  The  get_cube() and  get_report() functions will return a data frame with the requested data. 


Upload data to MicroStrategy 

Create a new in-memory dataset with the create_dataset() function. You'll need to provide a name for your cube, as well as a name for the table that will contain the data. At this time, only one table per cube is supported. The create_cube() function will return the datasetID and tableID, which can be used to update a dataset with new data. 


Add or update a dataset with new data 

Once a dataset has been created, you can both update the data within the cube and add new data to it with the  update_dataset() function. Note that you'll need to pass in both the datasetID and tableID for the target dataset and table within the dataset, respectively. These are returned by the  create_dataset() function. 
The  update_policy  parameter controls the update behavior. Currently supported update operations are: 
  • add (inserts entirely new data) 
  • update (updates existing data) 
  • upsert (simultaneously updates existing data and inserts new data) 
  • replace (truncates and replaces the data)
This Knowledge Base article introduces "mstrio," Python and R packages which provide an interface for the MicroStrategy REST APIs. With a few lines of code, data scientists can extract data from cubes and reports and publish entirely new datasets for consumption by other analysts. 
This provides data scientists access to trusted, operational business data using Python and R, which is used in an overwhelming number of data science projects today. With mstrio, data scientists can quickly push their findings into a MicroStrategy dataset, enabling decision-makers to act on the insights. 

Connecting to MicroStrategy 

Create a connection to the Intelligence Server using Connection() and  connect() in Python and R, respectively. Required arguments for the  Connection() function are the URL for the MicroStrategy REST API server, MicroStrategy Intelligence Server username and password, as well as the MicroStrategy project name. By default, the  connect() function anticipates your MicroStrategy Intelligence Server username and password. LDAP authentication is also supported. Use the optional argument  login_mode=16  in the  connect() function for LDAP authentication. 

Extract data from cubes and reports 

To extract data from MicroStrategy cubes and reports, use the  get_cube() and  get_report() functions. Use your connection object and the ID for the cube or report that you are fetching. You can get the ID by navigating to the cube or report within MicroStrategy Web, right-clicking on the desired cube, and selecting Properties. Alternatively, you can use MicroStrategy Developer in a similar manner.  The  get_cube() and  get_report() functions will return a data frame with the requested data. 

Upload data to MicroStrategy 

Create a new in-memory dataset with the create_dataset() function. You'll need to provide a name for your cube, as well as a name for the table that will contain the data. At this time, only one table per cube is supported. The create_cube() function will return the datasetID and tableID, which can be used to update a dataset with new data. 

Add or update a dataset with new data 

Once a dataset has been created, you can both update the data within the cube and add new data to it with the  update_dataset() function. Note that you'll need to pass in both the datasetID and tableIDfor the target dataset and table within the dataset, respectively. These are returned by the  create_dataset() function. 
The  update_policy  parameter controls the update behavior. Currently supported update operations are: 
  • add (inserts entirely new data) 
  • update (updates existing data) 
  • upsert (simultaneously updates existing data and inserts new data) 
  • replace (truncates and replaces the data). 

Comments

  1. Hi, Thanks for sharing. Very informative and very useful for me.
    PYTHON TRAINING IN HYDERABAD


    ReplyDelete
  2. Hi, Thanks for sharing. Very informative and very useful for me.
    High speed internet Hyderabad

    ReplyDelete
  3. Hi, Thanks for sharing. Very informative and very useful for me.
    open plots in shadnagar

    ReplyDelete
  4. Hi, Thanks for sharing. Very informative and very useful for me.
    HMDA layout near Shadnagar

    ReplyDelete
  5. Hi, Thanks for sharing. Very informative and very useful for me.
    Fiber optic internet Hyderabad

    ReplyDelete
  6. Hi, Thanks for sharing. Very informative and very useful for me.
    Middle Eastern food near Belmont Ave

    ReplyDelete
  7. Hi, Thanks for sharing. Very informative and very useful for me.
    top plots dealers in hyderabad

    ReplyDelete
  8. Hi, Thanks for sharing. Very informative and very useful for me.
    suite with Whirlpool room in kochi

    ReplyDelete

Post a Comment

Popular posts from this blog

Microstrategy Dossiers explained

Microstrategy  Dossiers With the release of MicroStrategy 10.9, we’ve taken a leap forward in our dashboarding capabilities by simplifying the user experience, adding storytelling, and collaboration.MSTR has  evolved dashboards to the point that they are more than dashboards - they are  interactive, collaborative analytic stories . Ultimately, it was time to go beyond dashboards, both in concept and in name, and so  the've  renamed VI dashboards to  ‘ dossiers ’.  Dossiers can be created by using the new Desktop product or Workstation or simply from the Web interface which replaces Visual Insights. All the existing visual Insights dashboards will be converted to Dossiers   With MicroStrategy 10.9, there was an active focus on making it easier to build dashboards for the widest audience of end users. To achieve this, some key new capabilities were added that make it easier to author, read, interact and collaborate on dashboards ...

Data Mart Reports in Microstrategy

Creating Data Mart Reports in Microstrategy   When there is requirement to store all the report results to a database table you can use the interesting feature in Microstratgey called Data Mart Reports. To create a data mart table, you first create a data mart report that defines the columns of the data mart table. You then create the data mart table and populate it with data. The steps below walk you through the process of creating a data mart report and then executing the report to create a data mart table. The steps also include an example for most steps, based on Tutorial sample data in the MicroStrategy Tutorial project.                Follow the simple steps below to create a datamart report: 1 In MicroStrategy Developer, create a new report or select an existing report to use as the data mart table. The report should contain the attributes...

Allow a Visualization to Update the Data in Another Visualization in Dossier

Allow a Visualization to Update the Data in Another Visualization After adding multiple visualizations to a dossier, you can select values in one visualization (that is, the source) to automatically update data in another visualization (that is, the target). This is done by creating a filter on a visualization that targets other visualizations. To Add a Target Visualization to Your Dossier: Open the dossier with the visualization. Click  Insert Visualization   . A blank visualization appears in the dossier. From the Visualizations panel, select  Grid   . Drag an attribute from the Datasets panel to the  Rows  area of the Editor panel to add attributes to the rows. Drag an attribute from the Datasets panel to the  Columns  area of the Editor panel to add attributes to the columns. Drag a metric from the Datasets panel to the  Metrics  area of the Editor panel, to add a metric to the grid. The Metric Names attribute automatically appears i...

Microstrategy Authentication Using the URL API

Microstrategy Authentication Using the URL API Users have to be authenticated before accessing functionality in MicroStrategy Web. Using the URL API, there are three ways for MicroStrategy Web to obtain the information needed to authenticate a user. Opening the login page to gather user for credentials    Bypassing the login page by providing credentials in the URL    Bypassing the login page by providing the session state in the URL A detailed explanation of each method for obtaining the authentication information is provided below. Opening the login page to gather user for credentials If the URL attempts to access a MicroStrategy Web page that requires login and no credentials or session state are provided in the URL, the user is redirected to the login page. If login is successful, the user is redirected to the specified page.   The sample URL shown below executes a report without providing authenticating information. Since the Repo...

Fact tables levels tables in Microstrategy explained

Fact tables levels in Microstrategy: Fact tables are used to store fact data. Fact tables should contain attribute Id's and fact values which are measurable. All the descriptive information about the fact tables should stored in Dimension tables either in Star Schema fashion or Snow Flake Schema fashion which is best suited to your reporting solution. Since attributes provide context for fact values, both fact columns and attribute ID columns are included in fact tables. Facts help to link indirectly related attributes using these attribute ID columns. The attribute ID columns included in a fact table represent the level at which the facts in that table are stored. So the level of a fact table in the Fact_Item_Day_Customer can be the attribute Id's which is at Day, Item & Customer Id level. For example, fact tables containing sales and inventory data look like the tables shown in the following diagram: Base fact columns ver...

display a group horizontally in MSTR document

Display a group horizontally in MSTR document By default,  groups are displayed vertically in a document.  This means that the detail sections are displayed below the Group Header. For example, a document is grouped by Year. The Detail section includes revenue and profit information by region.  Displaying the group vertically yields the following document: For certain documents, displaying and printing the group horizontally is desired. When displayed horizontally, the detail sections are displayed next to the Group Header, running horizontally across the page. The example given above, if displayed horizontally, shows a row containing the year, and then, for each region, the Region, Revenue, and Profit. When the document is viewed as a PDF, it displays as shown below: When being designed, the document with horizontal display looks like the following in MicroStrategy Developer: The sections within the group are turned sideways and listed horizontally...

MicroStrategy URL API Parameters

MicroStrategy URL Structure The following table summarizes the root URL structure used for every request to MicroStrategy Web. Environment Main Application URL Administration URL J2EE http://webserver/MicroStrategy/servlet/mstrWeb http://webserver/MicroStrategy/servlet/mstrWebAdmin .NET http://webserver/MicroStrategy/asp/Main.aspx http://webserver/MicroStrategy/asp/Admin.aspx Every request sent to MicroStrategy Web calls a central controller. Parameters are appended to  Main.aspx  or  mstrWeb  (in a .NET and J2EE environment, respectively) to indicate to the controller how the request should be internally forwarded and handled. The following examples show a URL for accessing a MicroStrategy folder when the user does not have an existing session. The URL contains not only the parameters needed to connect to MicroStrategy Web, but also the parameters needed to log on and create a session. J2EE environment: <a href="http:...

Prompt-in-prompt(Nested Prompts) in Microstrategy

Prompt-in-prompt(Nested Prompts) in  Microstrategy Nested prompts allows you to create one prompt based on the other and other bases on another, nested prompts allows us to prompt the highest level(Like year) to middle level(like Quarter, then to the low level(like Month). Here you can see how to  create a 3-level deep nested prompt that will prompt the user to select a year, then a quarter within that year, then a month within that quarter. Prompt-in-prompt is a feature in which the answer to one prompt is used to define another prompt. This feature is only implemented for element list prompts . The following procedure describes how to achieve this: Create the highest level filter. This is a filter which contains a prompt on an attribute element list. Create a filter on the attribute "Year." Click "prompt on attribute element list" and click "Next" through the rest of the screens to accept the default values. Do not set any additio...

Apply or Pass-through functions in Microstrategy

Ap ply (Pass-Through) functions MSTR Apply functions provide access to functions or syntactic constructs that are not standard in MicroStrategy but are provided by various RDBMS systems.. Syntax common to Apply functions Apply Function Name   ("expression with placeholders", Arg1, Arg2, Arg3, …ArgN) where: Apply Function Name  – is a generic name used for the predefined pass-through functions described above expression with placeholders  – is the string describing the actual expression or syntax that the engine uses while generating the SQL and which is sent to the RDBMS. The placeholders are represented by #0, #1, and so on. "#" is a reserved character for MicroStrategy. Arg  – is an argument that replaces the parameter markers in the pattern. Arg1 replaces #0, Arg2 replaces #1, and so on. There are   five  pre-defined Apply functions to replace regular, predefined functions of the same type. For more details, cli...

User request is completed. (Ran out of memory)

Unable to Run/Edit particular MicroStrategy reports ue to the following error: User request is completed. (Ran out of memory) User request is completed. (Ran out of memory) The above issue appeared in MSTR Web Universal version 10.5 We tried the below options without any luck: 1. i-server restart 2. Web server restart 3. clear document cache/dataset cache 4. Web server cache clear as below: The correct option is to increase the contract memory settings: Using the Memory Contract Manager The  MCM settings are in the Intelligence Server Configuration Editor, in the  Governing Rules: Default: Memory Settings  category. The  Enable single memory allocation governing  option lets you specify how much memory can be reserved for a single Intelligence Server operation at a time. When this option is enabled, each memory request is compared to the  Maximum single allocation size (MBytes)  setting. If the request ...