Version 2021

Multi-Source

No PostgreSQL specific customizations were made for this feature.

MicroStrategy provides an extension to Intelligence server referred to as Multi-Source Option. With the Multi-Source Option feature, you can connect a project to multiple relational data sources. This lets you integrate all your information from various databases and other relational data sources into a single MicroStrategy project for reporting and analysis purposes. All data sources included by using the Multi-Source Option are integrated as part of the same relational schema for a project.

Accessing multiple relational data sources in a single project can provide many benefits and reporting solutions. There is an obvious benefit of being able to integrate information from various data sources into a single project. Along with accessing data in data sources provided from a centralized server, you can also access personal relational data sources.

For Example

A sales manager wants to include forecast data available in a spreadsheet stored on a sales representative’s local machine. By connecting to the spreadsheet as a relational data source, this forecast data can be viewed along with actual sales data from the centralized database.

Multi-Source Option also allows you to use Freeform SQL, Query Builder, and MDX cube reports, that access secondary data sources, as filters on standard reports. 

For example, we can define one attribute mapped to different columns other than primary database instance:

In this case, for SQL generation, data from the secondary data source would be selected and then inserted as a temporary table into the primary data source. After report execution, the temporary table would be dropped. An example can be found below:

Copy
[DB Instance: Secondary DB Instance] 
select  a01.c_birth_country  c_birth_country, 
a01.c_customer_id  c_customer_id, 
CONCAT(a01.c_first_name, ' ', a01.c_last_name)  c_last_name 
from `customer` a01 


[DB Instance: Primary DB Instance] 
create table ZZOP00 ( 
c_birth_country NVARCHAR(20),  
c_customer_id NCHAR(16),  
c_last_name NCHAR(30)) 

[DB Instance: Primary DB Instance] 
insert into ZZOP00 values ([Analytical Engine Results: c_birth_country, c_customer_id, c_last_name]) 
 
[DB Instance: Primary DB Instance] 
select distinct a11.c_customer_id  c_customer_id, 
a11.c_last_name  c_last_name, 
a12.n_nationkey  n_nationkey, 
a12.n_name  n_name 
from ZZOP00 a11 
join NATION a12 
  on  (a11.c_birth_country = a12.n_name) 
where a12.n_name = 'CHINA' 
 
[DB Instance: Primary DB Instance] 
drop table ZZOP00 b