Cube: Extract a MicroStrategy cube into a R Data.Frame

CubeR Documentation

Extract a MicroStrategy cube into a R Data.Frame

Description

Access, filter, publish, and extract data from MicroStrategy in-memory cubes

Create a Cube object to load basic information on a cube dataset. Specify subset of cube to be fetched through apply_filters() and clear_filters(). Fetch dataset through to_dataframe() method.

Public fields

connection

MicroStrategy connection object

cube_id

Identifier of a report.

parallel

If TRUE, downloads cube data asynchronously. FALSE by default.

name

Cube name.

owner_id

ID of Cube owner.

path

Exact path of the cube location.

last_modified

Date of latest Cube modification.

size

Cube size.

status

Cube status.

attributes

Cube attributes.

metrics

Cube metrics

attr_elements

Cube attribute elements.

selected_attributes

Attributes selected for filtering.

selected_metrics

Metrics selected for filtering.

selected_attr_elements

Attribute elements selected for filtering.

dataframe

Dataframe containing data fetched from the Cube.

dataframe_list

List of dataframes split to match tables in Cube.

instance_id

Identifier of an instance if cube instance has been already initialized.

Methods

Public methods


Method new()

Initialize an instance of a cube.

Usage
Cube$new(connection, cube_id, instance_id = NULL, parallel = FALSE)
Arguments
connection

MicroStrategy connection object. See Connection class.

cube_id

Identifier of a pre-existing cube containing the required data.

instance_id

Identifier of an instance if cube instance has been already initialized, NULL by default.

parallel

(bool, optional): If True, utilize optimal number of threads to increase the download speed. If False (default), this feature will be disabled.


Method to_dataframe()

Extract contents of a cube into a R Data Frame.

Usage
Cube$to_dataframe(limit = NULL, multi_df = FALSE, callback = function(x, y) {
})
Arguments
limit

(int, optional): Used to control data extraction behaviour on cubes with a large number of rows. By default the limit is calculated automatically. If TRUE, overrides automatic limit.

multi_df

If True (default), returns a list of dataframes resembling the table structure of the cube. If FALSE, returns one dataframe.

callback

used by the GUI to extract the progress information.

Returns

Dataframe with data fetched from the given Cube.


Method apply_filters()

Apply filters on the cube data so only the chosen attributes, metrics, and attribute elements are retrieved from the Intelligence Server.

Usage
Cube$apply_filters(
  attributes = NULL,
  metrics = NULL,
  attr_elements = NULL,
  operator = "In"
)
Arguments
attributes

(list or None, optional): ID numbers of attributes to be included in the filter. If list is empty, no attributes will be selected and metric data will be aggregated.

metrics

(list or None, optional): ID numbers of metrics to be included in the filter. If list is empty, no metrics will be selected.

attr_elements

(list or None, optional): Attributes' elements to be included in the filter.

operator

(character, optional): Supported view filter operators are either "In" or "NotIn". This defines whether data will include ("In") or exclude ("NotIn") the supplied attr_elements values.


Method clear_filters()

Clear previously set filters, allowing all attributes, metrics, and attribute elements to be retrieved.

Usage
Cube$clear_filters()

Method get_attr_elements()

Load all attribute elements of the Cube. Accessible via Cube$attr_elements Fetching attriubte elements will also allow for validating attriute elements by the filter object.

Usage
Cube$get_attr_elements(limit = 50000, verbose = TRUE)
Arguments
verbose

If TRUE, displays list of attribute elements.


Method update()

Update single-table cube easily with the data frame stored in the Cube instance (cube$dataframe). Before the update, make sure that the data frame has been modified.

Usage
Cube$update(update_policy = "update")
Arguments
update_policy

(character) Update operation to perform. One of 'add' (inserts new, unique rows), 'update' (updates data in existing rows and columns), 'upsert' (updates existing data and inserts new rows), or 'replace' (replaces the existing data with new data).


Method save_as()

Creates a new single-table cube with the data frame stored in the Cube instance (cube$dataframe). Before the update, make sure that the data exists.

Usage
Cube$save_as(name, description = NULL, folder_id = NULL, table_name = NULL)
Arguments
name

(character): Name of the dataset. Must be less than or equal to 250 characters.

description

(character, optional): Description of the dataset. Must be less than or equal to 250 characters.

folder_id

ID of the shared folder that the dataset should be created within. If 'None', defaults to the user's My Reports folder.

table_name

(character, optional) Name of the table. If NULL, the first table name of the original cube will be used.


Method clone()

The objects of this class are cloneable with this method.

Usage
Cube$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Examples

## Not run: 
# Create a connection object.
connection = Connection$new(base_url, username, password, project_name)

# Create a cube object.
my_cube <- Cube$new(connection=conn, cube_id="...")

# See attributes and metrics in the report.
my_cube$attributes
my_cube$metrics
my_cube$attr_elements

# Specify attributes and metrics (columns) to be fetched.
my_cube$apply_filters(attributes = my_report$attributes[1:2],
                         metrics = my_report$metrics[1:2])

# See the selection of attributes, metrics and attribute elements.
my_cube$selected_attributes
my_cube$selected_metrics
my_cube$selected_attr_elements

# Clear filtering to load a full dataset.
my_cube$clear_filters()

# Fetch data from the Intelligence Server.
my_cube$to_dataframe()

# See the dataframe.
my_cube$dataframe

## End(Not run)

mstrio documentation built on April 13, 2022, 5:07 p.m.