Update : Since
SAP Analytics Cloud, version 2020.20, a live connection can now be established directly from SAC to HANA Cloud. No need for the HANA Analytics Adapter anymore. Learn how to connect
in this blog.
When you want to visualize data residing in SAP HANA Cloud, the best option we offer is SAP Analytics Cloud (SAC).
The steps to connect SAP HANA Cloud to SAC are described in this blog by Ian Henry.
There are also videos by the SAP HANA Academy explaining how to
deploy the HANA Analytics Adapter and
how to enable Single Sign-On.
SAP Analytics Cloud receives live data from SAP HANA Cloud using InA (Information Access) protocol. It is provided with HANA XS for SAP HANA Platform on-premise, but we need to provide it separately with an application called "HANA Analytics Adapter" for SAP HANA Cloud.
I want to share my experience deploying the HANA Analytics Adapter with the goal to publish data residing in multiple HDI containers to multiple SAC tenants.
In SAP HANA Cloud, data resides in tables which are contained in schemas exposed through HDI Containers. Data residing in remote sources can also be exposed through virtual cables within HDI containers.
SAP HANA Cloud integration with SAP Analytics Cloud
First, you need to make sure data in your SAP HANA Cloud database is exposed through
Cube Graphical Calculation views.Only graphical calculation views of type Cube (it means they are aggregated) can be accessed by SAP Analytics Cloud. Learn
here how to create them.
When your HDI container is built, it is registered as a service within the SAP Cloud Platform Cockpit.
Here you can see that my HDI container called "hanacloud" is referenced by the application haa-srv and has three service keys. These keys are used by other services to communicate/use this HDI container.
HDI Containers are listed as Service : hana, with Plan : hdi-shared.
As explained
in the blog of Ian Henry, you deploy the
HANA Analytics Adapter with the Business Application Studio.
During the app deployment, the wizard will ask you a few questions :
> What project name would you like? haa
> Would you like to create a new directory for this project? Yes
## You are binding the HAA to this HDI Container
> What is the name of your HDI container? hanacloud
## SAC Tenant name, if you have multiple these can be adjusted in the mta.yaml
> What is the host of your client application? my-sac-tenant.eu10.sapanalytics.cloud
## Yes = SSO to DB, No = HDI Container user used for DB connection
> Will you be requiring named HANA users? No
> Would you like to add multi-tenant application support? No
## Space name in your SCP sub-account
> Which Cloud Foundry space do you intend to deploy to? dev
The wizard builds you a multi-target application, containing a java app and a node.js app..
The
mta.yaml file defines the dependencies in the Multi-Target Application.
The
xsahaa-hdi-container property defines which HDI container is exposed to SAC through the HANA Analytics Adapter. You ca
The HDI container name can be found in the SAP Cloud Platform Cockpit, it is the "service name".
It is controlled by the parameter service-name in the WebIDE mta.yaml project.
As far as I know, you can only specify one HDI container here. Please correct me if that is wrong.
The allowed origins are defined within the CORS property
allowedOrigin. In here you can define several SAC tenants, following this syntax :
"allowedOrigin": [{"host":"tenant1.cloud.sap", "protocol":"https"}, "host":"tenant2.eu10.sapanalytics.cloud", "protocol":"https"}]
When you build an HDI container on SAP Cloud Platform,
several users get created.
SAC will access data contained in your HDI container via the run-time user.
You can find it in the details of your HDI container. The Run-time user ends with _RT.
hanacloud HDI container details
If you want to access calculation views contained in other HDI containers, add the
access roles to the _RT user. You can add roles via SQL, or via the HANA Cockpit.