Professional Documents
Culture Documents
SAP Hana Frequently Asked Interview Questions
SAP Hana Frequently Asked Interview Questions
QUESTIONS
1.What are the different types of replication techniques?
1.ETL based replication using BODS
2.Trigger based replication using SLT
3.Extractor based data acquisition using DXC
4. SDI
2.What is SLT?
SLT stands for SAP Landscape Transformation which is a trigger based replication.
SLT replication server is the replication technology to pass data from source
system to the target system. The source can be either SAP or non-SAP. Target
system is SAP HANA system which contains HANA database.
3.Is it possible to load and replicate data from one source system to
multiple target database schemas of HANA system?
Yes. It is possible for up to 4.
4.Is it possible to specify the type of data load and replication?
Yes either in real time, or scheduled by time or by interval.
5.What is Configuration in SLT?
The information to create the connection between the source system, SLT
system, and the SAP HANA system is specified within the SLT system as a
Configuration. You can define a new configuration in Configuration & Monitoring
Dashboard (transaction LTR).
6.Is there any pre-requisite before creating the configuration and
replication?
For the SAP source systems DMIS add-on is installed in SLT replication server.
User for RFC connection has the role IUUC_REPL_REMOTE assigned but not DDIC.
For non-SAP source systems DMIS add-on is not required and grant a database
user sufficient authorization for data replication.
7.What is Configuration and Monitoring Dashboard?
It is an application that runs on SLT replication server to specify configuration
information (such as source system, target system, and relevant connections) so
that data can be replicated. It can also use it to monitor the replication status
(transaction LTR).
Status Yellow: It may occur due to triggers which are not yet created successfully.
Status Red: It may occur if master job is aborted (manually in transaction SM37).
8.What is advanced replication settings?
2 Stored procedures
RS_GRANT_ACCESS, RS_REVOKE_ACCESS
8 Tables
DD02L, DD02T, RS_LOG_FILES, RS_MESSAGES, RS_ORDER, RS_ORDER_EXT,
RS_SCHEMA_MAP, RS_STATUS
database?
Yes, this is automatically covered by the RFC connection used for data replication
from the SAP source system.
Questions on limits
29. Maximum number of tables in a schema?
131072
Questions on SQLScript
38. What is SQLScript?
It is a set of SQL extensions for SAP HANA database which allow developers to
push data intensive logic into the database.
39. When should be SQLScript used?
It should be used in cases where other modeling constructs of HANA such as
Attribute views or Analytic views are not sufficient.
40. Explain how SQLScript procedure is processed in HANA database?
When a user creates a new procedure, the HANA database query compiler first:
Parse the statements
Check the statement semantic correctness
If you want to specify all the input fields then call statement would be:
CALL my_proc (3, 4, ?)
48. What is the purpose of procedure 'Call... With Overview' option?
To write the results of a procedure call directly into a physical table.
CALL my_proc (3, 4, NULL) WITH OVERVIEW;
49. What is the purpose of procedure 'Call.....In Debug Mode' option?
It creates the additional debug information during the execution of the
procedure. This type of call has additional runtime overhead hence should be
used for debugging purposes only.
CALL my_proc (3, 4, NULL) IN DEBUG MODE;
50. What is Table variable?
These are variables with table type which are bound to the value of a physical
table, SQL query or a calculation engine plan operator. Table variables are bound
using equality operator.
51. What is a scalar variable?
We define scalar variable as IN, OUT, or INOUT and can be referenced anywhere
in a procedure.
lt_expensive_books = SELECT title, price, crcy FROM :it_books
WHERE price > :minPrice AND crcy = :currency;
In above assignment, the variable lt_expensive_books is bound. Variable
:it_books refers to an IN parameter of a Table type. :minPrice and :currency refer
to IN parameter of a scalar type.
52. What is CE plan operator? What are the different categories?
CE plan operator does the data transformation functionality internally and used
in definition of functions. It is an alternate to using SQL statements.
Data Source Access operators that bind a column table or a column view to a
table variable. (CE_COLUMN_TABLE, CE_JOIN_VIEW, CE_OLAP_VIEW,
CE_CALC_VIEW)
Relational operators that allow a user to bypass the SQL processor during
evaluation and directly executed in the calculation engine.
(CE_JOIN, CE_LEFT_OUTER_JOIN, CE_RIGHT_OUTER_JOIN,
CE_PROJECTION,CE_CALC, CE_AGGREGATION, CE_UNION_ALL)
Special extensions implement, e.g., crucial business functions inside the
database kernel.
(CE_VERTICAL_UNION, CE_CONVERSION)
53. What is CE_COLUMN_TABLE operator?
It provides access to an existing column table. It takes the name of the table and
returns its content bound to a variable.
Example:
ot_books1 = CE_COLUMN_TABLE (BOOKS);
Is equivalent to
ot_pubs_books3 = SELECT P.publisher as publisher, name, street, post_code,
city,
country, isbn, title, edition, year, price, crcy
FROM :lt_pubs AS P, :it_books as B
WHERE P.publisher = B.publisher;
ot_pubs_books4 = SELECT title, name, P.publisher as publisher, year
FROM :lt_pubs AS P, :it_books AS B
WHERE P.publisher = B.publisher;
58. What is CE_LEFT_OUTER_JOIN operator?
It calculates the left outer join. Besides the function name the syntax is same as
CE_JOIN.
59. What is CE_RIGHT_OUTER_JOIN operator?
It calculates the right outer join. Besides the function name the syntax is same
as CE_JOIN.
60. What is CE_PROJECTION operator?
It restricts the columns in the table variable and optionally renames columns,
computes expression, or applies a filter.
Example:
ot_books1 = CE_PROJECTION(:it_books, [TITLE, PRICE, CRCY AS
CURRENCY], 'PRICE > 50');
Is equivalent to
ot_books2 = SELECT title, price, crcy AS currency
FROM :it_books WHERE price > 50;
61. What is CE_CALC operator?
It evaluates an expression and then bound to a new column
Example:
with_tax = CE_PROJECTION(:product, [CID, CNAME, OID, SALES,
CE_CALC('SALES * :vat_rate',
decimal(10,2)) AS SALES_VAT],
''CNAME = ':cname''');
Is equivalent to
with_tax2 = SELECT cid, cname, oid, sales, sales * :vat_rate AS sales_vat
FROM :product
WHERE cname = ':cname';
All columns used in CE_CALC have to be included in the projection list. Another
frequent use of CE_CALC is computing row numbers.
CE_CALC('rownum()', integer) AS "RANK"