SAP BusinessObjects (Universe) Interpreter for Apache Zeppelin
Overview
SAP BusinessObjects BI platform (universes) can simplify the lives of business users and IT staff. SAP BusinessObjects is based on universes. The universe contains dual-semantic layer model. The users make queries upon universes. This interpreter is new interface for universes.
Disclaimer SAP interpreter is not official interpreter for SAP BusinessObjects BI platform. It uses BI Semantic Layer REST API
This interpreter is not directly supported by SAP AG.
Tested with versions 4.2SP3 (14.2.3.2220) and 4.2SP5. There is no support for filters in UNX-universes converted from old UNV format.
The universe name must be unique.
Configuring SAP Universe Interpreter
At the "Interpreters" menu, you can edit SAP interpreter or create new one. Zeppelin provides these properties for SAP.
Property Name | Value | Description |
---|---|---|
universe.api.url | http://localhost:6405/biprws | The base url for the SAP BusinessObjects BI platform. You have to edit "localhost" that you may use (ex. http://0.0.0.0:6405/biprws) |
universe.authType | secEnterprise | The type of authentication for API of Universe. Available values: secEnterprise, secLDAP, secWinAD, secSAPR3 |
universe.password | The BI platform user password | |
universe.user | Administrator | The BI platform user login |
How to use
select
statement
where
statement
You can compare two dimensions/measures or use Filter (without value).
Dimesions/Measures can be compared with static values, may be is null
or is not null
, contains or not in list.
Available the nested conditions (using braces "()"). "and" operator have more priority than "or".
If generated query contains promtps, then promtps will appear as dynamic form after paragraph submitting.
Example query
%sap
universe [Universe Name];
select
[Folder1].[Dimension2],
[Folder2].[Dimension3],
[Measure1]
where
[Filter1]
and [Date] > '2018-01-01 00:00:00'
and [Folder1].[Dimension4] is not null
and [Folder1].[Dimension5] in ('Value1', 'Value2');
distinct
keyword
You can write keyword distinct
after keyword select
to return only distinct (different) values.
Example query
%sap
universe [Universe Name];
select distinct
[Folder1].[Dimension2], [Measure1]
where
[Filter1];
limit
keyword
You can write keyword limit
and limit value in the end of query to limit the number of records returned based on a limit value.
Example query
%sap
universe [Universe Name];
select
[Folder1].[Dimension2], [Measure1]
where
[Filter1]
limit 100;
Object Interpolation
The SAP interpreter also supports interpolation of ZeppelinContext
objects into the paragraph text.
To enable this feature set universe.interpolation
to true
. The following example shows one use of this facility:
In Scala cell:
z.put("curr_date", "2018-01-01 00:00:00")
In later SAP cell:
where
[Filter1]
and [Date] > '{curr_date}'