mstrio provides a high-level interface for Python and R and is designed to give data scientists, developers, and administrators simple and secure access to their MicroStrategy environment. It wraps MicroStrategy REST APIs into simple workflows, allowing users to fetch data from cubes and reports, create new datasets, add new data to existing datasets, and manage Users/User Groups, Servers, Projects, and more. Since it enforces MicroStrategy’s user and object security model, you don’t need to worry about setting up separate security rules.
With mstrio-py for data science, it’s easy to integrate cross-departmental, trustworthy business data in machine learning workflows and enable decision-makers to take action on predictive insights in MicroStrategy Reports, Dossiers, HyperIntelligence Cards, and customized, embedded analytical applications.
With mstrio-py for system administration, it’s easy to minimize costs by automating critical, time-consuming administrative tasks, even enabling administrators to leverage the power of Python to address complex administrative workflows for maintaining a MicroStrategy environment.
MicroStrategy for Jupyter is an extension for Jupyter Notebook which provides a graphical user interface for mstrio-py methods with the help of which user can perform all of the import and export actions without writing a single line of code manually. MicroStrategy for Jupyter is contained within mstrio-py package and is available after installation and enabling as Jupyter extension
- Main Features
- Documentation
- Usage Remarks
- Installation
- Versioning & Changelog
- Deprecating Features
- More Resources
- Other
Main features of mstrio-py allows to access MicroStrategy data:
-
Connect to your MicroStrategy environment using Connection class (see code_snippets)
Note: to log into Library and use mstrio-py user needs to have UseLibrary privilege.
-
Import and filter data from a OlapCube, SuperCube or Report into a Pandas DataFrame (see code_snippets)
-
Export data into MicroStrategy by creating or updating SuperCube (see code_snippets)
Since version 11.3.0.1, mstrio-py includes also administration modules:
- Project management module (see code_snippets)
- Server management module (see code_snippets)
- User and User Group management modules (see code_snippets)
- Schedules management module (see code_snippets)
- Subscription management modules including Email Subscription, Cache Update Subscription, File Subscription, FTP Subscription and History List Subscription (see code_snippets)
- User Library module (see code_snippets)
- User Connections management module
- Privilege and Security Role management modules (see code_snippets)
- Cube Cache management modules (see code_snippets)
- Intelligent Cube management modules (see code_snippets)
- Security filter module (see code_snippets)
- Datasources and Connection Mapping subpackage for database management (see code_snippets)
- Job Monitor module for job monitoring (see code_snippets)
- Object management module (see code_snippets)
- Contact module (see code_snippets)
- Contact Group module (see code_snippets)
- Device module (see code_snippets)
- Transmitter module (see code_snippets)
- Event module (see code_snippets)
- Migration module (see code_snippets) - NOTE: available as a Functionality Preview. It is subject to change until it is released as Generally Available.
- Schema Management module (see code_snippets)
- User Hierarchy module (see code_snippets)
- Attribute module (see code_snippets)
- Fact module (see code_snippets)
- Table module (see code_snippets)
- Filter module (see code_snippets)
- Transformation module (see code_snippets)
- Metric module (see code_snippets)
- Document module (see code_snippets)
- Dossier module (see code_snippets)
- Content Cache module (see code_snippets)
- Dynamic Recipient List module (see code_snippets)
Detailed information about mstrio-py package can be found in official documentation.
- Chrome is the only supported web browser.
mstrio-py
should work properly in Safari, Opera or Edge but we cannot guarantee a seamless experience. - It is recommended NOT to use Anaconda environment. Please see Installation section below for details.
- GUI
Import -> Prepare Data
filters out all "Row Count - ..." columns even if they are an integral part of a Dataset. Starting column's name with "Row Count" is not advised.
- Currently it is not possible to use
mstrio-py
package to update cubes created via Web. Unfortunately it is not possible to use any REST API endpoint to check whether cube was created via Web or via REST API to provide some warning. In case of seeing one of the following error messages it is most probable that cube was created via Web and REST API can't handle its update, so if you want to update this particular cube you have to use Web.
When we tried to map the new dataset, we detected that some columns are missing or the data type changed, etc.
We could not obtain the data because the DB connection changed and the table does not exist anymore.
- When trying to download a big IMDB Cube (or a Report based on such Cube) on multi-node environment, sometimes the process may fail. This is due to the characteristic of data retrieval of IMDB Cubes with connection to more than one node on iServer. For now, known workaround is to log out and just simply try again. This type of issue can be identified when seeing any of the following error messages during work with IMDB Cube on multi-node environment:
Cube cannot be found.
(even if previously it was found without issue)
Error getting cube metadata information. I-Server Error ERR001, (ServiceManager: XML syntax error.)
- Python 3.10+
- MicroStrategy 2019 Update 4 (11.1.4)+
- CORS enabled on MicroStrategy Library server
- Cookies sent by MicroStrategy Library server have 'SameSite' parameter set to 'None'
Note: MicroStrategy for Jupyter is accessible only to users with assigned Microstrategy privileges:
Use Application Jupyter
and Use Library Web
. For more details, please refer to Microstrategy licensing.
Note: it is NOT recommended to install mstrio-py in an Anaconda environment. For a seamless experience, install and run it in Python's virtual environment instead.
Installation is easy when using pip. Read more about installation on MicroStrategy's product documentation.
pip install mstrio-py
Once mstrio-py is installed you can install and enable the Jupyter Notebook extension by using the commands below:
jupyter nbextension install connector-jupyter --py --sys-prefix
jupyter nbextension enable connector-jupyter --py --sys-prefix
Current version: 11.3.9.101 (3 March 2023). Check out Changelog to see what's new.
mstrio-py is constantly developed to support newest MicroStrategy REST APIs. Functionalities may be added to mstrio on monthly basis. It is recommended to always install the newest version of mstrio-py, as it will be most stable and still maintain backwards compatibility with various MicroStrategy installations, dating back to 11.1.4.
Features that will be added to the package but require APIs not supported by your environment (I-Server), will raise VersionException
.
mstrio-py can be used for both, data-science related activities and for administrative tasks. Former requires at least MicroStrategy 2019 Update 4 (11.1.4), latter works with 11.2.1 and higher.
If you intend to use mstrio with MicroStrategy version older than 11.1.4, refer to the PyPI package archive to download mstrio 10.11.1, which is supported on:
- MicroStrategy 2019 (11.1)
- MicroStrategy 2019 Update 1 (11.1.1)
- MicroStrategy 2019 Update 2 (11.1.2)
- MicroStrategy 2019 Update 3 (11.1.3)
Refer to the PyPI package archive for a list of available versions.
To install a specific, archived version of mstrio, choose the desired version available on PyPI package archive and install with pip
, as follows:
pip install mstrio-py==10.11.1
When features (modules, parameters, attributes, methods etc.) are marked for deprecation but still accessed, the following DeprecationWarning
will be shown (example below). The functionality will continue to work until the version specified in the warning is released.
- Tutorials for mstrio
- Check out mstrio for R
- Learn more about the MicroStrategy REST API
- MicroStrategy REST API demo documentation
"Jupyter" and the Jupyter logos are trademarks or registered trademarks of NumFOCUS.