HANA Cloud_Publish multiple HDI containers to multiple SAC tenants via one HANA Analytics Adapter
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.
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.
As explained in the blog of Ian Henry, you deploy the HANA Analytics Adapter with the Business Application Studio.
> 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 :
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.
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.
Hi @Maxime Simon,
How to do it in multi tenant mode instead of with single HDI container? Will Hana adaptor works with instance manager?
We have multitenant application which used Hana cloud as backend and uses "App Managed SAP HANA Schemas & HDI Containers" to manage and deploy HDI containers per tenant.
Does SAC tenant connect to the respective tenant schema (HDI container) to achieve multitenancy and data isolation for the other tenants (HDI container) .