Skip to content

HDI - HANA Deployment Infrastructure

SAP HANA Deployment Infrastructure (HDI) is a service that enables you to deploy database development artifacts to so-called containers. HDI is supported in XSK via the *.hdi and *.hdiconfig files.

SAP Help Portal

For more information, see SAP HANA Deployment Infrastructure Reference (SAP HANA Cloud).

Overview

To support the deployment of database development artifacts via HDI, create *.hdi and *.hdiconfig files in your project:

{
    "configuration": "/hdi-ext/config.hdiconfig",
    "users": ["XSK_SAMPLES_HDI_EXT"],
    "group": "XSK_HDI_EXT_GROUP",
    "container": "XSK_HDI_EXT",
    "deploy": [
        "/hdi-ext/Customers.hdbsynonym",
        "/hdi-ext/CustomersCalcView.hdbcalculationview"
    ],
    "undeploy": []
}
{
   "file_suffixes":{
      "hdbsynonym":{
         "plugin_name":"com.sap.hana.di.synonym"
      },
      "hdbpublicsynonym":{
         "plugin_name":"com.sap.hana.di.publicsynonym"
      },
      "hdbcalculationview":{
         "plugin_name":"com.sap.hana.di.calculationview"
      }
   }
}

Maintenance

CREATE LOCAL TEMPORARY COLUMN TABLE #DROP_CONTAINER_PARAMETERS LIKE _SYS_DI.TT_PARAMETERS;
INSERT INTO #DROP_CONTAINER_PARAMETERS (KEY, VALUE) VALUES ('ignore_work', 'true');
INSERT INTO #DROP_CONTAINER_PARAMETERS (KEY, VALUE) VALUES ('ignore_deployed', 'true');
CALL _SYS_DI#<HDI-Container-Group>.DROP_CONTAINER('<HDI-Container-Name>', #DROP_CONTAINER_PARAMETERS, ?, ?, ?);
DROP TABLE #DROP_CONTAINER_PARAMETERS;

Note

Replace the following placeholders:

  • <HDI-Container-Group> - the HDI Container Group
  • <HDI-Container-Name> - the HDI Container Name

For more information, see: Drop a Container

To grant HDI priviliges to HANA database user, execute the following script:

CREATE LOCAL TEMPORARY TABLE #PRIVILEGES LIKE _SYS_DI.TT_API_PRIVILEGES;

INSERT INTO #PRIVILEGES (PRINCIPAL_NAME, PRIVILEGE_NAME, OBJECT_NAME)
SELECT '<HANA-Username>', PRIVILEGE_NAME, OBJECT_NAME FROM _SYS_DI.T_DEFAULT_DI_ADMIN_PRIVILEGES;

CALL _SYS_DI.GRANT_CONTAINER_GROUP_API_PRIVILEGES('_SYS_DI', #PRIVILEGES, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #PRIVILEGES;

Note

Replace the <HANA-Username> placeholder with the HANA database user, used for the migration.

HDI Plugins

List of HDI supported database development artifacts:

Application Time-Period Table Plug-in (.hdbapplicationtime)

"hdbapplicationtime" : {
   "plugin_name" : "com.sap.hana.di.applicationtime"
}

Analytic Privileges (.hdbanalyticprivilege)

"hdbanalyticprivilege" : {
   "plugin_name" : "com.sap.hana.di.analyticprivilege"
}

Calculation Views (.hdbcalculationview)

"hdbcalculationview" : {
   "plugin_name" : "com.sap.hana.di.calculationview"
}

Constraints (.hdbconstraint)

"hdbconstraint" : {
   "plugin_name" : "com.sap.hana.di.constraint"
}

Copy Only (.txt)

"txt" : {
   "plugin_name" : "com.sap.hana.di.copyonly"
}

Document Store Collections (.hdbcollection)

"hdbcollection" : {
   "plugin_name" : "com.sap.hana.di.collection"
}

Document Store Collection Index (.hdbcollectionindex)

Flowgraph (.hdbflowgraph)

"hdbflowgraph" : {
  "plugin_name"   : "com.sap.hana.di.flowgraph"
}

Functions (.hdbfunction)

"hdbfunction" : {
   "plugin_name" : "com.sap.hana.di.function"
}

Graph Workspaces (.hdbgraphworkspace)

"hdbgraphworkspace" : {
   "plugin_name" : "com.sap.hana.di.graphworkspace"
}

Indexes (.hdbindex)

"hdbindex" : {
   "plugin_name" : "com.sap.hana.di.index"
}

Libraries (.hdblibrary)

"hdblibrary" : {
   "plugin_name" : "com.sap.hana.di.library"
}

Logical Schema Definition (.hdblogicalschema)

"hdblogicalschema" : { 
   "plugin_name" : "com.sap.hana.di.logicalschema"
}

Migration Tables (.hdbmigrationtable)

"hdbmigrationtable" : {
   "plugin_name" : "com.sap.hana.di.table.migration"
}

Procedures (.hdbprocedure)

"hdbprocedure" : {
   "plugin_name" : "com.sap.hana.di.procedure"
}

Projection Views (.hdbprojectionview)

"hdbprojectionview" : { 
   "plugin_name" : "com.sap.hana.di.projectionview"
}, 
"hdbprojectionviewconfig" : { 
   "plugin_name" : "com.sap.hana.di.projectionview.config"
}

Public Synonym (.hdbpublicsynonym)

"hdbpublicsynonym": { 
   "plugin_name" : "com.sap.hana.di.publicsynonym"
}

Replication Task (.hdbreptask)

"hdbreptask" : {
   "plugin_name"   : "com.sap.hana.di.reptask"
}

Result Cache (.hdbresultcache)

"hdbresultcache": { 
   "plugin_name" : "com.sap.hana.di.resultcache"
}

Roles (.hdbrole)

"hdbrole" : { 
   "plugin_name" : "com.sap.hana.di.role"
}, 
"hdbroleconfig" : { 
   "plugin_name" : "com.sap.hana.di.role.config"
}

Search Rule Set (.hdbsearchruleset)

"hdbsearchruleset" : {
   "plugin_name" : "com.sap.hana.di.searchruleset"
}

Sequence (.hdbsequence)

"hdbsequence" : {
   "plugin_name" : "com.sap.hana.di.sequence"
}

SQL Views (.hdbview)

"hdbview" : {
   "plugin_name" : "com.sap.hana.di.view"
}

Statistics (.hdbstatistics)

"hdbstatistics" : {
   "plugin_name" : "com.sap.hana.di.statistics"
}

Structured Privilege (.hdbstructuredprivilege)

"hdbstructuredprivilege" : {
   "plugin_name" : "com.sap.hana.di.structuredprivilege"
}

Synonyms (.hdbsynonym and .hdbsynonymconfig)

"hdbsynonym" : { 
   "plugin_name" : "com.sap.hana.di.synonym"
}, 
"hdbsynonymconfig" : { 
   "plugin_name" : "com.sap.hana.di.synonym.config"
}

System Versioning Table (.hdbsystemversioning)

"hdbsystemversioning" : { 
   "plugin_name" : "com.sap.hana.di.systemversioning"
}

Tables (.hdbtable and .hdbdropcreatetable)

"hdbtable" : { 
    "plugin_name" : "com.sap.hana.di.table"
}, 
"hdbdropcreatetable" : {
    "plugin_name" : "com.sap.hana.di.dropcreatetable"
}

Table Data (.hdbtabledata)

"hdbtabledata" : {
  "plugin_name" : "com.sap.hana.di.tabledata.properties"
}, 
"csv" : { 
  "plugin_name" : "com.sap.hana.di.tabledata.properties"
}

Table Data Properties (.properties)

"properties" : {
   "plugin_name" : "com.sap.hana.di.tabledata.properties"
}, 
"tags" : { 
   "plugin_name" : "com.sap.hana.di.tabledata.properties"
}

Table Type (.hdbtabletype)

"hdbtabletype" : {
   "plugin_name" : "com.sap.hana.di.tabletype"
}

Triggers (.hdbtrigger)

"hdbtrigger" : {
   "plugin_name" : "com.sap.hana.di.trigger"
}

Virtual Functions (.hdbvirtualfunction)

"hdbvirtualfunction" : {
   "plugin_name" : "com.sap.hana.di.virtualfunction"
}
"hdbvirtualfunctionconfig" : {
   "plugin_name" : "com.sap.hana.di.virtualfunction.config"
}

Virtual Procedures (.hdbvirtualprocedure)

"hdbvirtualprocedure" : { 
   "plugin_name" : "com.sap.hana.di.virtualprocedure"
}, 
"hdbprojectionviewconfig" : { 
   "plugin_name" : "com.sap.hana.di.virtualprocedure.config"
}

Virtual Tables (.hdbvirtualtable)

"hdbvirtualtable" : {
   "plugin_name" : "com.sap.hana.di.virtualtable"
}, 
"hdbvirtualtableconfig" : { 
   "plugin_name" : "com.sap.hana.di.virtualtable.config"
}

Virtual Packages (.hdbvirtualpackage)

"hdbvirtualpackagehadoop" : {
   "plugin_name" : "com.sap.hana.di.virtualpackage.hadoop" 
},
"hdbvirtualpackagesparksql" : { 
   "plugin_name" : "com.sap.hana.di.virtualpackage.sparksql"
}