Skip to Content
0

Report - Best design to pull data from HANA and Non-Hana DB

Dec 27, 2017 at 02:00 PM

79

avatar image
Former Member

Hello,

We have a requirement to build a report in UI5 where data is coming from System1 (on HANA DB) and System2 (on Oracle DB). The amount of data is huge from System1 but very less from System2. How best we should design this report w.r.t. performance?

Below are the options I think of:

1. Create Hana XS application (XSJS ) in System1 and make a call to System2 to get the information and show in UI.

2. Create Hana XS application (XSOData) in System1 and OData (v2) on System2. From UI make a call to get the data from System2.

3. Create a UI5 application in Netweaver Gateway (new system) and get the data from both systems (hub deployment) and show the result in UI.

Please let us know your thoughts.

Thanks,

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Best Answer
Ivan Mirisola
Dec 27, 2017 at 03:30 PM
0

Hi Rahul,

If you need to perform calculations on both data sources (meaning - they are co-related) before presenting the results to your UI you better use something like SDI (Smart Data Integration). With SDI your data from Oracle can be replicated onto HANA as tables and you would consume tables from both "sources" in a calculation view. This allows you to implement the co-relation between both data tables and expose them as a single OData service. SDI makes sure the tables from oracle get replicated by using an agent (oracle specific). This agent will do an initial load of the table to HANA DB. It will also track table changes being made at Oracle side to send them to HANA DB. Here you have the benefit of using the full power of in-memory computing of HANA and your odata service can therefore retrieve paged data onto your UI (which means more performance to your UI).

If data in not co-related, then both sources can have their own UI retrieval life cycle. Thus you are better of with the approach of consuming two separate services - each implemented on its own server.

If the UI application is deployed on a Gateway System, then it makes sense to consume the services from a single URL. In that case, SAP recommends you to deploy SAP Web Dispatcher and consume services from [ GW (UI/OData) || HANA(Odata/XSJS) ] directly via Web Dispatcher to comply with Same-Origin-Policy. The SOP will apply also for Oracle resources you need to consume via UI.

In other terms, either way, it is recommended to deploy SAP Web Dispatcher in from of your UI.

If you plan on deploying the UI on SCP, than the answer could be different as the Destination Service will "act" as a Web Dispatcher for your app making all requests "seem" to be coming from the same source (which is SCP). In such case you could consume the services from GW, HANA and Oracle using the SAP Cloud Connector to expose the services to the Destinations you created for your UI.

Regards,
Ivan

Show 3 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Thanks a lot, Ivan. This was really helpful. Data are not related so we will look into the option of creating separate services in both the servers.

We already have Web Dispatcher installed in front of UI system but need some clarification on below comment (apologies for that). Does it mean when we call Service1 from UI the request will go to System1 without going inside Gateway (without RFC) and same for Service2? Or, does it mean we create service in System1 but deploy on Gateway (like we deploy Fiori apps)?

If the UI application is deployed on a Gateway System, then it makes sense to consume the services 
from a single URL. In that case, SAP recommends you to deploy SAP Web Dispatcher and consume services from [ GW (UI/OData) || HANA(Odata/XSJS) ] directly via Web Dispatcher to comply with 
Same-Origin-Policy. The SOP will apply also for Oracle resources you need to consume via UI.

Thanks in advance.

0

Hi Rahul,

If you are using services defined on HANA (System1), then consume them directly on HANA via Web Dispatcher. Don't redefine the service from HANA on Gateway - it doesn't add any value and will give you more points of failure to troubleshoot in case of errors. However, you might have services and uis defined on GW - remember, a lot of data retrieved from Fiori Launchpad comes from services that were deployed on GW in the first place.

Hope this clarifies.

Regards,
Ivan

0
Former Member

Yes understood now. Thanks a lot again Ivan.

~Rahul

0