Outlining the SAP HANA Development Environment

Objectives

After completing this lesson, you will be able to:

  • Explain the high-level architecture of SAP HANA XSA

The SAP HANA Development Environment

From Source Files to Containers

SAP HANA is not only a database but also comes with a native application development framework called Extended Application Services (XSA). With XSA you can build your own applications right on top of the data and it all runs in memory. SAP HANA comes with all the development tools needed to build full-stack applications consisting of a GUI, application layer and the database layer.

A key feature of XSA is that it implements a container-based run-time environment. Each application runs in its own container to ensure strict isolation of all application resources. When a developer is working on the source code they do not need to be concerned with containers or any aspect of the run-time. Containers are automatically generated when the developer or administrator is ready to build the application run-time. Technically, a container is a classic database schema but with extra SAP HANA-related services. A container consists of a classic database schema where all database objects are deployed, but a container also generates additional database schemas to manage additional meta data. When a container is generated, a role and a technical user is also automatically generated to take care of the ownership of the objects within the container. A developer never owns any database object and it is in fact the container's technical user that owns the objects of that container. During a build, the technical user is summoned to execute the action and take ownership of the generated objects. One of the aims of XSA and the container approach is to make it easier to re-deploy the generated application run-times in different environments or at different versions, without having to change a single line of source code.

One of the key rules of XSA development is that every run-time object must be represented by a source file.

Once a source file is created that defines a database artifact, such as a procedure or table, a build is executed. A build compiles the source code into an SQL run-time object within the assigned container. All source files that belong to the same database module within a project, are deployed to the same container. This keeps everything together.

During a build, SAP HANA thoroughly checks that all dependent database objects are represented by source files that are in the same database module. For example, if a database procedure refers to a table, the table definition must be provided by a source file in the same database module where the procedure is defined. If no source file is found for each database object that is in the scope of the build, the build will fail and nothing is built.

SAP HANA XSA works on the principle of 'build all or build nothing'. As an example, imagine you have 300 source files in your build. If there is a syntax error in the SQL of just one source file, the build will fail and no database objects are generated, even if the other source files in the build are valid. You can compare this concept to a commit in SQL.

If you refer to tables that are located in external schemas within the SAP HANA database, you must define a synonym to point to the table. Again, the synonym is defined using a source file in the database module of your project.

If you refer to a table that is connected remotely to the SAP HANA database, you must define a virtual table in SAP HANA, again, using a source file, that points to the remote table.

Collaboration and Continuous Integration/Delivery

SAP Web IDE is an online development space where an application's development team can work together across time zones and geographic regions to develop project deliverables, using a shared repository. As a Git-enabled development environment, SAP Web IDE allows you to isolate developers in order to enable parallel development and testing on parts of the development project. This makes projects more manageable, improves workflows, minimizes the overall risk of code failures.

As well as Git, continuous integration (CI) tools such as Jenkins, allow you to automate the deployment of the finished parts of the application to the QA landscape, and even kick-off test scripts to check for issues before deploying to the production landscape. SAP HANA supports tools such as Git and Jenkins.

SAP HANA EIM Provides a Simplified Data Integration Landscape

SAP HANA includes tools to develop data pipelines. SAP HANA can connect to any data source using an extensive connector/adapter library.

Data can be provisioned from almost any source using a wide range of external ETL tools, both SAP and non-SAP. SAP tools such as SAP Data Services are popular with customers who have complex data integration scenarios. However, SAP HANA includes its own powerful, built-in ETL capabilities. These capabilities are brought to you via SAP HANA Enterprise Information Management (EIM). EIM is a component of the SAP HANA platform and is installed once the basic platform has been setup.

SAP HANA EIM enhances, cleanses, and transforms data to make it more accurate and useful. SAP HANA EIM can connect with any source, provision and cleanse data, and load data into SAP HANA on-premise or in the cloud, and for supported systems, it can write back to the original source.

SAP HANA EIM provides the following capabilities:

  • A simplified landscape - one environment in which to provision and consume data.
  • Access to more data sources.
  • In-memory performance, which means increased speed and decreased latency.

SAP HANA EIM consists of two main functionalities; Smart Data Integration and Smart Data Quality.

Core Components of SAP HANA EIM: SDI and SDQ

Smart Data Integration and Smart Data Quality build the data provisioning tier natively within SAP HANA. Smart Data Integration is a set of functionality provided by several components that you can use to retrieve data from an external system, transform it, and persist it in SAP HANA database tables. Smart Data Quality is a set of functionality provided by several components that you can use to cleanse and enrich data before it is persisted in the SAP HANA database. In combination, Smart Data Integration and Smart Data Quality support the following use cases:

  • Federation: Sending a query to the SAP HANA database for data that exists in an external system.
  • Replication: Copying tables and their contents from an external system into the SAP HANA database with minimal processing.
  • Transformation, cleanse, and enrich: Extracting data from an external system, transforming, cleansing, enriching, and persisting the results in the SAP HANA database.
  • Virtualization: Viewing data is more accurate after transforming the data.

SAP HANA EIM is integrated in XSA. ETL processes are always based on SDI and SDQ and can be modeled, tested, and executed using the SAP HANA Web IDE.

Log in to track your progress & complete quizzes