How to resolve the issue of query not getting pushed onto the Hive database due to a "No Push Reason" in TIBCO Data Virtualization?

How to resolve the issue of query not getting pushed onto the Hive database due to a "No Push Reason" in TIBCO Data Virtualization?

book

Article ID: KB0070804

calendar_today

Updated On:

Products Versions
TIBCO Data Virtualization All Supported Version

Description

While the user trying to execute the query an error message of " No Push Reason: Cannot push selectable because the data source Jdbc is case sensitive and our system is not case sensitive and the data source does not support upper function". User will see how to solve this error in TIBCO Data Virtualization and push the query to the HIVE Database.

Issue/Introduction

This article guides us on how to push a query onto the Hive database when a 'No Push' reason is observed in the query execution plan.

Environment

All Supported Operating Systems.

Resolution

The error message "No Push Reason: Cannot push selectable because the data source Jdbc is case sensitive and our system is not case sensitive and the data source does not support upper function" indicates that there is a mismatch of settings for case sensitivity between the Server and Datasource level. Hence, receiving a No Push Reason while executing a query. 

After executing the query in TIBCO Data Virtualization Studio execution plan is generated and the user can see the No Push Reason message in that plan itself.
Steps to generate execution plan:
- Execute the query and the next symbol after the execute button is for Show Execution Plan.
- Click on it and a new window will get prompted next to the result window.
- Click on the Export Plan option and a text file will be generated.

User-added image

There are 2 ways to do this:
 1). Using the apache_hive_2_x_values.xml
 2). From TIBCO Data Virtualization Studio > Configuration.

To resolve this we need to make changes in the apache_hive_2_x_values and below are the steps.
 1.a) Open file apache_hive_2_x_values present under the path,
      <TIBCO Data Virtualization Installation Directory>\conf\adapters\system\

 1.b) In the XML file, search for the string “comparisonCaseInSensitive” for case sensitivity,

       Append the below lines to the file:

  <common:attribute xmlns:common="http://www.compositesw.com/services/system/util/common">       <common:name>/runtime/query/comparisonCaseInSensitive</common:name>       <common:type>BOOLEAN</common:type>       <common:value>true</common:value>       <common:configID>jdbcds.comparisons_case_insensitive</common:configID>       </common:attribute>
 

 1.c) Save the file and restart the TIBCO Data Virtualization server.

 2) You can change the CASE_SENSITIVITY setting from TIBCO Data Virtualization Studio.
    Navigate to Administration >> Configuration >> Server >> SQL Engine >> SQL Language to true and it will work.

User-added image

Also, making changes at the server level will also impact all the data sources.

NOTE: This will help to match the setting for CASE_SENSITIVITY for both Server and Datasource and while executing the query the query will be pushed to the HIVE Database.