SAP HANA - Select

On this Page

Snap type:Read
Description:

This Snap allows you to fetch data from a database by providing a table name and configuring the connection. The Snap produces the records from the database on its output view, which can then be processed by a downstream Snap. 

JSON paths can be used in a query and will have values from an incoming document substituted into the query. However, documents missing values for a given JSON path will be written to the Snap's error view. After a query is executed, the query's results are merged into the incoming document overwriting any existing keys' values. The original document is output if there are no results from the query.


Queries produced by the Snap have an equivalent format:

SELECT * FROM [table] WHERE [where clause] ORDER BY [ordering] LIMIT [limit] OFFSET [offset]

If more powerful functionality is desired, then the SAP HANA Execute Snap should be used.
 

Expected upstream Snaps: A dynamic where clause can be defined by providing values upstream. Such as the Mapper Snap can provide constants, pipeline parameters mapped into variables which then can be used in the where clause or even in the table/schema properties.

Expected downstream Snaps: The Snap will output one document for every record retrieved, hence any document processing Snap can be used downstream.

Expected input: Document that provides values for one or more properties of the Snap or simply for pass through purpose.

Expected output: Document for each record retrieved. Special types such as TIMESTAMP, TIME are converted into SnapLogic internal date type representations which then can be consumed by downstream Snaps just like any other data type. 

Important: The where clause can only use variables, no constants or pipeline parameters.

Important

The where clause can only use variables, no constants or pipeline parameters.


A good example for a where clause is: SALARY =$SALARY (here we use the SALARY variable of the input document).
A bad example for a where clause is: SALARY = _param (this will not work since we do not evaluate pipeline parameters during prepared statement execution, instead an upstream Mapper needs to be used that maps _param into $SALARY).

Prerequisites:
Support and limitations:Works in Ultra Tasks.
Account:

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See Configuring SAP HANA Accounts for information on setting up this type of account.

Views:
InputThis Snap has exactly one document input view.
OutputThis Snap has exactly one document output view.
ErrorThis Snap has at most one document error view and produces zero or more documents in the view.

Settings

Label


Required. The name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.

Schema name


The database schema name. In case it is not defined, then the suggestion for the table name will retrieve all tables names of all schemas. The property is suggest-able and will retrieve available database schemas during suggest values.

Example: myschema

Default value: [None]

Table name


Required. The name of the table to execute a select query on.

Example: people

Default value: [None]

Where clause


Where clause of select statement. This supports document value substitution (such as $person.firstname will be substituted with the value found in the incoming document at the path).

Example: email = 'kalmeida@example.com' or email = $email

Default value: [None]

Order by


Enter in the columns in order to order by. The default database sort order will be used.

Example

name

email

Default value: [None]

Limit offset


Starting row for the query.

Example: 0

Default value: [None]

Limit rows


Number of rows to return from the query.

Example: 10

Default value: [None]

Output fields

Enter or select output field names for SQL SELECT statement. To select all fields, leave it at default.

Example: email, address, first, last, etc.

Default value: [None]

Fetch Output Fields In Schema

Select this check box to include only the selected fields or columns in the Output Schema (second output view). If you do not provide any Output fields, all the columns are visible in the output.
If you provide output fields, we recommend you to select Fetch Output Fields In Schema check box.

Default value: Not selected

Pass through

If checked, the input document will be passed through to the output view under the key 'original'.

Default value: Selected

Ignore empty resultIf checked, no document will be written to the output view when the SELECT operation does not produces any result. If this property is unchecked and the Pass through property is checked, the input document will be passed through to the output view.
Auto commit

Select one of the options for this property to override the state of the Auto commit property on the account. The Auto commit at the Snap-level has three values: TrueFalse, and Use account setting. The expected functionality for these modes are:

  •  True - The Snap will execute with auto-commit enabled regardless of the value set for Auto commit in the Account used by the Snap.
  •  False - The Snap will execute with auto-commit disabled regardless of the value set for Auto commit in the Account used by the Snap.
  • Use account setting - The Snap will execute with Auto commit property value inherited by the Account used by the Snap.

Default value: False

Match data types

Conditional. This property applies only when the Output fields property is provided with any field value(s).

If this property is selected, the Snap tries to match the output data types same as when the Output fields property is empty (SELECT * FROM ...). The output preview would be in the same format as the one when SELECT * FROM is implied and all the contents of the table are displayed.

Default value: Not selected

Number of retries


Specifies the maximum number of attempts to be made to receive a response. The request is terminated if the attempts do not result in a response.

If the value is larger than 0, the Snap first downloads the target file into a temporary local file. If any error occurs during the download, the Snap waits for the time specified in the Retry interval and attempts to download the file again from the beginning. When the download is successful, the Snap streams the data from the temporary file to the downstream Pipeline. All temporary local files are deleted when they are no longer needed.

Ensure that the local drive has sufficient free disk space to store the temporary local file.

Example: 3

Default value: 0

Retry interval (seconds)

Specifies the time interval between two successive retry requests. A retry happens only when the previous attempt resulted in an exception. 

Example:  10

Default value: 1

Staging mode

Required when the value in the Number of retries field is greater than 0. 

Specify the location from the following options to store input documents between retries:

  • In memory: The query results are stored in the Snaplex memory. If the query is too large to fit in the memory space, it may cause the Snap to fail, choose the On disk option.
  • On disk: The query results are stored on the disk in a temporary (tmp) directory that is managed by the SnapLogic platform. This directory is deleted automatically when the Snap terminates.

Snap Execution

Select one of the following three modes in which the Snap executes:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.

  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.

  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Default ValueExecute only
Example: Validate & Execute

Examples


In this example, we show how to retrieve data from a table called "USER".

We can pass the dynamic variable used in where clause from upstream Snap like JSON Generator. We try to retrieve employees by their age.

The sample output looks like:

Snap Pack History

 Click to view/expand
Release Snap Pack VersionDateType  Updates
November 2024main29029 StableUpdated and certified against the current SnapLogic Platform release.

August 2024

main27765

 

Stable

Updated and certified against the current Snaplogic Platform release.

May 2024437patches26690 Latest

Fixed an issue in the SAP HANA Snap Pack where the downstream Snaps did not support the data type appropriately.

May 2024main26341 StableUpdated the Delete Condition (Truncates a Table if empty) field in the SAP HANA - Delete Snap to Delete condition (deletes all records from a table if left blank) to indicate that all entries will be deleted from the table when this field is blank, but no truncate operation is performed.

February 2024

main25112

 

Stable

Updated and certified against the current SnapLogic Platform release.

November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.

August 2023

main22460

 


Stable

The SAP HANA - Execute Snap now includes a new Query type field. When Auto is selected, the Snap tries to determine the query type automatically.

May 2023

main21015 

Stable

Upgraded with the latest SnapLogic Platform release.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 Stable

The SAP HANA Insert Snap now creates the target table only from the table metadata of the second input view when the following conditions are met:

  • The Create table if not present checkbox is selected.

  • The target table does not exist.

  • The table metadata is provided in the second input view.

October 2022

430patches18852

 Latest

SAP HANA Snaps now properly handle lineage when used in Ultra Pipelines.

August 2022main17386 

Stable

Upgraded with the latest SnapLogic Platform release.

4.29

main15993

 

Stable

Upgraded with the latest SnapLogic Platform release.

4.28main14627 StableUpdated the label for Delete Condition to Delete Condition (Truncates Table if empty) in the SAP HANA Delete Snap
4.27main12833 Stable

Enhanced the SAP HANA - Execute Snap to invoke stored procedures.

4.26main11181 StableUpgraded with the latest SnapLogic Platform release.
4.25main9554
 
StableUpgraded with the latest SnapLogic Platform release.
4.24main8556
Stable
  • Enhanced the SAP HANA - Select Snap to return only the selected output fields or columns in the output schema (second output view) using the Fetch Output Fields In Schema check box. If the Output Fields field is empty all the columns are visible.
  • Enhanced the SAP HANA - Stored Procedure to accept parameters from input documents by column keys. If the values are empty, the parameters are populated based on the column keys for easier mapping in the upstream Mapper Snap.
4.23 Patch423patches7548 Latest

Fixed the batch size issue in SAP HANA - Upsert Snap by using a prepare statement when sending the batch request.

4.23main7430
 
StableUpgraded with the latest SnapLogic Platform release.
4.22 Patch422patches6940 Latest

Fixed the stored procedure name conflict issue in the SAP HANA - Stored Procedure Snap, when the stored procedure exists in multiple schemas, by parsing each procedure name.

4.22main6403
 
StableUpgraded with the latest SnapLogic Platform release.
4.21 Patch421patches6272 Latest

Fixed the issue where Snowflake SCD2 Snap generates two output documents despite no changes to Cause-historization fields with DATE, TIME and TIMESTAMP Snowflake data types, and with Ignore unchanged rows field selected.

4.21 Patch

421patches6144 Latest

Fixed the following issues with DB Snaps:

  • The connection thread waits indefinitely causing the subsequent connection requests to become unresponsive.
  • Connection leaks occur during Pipeline execution.
4.21snapsmrc542

 

StableUpgraded with the latest SnapLogic Platform release.
4.20snapsmrc535
 
Stable

Reverted the SAP/HANA Snap Pack to the stable version snapsmrc535.

4.19 Patch db/saphana8411 LatestFixed an issue with the SAP HANA - Update Snap wherein the Snap is unable to perform operations when:
  • An expression is used in the Update condition property.
  • Input data contain the character '?'.
4.19snaprsmrc528
 
StableUpgraded with the latest SnapLogic Platform release.
4.18snapsmrc523
 
StableUpgraded with the latest SnapLogic Platform release.
4.17ALL7402
 
Latest

Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.

4.17snapsmrc515
 
Latest
  • Fixed an issue with the SAP HANA Execute Snap wherein the Snap would send the input document to the output view even if the Pass through field is not selected in the Snap configuration. With this fix, the Snap sends the input document to the output view, under the key original, only if you select the Pass through field.
  • Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.
4.16 Patch db/saphana7062 Latest

Fixed an issue in SAP HANA Update and Insert Snaps wherein time data type was not getting passed if a table name and column name were similar in multiple schemas.

4.16 Patch db/saphana7040

 

Latest

Fixed an issue with the SAP HANA - Delete Snap wherein the Snap was unable to delete a data if the delete condition was not selected or if the condition was a static value.

4.16snapsmrc508
 
StableUpgraded with the latest SnapLogic Platform release.
4.15snapsmrc500
 
StableUpgraded with the latest SnapLogic Platform release.
4.14snapsmrc490
 
StableUpgraded with the latest SnapLogic Platform release.
4.13

snapsmrc486

 
StableUpgraded with the latest SnapLogic Platform release.
4.12

snapsmrc480

 
StableUpgraded with the latest SnapLogic Platform release.
4.11snapsmrc465
 
StableUpgraded with the latest SnapLogic Platform release.
4.10

snapsmrc414

 
Stable

Added Auto commit property to the Select and Execute Snaps at the Snap level to support overriding of the Auto commit property at the Account level.

4.9.0 Patchsaphana3074 Latest

Fixed an issue regarding connection not closed after login failure; Expose autocommit for "Select into" statement in PostgreSQL Execute Snap and Redshift Execute Snap

4.9snapsmrc405
 
StableUpgraded with the latest SnapLogic Platform release.

4.8.0 Patch

saphana2759 Latest

Potential fix for JDBC deadlock issue.

4.8.0 Patch

saphana2714 Latest

Fixed SAP HANA Snap Pack rendering dates that are one hour off from the date returned by database query for non-UTC Snaplexes.

4.8

snapsmrc398

 
Stable
  • Info tab added to accounts.
  • Database accounts now invalidate connection pools if account properties are modified and login attempts fail.

4.7.0 Patch

saphana2202 Latest

Fixed an issue for database Select Snaps regarding Limit rows not supporting an empty string from a pipeline parameter.

4.7

snapsmrc382

 
StableUpgraded with the latest SnapLogic Platform release.
4.6snapsmrc362
 
StableUpgraded with the latest SnapLogic Platform release.
4.5.1

snapsmrc344

 
Latest

Fixed an error in a tooltip for SAP HANA Upsert.

4.5

snapsmrc344

 Stable
  • NEW! SAP HANA - Table List: This Snap outputs a list of tables in a database.
  • Output fields property added to SAP HANA Select Snap.
  • Resolved an issue in SAP HANA Write Snap to disallow insertion of unsupported data types as NULLs in HANA tables.
  • Resolved an issue in SAP HANA Execute Snap that occurred when errors were reported even when table creation was successful.
4.22NANANA

Ignored empty result added to Execute and Select Snaps. The option will not any document to the output view for select statements.

NANA NA

Addressed the following issues:

  • Mismatched datatype values are inserted as NULLs
  • JSON paths in WHERE clauses should be processed as bind values after the expression is evaluated.
NANA NA
  • Addressed the following issue: When schema name entered in lower case- click on suggest for table name- says - no tables found
  • Dynamic DB queries now supported in the Execute Snap.
  • The SQL statement property now can be set as an expression property. When it is an expression, it will be evaluated with each input document and one SQL statement per each input document will be executed.
  • Known issue: When the SQL statement property is an expression, the pipeline parameters are shown in the suggest, but not the input schema.
  • With the SQL statement property set as an expression, the Snap can be exposed to SQL injection. Please use this feature with caution.
  • SAP Hana Insert string into number no longer routes to error view - just inserts null
NANA NA
  • SAP HANA Stored Procedure
  • Insert: Issue resolved with failing to write a string "NaN" to a string datatype column in HANA.

  • Select: Issue resolved with invalid table name.