SAP HANA Cloud, Data Lake Client Interfaces Overview
Learn about SAP HANA Cloud, data lake, how to create a free tier instance, how to examine the data lake Relational Engine using SAP HANA Cloud Central, how to install the data lake client, and how to query the database using the SQL Console or the Interactive SQL Client.
SAP HANA Cloud, data lake is composed of two components; a data lake Relational Engine and data lake Files.
Data Lake Relational Engine is a disk-based, column-oriented relational database for storing and analyzing large amounts of infrequently updated data. It descends from SAP IQ, which was previously named Sybase IQ. Because of its heritage, there are commonalities with other Sybase products. Some of the client interface drivers are shared with SAP SQL Anywhere and SAP Adaptive Server Enterprise.
Data Lake Files can be used to store and access unstructured data such as trace files and structured files like CSV, Parquet, or Delta table, or Iceberg table. Structured files can use SQL on Files, which enables SQL queries to be performed on them.
Note, that the data lake Files component, is currently not available in free tier.
Step 2Choose where to deploy the database instances
+
The SAP Business Technology Platform (SAP BTP) provides multiple runtime environments such as Cloud Foundry and Kyma. When a data lake instance is created, it can be created in an SAP BTP subaccount or in a Cloud Foundry space. SAP HANA Cloud Central can be used to provision and manage instances in the SAP BTP subaccount or in a Cloud Foundry space. In the screenshot below, there is an instance of a data lake that was provisioned in the SAP BTP subaccount (Other Environments) and one that was provisioned into Cloud Foundry.
Runtime Environments
SAP HANA Cloud Central can be accessed (once a subscription and setup is complete) under instances and subscriptions.
The following steps provide instructions on how to create a data lake instance in the SAP BTP trial using a free tier service plan. Additional content on this topic is available at Quick Start Tutorial for Data Lake.
There are multiple ways to create a data lake:
A data lake can be created in step 6 of the SAP HANA Database creation wizard.
add a data lake
A data lake can be added to an already created SAP HANA database that does not have a data lake already associated with it.
add data lake
When a data lake is created in either of the previous two methods, it is configured to be maximally compatible with an SAP HANA database.
A data lake can be created that is independent (standalone) of a SAP HANA database by using the Create Instance button.
independent data lake
On the Type page, select the option SAP HANA Cloud, data lake.
Standalone data lake
A standalone data lake can be configured with additional options such a collation value of UTF8BIN and blank padding set to ON to be more compatible with an on-premise SAP IQ.
Perform the following steps to create a data lake Relational Engine.
Open SAP HANA Cloud Central.
If a data lake is not already present, add one using one of the three methods previously described.
Take note that when creating the data lake Relational Engine instance, the administration user is HDLADMIN.
If this instance is a free tier instance or a test instance, set allowed connections to Allow all IP addresses so that client applications can connect from any IP address.
Allowed connections
Press the Refresh button or enable auto-refresh and wait for the status to change from CREATING to RUNNING.
data lake running
Important: SAP HANA Cloud, HANA data lake free tier instances are shut down overnight and will need to be restarted before working with them the next day.
Step 4Examine the Data Lake
+
Once the data lake has been created, its details can be examined.
Click on the instance to show its details.
Show instance details
Input your credentials. These will be stored by SAP HANA Cloud Central.
Credentials
After you enter your credentials, should you wish to use a different set of credentials, the current credentials can be updated using Sign in to the Instance.
Credentials
Step 5Create tables, views, functions, and procedures
+
In this step, a sample HOTEL dataset will be created comprising tables, a view, and a stored procedure.
---- drops the schema and all objects it contains
-- SET SCHEMA HOTELS;
-- DROP VIEW HOTEL_ROOMS_VIEW;
-- DROP PROCEDURE SHOW_RESERVATIONS;
-- DROP TABLE MAINTENANCE;
-- DROP TABLE RESERVATION;
-- DROP TABLE CUSTOMER;
-- DROP TABLE ROOM;
-- DROP TABLE HOTEL;
-- DROP FUNCTION AVERAGE_PRICE;
-- DROP SCHEMA HOTELS;
-- DROP USER USER1;
-- DROP USER USER2;
-- DROP ROLE HOTEL_ADMIN;
-- DROP ROLE HOTEL_READER;
-- SET SCHEMA; --Workaround a bug where creating user fails with f_verify_pwd is no longer valid
CREATEUSERUSER1IDENTIFIEDBYPassword1;CREATEUSERUSER2IDENTIFIEDBYPassword2;CREATEROLEHOTEL_ADMIN;CREATEROLEHOTEL_READER;--Further privileges will be granted later to the tables, views, functions, and procedures that are created below
GRANTSETANYCUSTOMERPUBLICOPTION,READFILETOHOTEL_ADMIN,HOTEL_READER;GRANTEXECUTEONsp_list_directoryTOHOTEL_ADMIN,HOTEL_READER;GRANTEXECUTEONsp_real_list_directoryTOHOTEL_ADMIN,HOTEL_READER;GRANTROLEHOTEL_ADMINTOUSER1;GRANTROLEHOTEL_READERTOUSER2;--Create a schema for the sample hotel dataset
CREATESCHEMAHOTELS;--Specify the privileges for the roles on the schema HOTEL
GRANTCREATEANY,SELECT,UPDATE,INSERT,DELETE,EXECUTEPROCEDUREONSCHEMAHOTELSTOHOTEL_ADMIN;GRANTSELECTONSCHEMAHOTELSTOHOTEL_READER;SETSCHEMAHOTELS;SELECTCURRENTSCHEMA;--Create the objects in the HOTEL schema
CREATETABLEHOTEL(HNOINTEGERPRIMARYKEY,NAMEVARCHAR(50)NOTNULL,ADDRESSVARCHAR(40)NOTNULL,CITYVARCHAR(30)NOTNULL,STATEVARCHAR(2)NOTNULL,ZIPVARCHAR(6));CREATETABLEROOM(HNOINTEGER,TYPEVARCHAR(6),FREENUMERIC(3),PRICENUMERIC(6,2),PRIMARYKEY(HNO,TYPE),FOREIGNKEY(HNO)REFERENCESHOTEL);CREATETABLECUSTOMER(CNOINTEGERPRIMARYKEY,TITLEVARCHAR(7),FIRSTNAMEVARCHAR(20),NAMEVARCHAR(40)NOTNULL,ADDRESSVARCHAR(40)NOTNULL,ZIPVARCHAR(6));CREATETABLERESERVATION(RESNOINTEGERNOTNULLdefaultautoincrement,RNOINTEGERNOTNULL,CNOINTEGER,HNOINTEGER,TYPEVARCHAR(6),ARRIVALDATENOTNULL,DEPARTUREDATENOTNULL,PRIMARYKEY("RESNO","ARRIVAL"),FOREIGNKEY(CNO)REFERENCESCUSTOMER,FOREIGNKEY(HNO)REFERENCESHOTEL);CREATETABLEMAINTENANCE(MNOINTEGERPRIMARYKEY,HNOINTEGER,DESCRIPTIONVARCHAR(100),DATE_PERFORMEDDATE,PERFORMED_BYVARCHAR(40),FOREIGNKEY(HNO)REFERENCESHOTEL);--Note the use of the schema name in the FROM clause
CREATEORREPLACEVIEWHOTEL_ROOMS_VIEWASSELECTH.NAMEASHOTEL_NAME,R.TYPE,R.FREE,R.PRICEFROMHOTELS.ROOMRLEFTJOINHOTELS.HOTELHONR.HNO=H.HNOORDERBYH.NAME;CREATEORREPLACEFUNCTIONAVERAGE_PRICE(room_typeCHAR(6))RETURNSNUMERIC(6,2)BEGINDECLAREavg_priceNUMERIC(6,2);SELECTCAST(ROUND(sum(PRICE)/COUNT(*),2)asNUMERIC(6,2))INTOavg_priceFROMROOMWHERETYPE=room_typeGROUPBYTYPE;RETURNavg_price;END;CREATEORREPLACEPROCEDURESHOW_RESERVATIONS(ININ_HNOINTEGER,ININ_ARRIVALDATE)RESULT(RESNOINTEGER,ARRIVALDATE,NIGHTSINTEGER,HOTEL_NAMEVARCHAR(50),TITLEVARCHAR(7),FIRST_NAMEVARCHAR(20),LAST_NAMEVARCHAR(40))BEGINMESSAGEIN_HNOTOCLIENT;MESSAGEIN_ARRIVALTOCLIENT;SELECTR.RESNO,R.ARRIVAL,DATEDIFF(DAY,R.ARRIVAL,R.DEPARTURE)as"Nights",H.NAME,CUS.TITLE,CUS.FIRSTNAMEAS"FIRST NAME",CUS.NAMEAS"LAST NAME"FROMRESERVATIONASRLEFTOUTERJOINHOTELASHONH.HNO=R.HNOLEFTOUTERJOINCUSTOMERASCUSONCUS.CNO=R.CNOWHERER.ARRIVAL=IN_ARRIVALANDH.HNO=IN_HNOORDERBYCUS.NAMEASC;END;
Open the database objects app. Select the instance, select Tables, and set the schema filter to be HOTELS to limit the returned tables to be those that were just created in the HOTELS schema.
The data lake client install is available without included cryptographic libraries using the SAP Developer License agreement from SAP Development Tools. This version does not require the user to sign in prior to downloading the software. The software will use the cryptographic library found on the OS such as OpenSSL or SAP CommonCryptoLib. Note that it currently does not include the hdlfscli tool.
Tools on demand
The data lake client install is also available from SAP for me. This version includes cryptographic libraries and does require a login and purchase of the software to access the download. To access it, navigate to Support Packages & Patches | By Alphabetical Index (A-Z) | H | HANA CLOUD CLIENTS | HANA CLOUD CLIENTS 1.0 | HANA DATALAKE CLIENT 1.0. Select the platform (Microsoft Windows or Linux) and download the latest version of the archive.
Ensure that SAP JVM (Java Virtual Machine) 8.0 is installed before proceeding with the following steps if you wish to use the DBISQL tool.
Extract the archive.
Shell
tar -zxvf hdlclient-latest-linux-x64.tar.gz
Start the installer.
Shell
./hdbinst
run the installer
Configure the environment variables. This can be done by calling hdlclienv.sh manually or it can be added to the Bash shell by referencing it in .bashrc.
Open the .bashrc.
Shell
pico ~/.bashrc
This tutorial uses notepad and pico as default text editors, but any text editor will do.
Pico can be installed on SUSE Linux with
Shell
sudo zypper install pico
Code
Add the following line to point to the location where the SAP data lake client is installed.
Shell
source ~/sap/hdlclient/bin64/hdlclienv.sh
Test the change by running:
Shell
source ~/.bashrc
The following command should display the install location of the data lake client.
Shell
echo$HDL_CLIENT_HOME
In the case that the data lake client needs to be uninstalled, run the hdbuninst file located in the directory ~/sap/hdlclient/install.
Step 8Install data lake client for Microsoft Windows
+
Ensure that SAP JVM (Java Virtual Machine) 8.0 is installed before proceeding with the following steps if you wish to use the DBISQL tool.
Run hdbsetup.exe.
run the installer
Examine the installation log and take note if the required crypto libraries were located in the machine’s path.
view log
Select View Log and search for crypto
crypto check
If these libraries were not found but are on your machine perhaps as part of the git client, add that folder to your path (For example, C:\Git\mingw64\bin).
After the installation process is completed, open Microsoft Windows, click the Start icon and search for Edit the system environment variables and press the “Environment Variables” button under the “Advanced” tab.
Open Environment Variables
It is also possible to run a batch file that will temporarily set the environment variables. This can be done by calling hdlclienv.bat from within a command prompt.
screenshot showing calling hdlclienv.bat
Then once called, the variables set can be seen by calling SET.
variables set
In the case the data lake client needs to be uninstalled, run the hdbuninst file located in the directory C:\SAP\hdlclient\install.
Step 9Connect with the Interactive SQL Client (DBISQL)
+
The data lake client install includes dbisql Interactive SQL Utility, which can be used to connect and query a data lake Relational Engine. The following steps will provide instructions on how to connect to the data lake Relational Engine using DBISQL and then populate the previously created tables with sample data.
DBISQL requires SAP JVM 8.0. Verify that you have this installed by entering java -version as shown below.
Shell
java -version
java version
If you do not have this version on Microsoft Windows, it can be downloaded and configured as shown below
Download SAP JVM 8.0 and unzip it to c:\SAP\SAPJVM8
In your environment variables, add the bin subdirectory of JAVA_HOME to the existing Path environment variable.
Windows Java variables
Open a new command prompt and test the change.
Shell
java -version
dbisql
The Data Lake Relational Engine should start, this may take a moment. If the location has changed since the install was run, you may need to edit C:\SAP\hdlclient\bin64\dbisql.ini.
If you do not have this version on Linux, it can be downloaded and installed as shown below.
If an error occurs mentioning that saip17.jar file has moved or has been deleted, examine
C:\Users\Public\Documents\DBISQL 17.1.6\dbisql_64.rep and optionally comment out with # the plugins that are not loading.
Specify the connection type.
Connection type
The Connect window may appear enlarged on the screen. This can be adjusted by lowering the Scale and layout value in the device display settings.
Provide the connection details. See below on how to obtain the instance ID and landscape values.
instance ID and landscape
SAP HANA Cloud Central can be used to get the instance ID and landscape value. The landscape value can be obtained from the SQL Endpoint by removing the instance ID from the start and port number from the end.
copy sql endpoint
A failure to connect could be caused by the allowed connections list, which is editable in SAP HANA Cloud Central.
Paste the following code in the console and click run.
In a Bash shell, strings in double quotes versus single quotes are treated [differently](https://stackoverflow.com/questions/6697753/difference-between-single-and-double-quotes-in-bash).
```Shell (Linux)
NOTE:-If you encounter the error message “error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory,” you will need to install libnsl.so.1.
DBISQL connected nogui
Step 10Insert data with Interactive SQL Client (DBISQL)
+
Execute the following insert statements to provide some sample data.
If you do not wish to use the GUI mode, paste the insert statements into a file first and then run dbisql -c "uid..." sql.sql.
SQL
SETSCHEMAHOTELS;INSERTINTOHOTELVALUES(10,'Congress','155 Beechwood St.','Seattle','WA','20005');INSERTINTOHOTELVALUES(11,'Regency','477 17th Avenue','Seattle','WA','20037');INSERTINTOHOTELVALUES(12,'Long Island','1499 Grove Street','Long Island','NY','11788');INSERTINTOHOTELVALUES(13,'Empire State','65 Yellowstone Dr.','Albany','NY','12203');INSERTINTOHOTELVALUES(14,'Midtown','12 Barnard St.','New York','NY','10019');INSERTINTOHOTELVALUES(15,'Eighth Avenue','112 8th Avenue','New York','NY','10019');INSERTINTOHOTELVALUES(16,'Lake Michigan','354 OAK Terrace','Chicago','IL','60601');INSERTINTOHOTELVALUES(17,'Airport','650 C Parkway','Rosemont','IL','60018');INSERTINTOHOTELVALUES(18,'Sunshine','200 Yellowstone Dr.','Clearwater','FL','33575');INSERTINTOHOTELVALUES(19,'Beach','1980 34th St.','Daytona Beach','FL','32018');INSERTINTOHOTELVALUES(20,'Atlantic','111 78th St.','Deerfield Beach','FL','33441');INSERTINTOHOTELVALUES(21,'Long Beach','35 Broadway','Long Beach','CA','90804');INSERTINTOHOTELVALUES(22,'Indian Horse','16 MAIN STREET','Palm Springs','CA','92262');INSERTINTOHOTELVALUES(23,'Star','13 Beechwood Place','Hollywood','CA','90029');INSERTINTOHOTELVALUES(24,'River Boat','788 MAIN STREET','New Orleans','LA','70112');INSERTINTOHOTELVALUES(25,'Ocean Star','45 Pacific Avenue','Atlantic City','NJ','08401');INSERTINTOHOTELVALUES(26,'Bella Ciente','1407 Marshall Ave','Longview','TX','75601');INSERTINTOROOMVALUES(10,'single',20,135.00);INSERTINTOROOMVALUES(10,'double',45,200.00);INSERTINTOROOMVALUES(12,'single',10,70.00);INSERTINTOROOMVALUES(12,'double',13,100.00);INSERTINTOROOMVALUES(13,'single',12,45.00);INSERTINTOROOMVALUES(13,'double',15,80.00);INSERTINTOROOMVALUES(14,'single',20,85.00);INSERTINTOROOMVALUES(14,'double',35,140.00);INSERTINTOROOMVALUES(15,'single',50,105.00);INSERTINTOROOMVALUES(15,'double',230,180.00);INSERTINTOROOMVALUES(15,'suite',12,500.00);INSERTINTOROOMVALUES(16,'single',10,120.00);INSERTINTOROOMVALUES(16,'double',39,200.00);INSERTINTOROOMVALUES(16,'suite',20,500.00);INSERTINTOROOMVALUES(17,'single',4,115.00);INSERTINTOROOMVALUES(17,'double',11,180.00);INSERTINTOROOMVALUES(18,'single',15,90.00);INSERTINTOROOMVALUES(18,'double',19,150.00);INSERTINTOROOMVALUES(18,'suite',5,400.00);INSERTINTOROOMVALUES(19,'single',45,90.00);INSERTINTOROOMVALUES(19,'double',145,150.00);INSERTINTOROOMVALUES(19,'suite',60,300.00);INSERTINTOROOMVALUES(20,'single',11,60.00);INSERTINTOROOMVALUES(20,'double',24,100.00);INSERTINTOROOMVALUES(21,'single',2,70.00);INSERTINTOROOMVALUES(21,'double',10,130.00);INSERTINTOROOMVALUES(22,'single',34,80.00);INSERTINTOROOMVALUES(22,'double',78,140.00);INSERTINTOROOMVALUES(22,'suite',55,350.00);INSERTINTOROOMVALUES(23,'single',89,160.00);INSERTINTOROOMVALUES(23,'double',300,270.00);INSERTINTOROOMVALUES(23,'suite',100,700.00);INSERTINTOROOMVALUES(24,'single',10,125.00);INSERTINTOROOMVALUES(24,'double',9,200.00);INSERTINTOROOMVALUES(24,'suite',78,600.00);INSERTINTOROOMVALUES(25,'single',44,100.00);INSERTINTOROOMVALUES(25,'double',115,190.00);INSERTINTOROOMVALUES(25,'suite',6,450.00);INSERTINTOCUSTOMERVALUES(1000,'Mrs','Jenny','Porter','1340 N. Ash Street, #3','10580');INSERTINTOCUSTOMERVALUES(1001,'Mr','Peter','Brown','1001 34th St., APT.3','48226');INSERTINTOCUSTOMERVALUES(1002,'Company',NULL,'Datasoft','486 Maple St.','90018');INSERTINTOCUSTOMERVALUES(1003,'Mrs','Rose','Brian','500 Yellowstone Drive, #2','75243');INSERTINTOCUSTOMERVALUES(1004,'Mrs','Mary','Griffith','3401 Elder Lane','20005');INSERTINTOCUSTOMERVALUES(1005,'Mr','Martin','Randolph','340 MAIN STREET, #7','60615');INSERTINTOCUSTOMERVALUES(1006,'Mrs','Sally','Smith','250 Curtis Street','75243');INSERTINTOCUSTOMERVALUES(1007,'Mr','Mike','Jackson','133 BROADWAY APT. 1','45211');INSERTINTOCUSTOMERVALUES(1008,'Mrs','Rita','Doe','2000 Humboldt St., #6','97213');INSERTINTOCUSTOMERVALUES(1009,'Mr','George','Howe','111 B Parkway, #23','75243');INSERTINTOCUSTOMERVALUES(1010,'Mr','Frank','Miller','27 5th St., 76','95054');INSERTINTOCUSTOMERVALUES(1011,'Mrs','Susan','Baker','200 MAIN STREET, #94','90018');INSERTINTOCUSTOMERVALUES(1012,'Mr','Joseph','Peters','700 S. Ash St., APT.12','92714');INSERTINTOCUSTOMERVALUES(1013,'Company',NULL,'TOOLware','410 Mariposa St., #10','20019');INSERTINTOCUSTOMERVALUES(1014,'Mr','Antony','Jenkins','55 A Parkway, #15','20903');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(100,1000,11,'single','2020-12-24','2020-12-27');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(110,1001,11,'double','2020-12-24','2021-01-03');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(120,1002,15,'suite','2020-11-14','2020-11-18');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(130,1009,21,'single','2019-02-01','2019-02-03');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(150,1006,17,'double','2019-03-14','2019-03-24');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(140,1013,20,'double','2020-04-12','2020-04-30');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(160,1011,17,'single','2020-04-12','2020-04-15');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(170,1014,25,'suite','2020-09-01','2020-09-03');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(180,1001,22,'double','2020-12-23','2021-01-08');INSERTINTORESERVATION(rno,cno,hno,type,arrival,departure)VALUES(190,1013,24,'double','2020-11-14','2020-11-17');INSERTINTOMAINTENANCEVALUES(10,24,'Replace pool liner and pump','2019-03-21','Discount Pool Supplies');INSERTINTOMAINTENANCEVALUES(11,25,'Renovate the bar area. Replace TV and speakers','2020-11-29','TV and Audio Superstore');INSERTINTOMAINTENANCEVALUES(12,26,'Roof repair due to storm',null,null);COMMIT;
Autocommit is set to on in the SQL console of the database explorer, while in DBISQL it is set to off. A series of insert statements will run quicker in the SQL console if they are surrounded with begin and end or if autocommit is set to off.
DBISQL can also execute SQL from the command line or from a provided file. A few examples are shown below.
Shell
dbisql -c "uid=USER1;pwd=Password1;host=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.iq.hdl.trial-XXXX.hanacloud.ondemand.com:443;ENC=TLS(tls_type=rsa;direct=yes)""select * from HOTELS.CUSTOMER;"dbisql -c "uid=USER1;pwd=Password1;host=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.iq.hdl.trial-XXXX.hanacloud.ondemand.com:443;ENC=TLS(tls_type=rsa;direct=yes)" sql.sql
DBISQL in batch mode
See Connection Parameters for additional documentation on the parameters used to connect.
Step 11Knowledge check
+
Congratulations! You have created and connected to a data lake Relational Engine. In the following tutorials, the client interfaces will be used to connect from ODBC, JDBC and Node.js.
Share feedback on this tutorial or join the conversation in SAP Community.
Submit detailed feedbackDiscuss in Community
Steps
Step 1 of 11
1. Overview of SAP HANA Cloud2. Choose where to deploy the database instances3. Create a data lake instance4. Examine the Data Lake5. Create tables, views, functions, and procedures6. Download the data lake client install7. Install the data lake client for Linux8. Install data lake client for Microsoft Windows9. Connect with the Interactive SQL Client (DBISQL)10. Insert data with Interactive SQL Client (DBISQL)11. Knowledge check
Joule
AI Notice
Joule is an AI assistant. Generative AI may produce inaccurate, incomplete, or biased information. Always verify important details before acting on them.
Conversations are sent to SAP-hosted large language models for processing. Do not include personal data, credentials, or confidential information in your messages.
Joule's responses are based on the SAP tutorial catalog and may not reflect the latest product changes. For authoritative guidance, consult the linked tutorials and official SAP documentation.