Chapter 4. Data Virtualization

Data Virtualization is available as a Technology Preview feature in Red Hat Integration 2020-04. Data Virtualization is a container-native service, based on the Teiid open source project, that provides integrated access to a range of data sources, including relational databases, MongoDB, and Salesforce, through a single uniform API.

Applications and users connect to a virtual database over standard interfaces (OData REST, or JDBC/ODBC) and can use SQL to interact with the integrated data in the same way that they would interact with a single relational database.

Important

Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend implementing any Technology Preview features in production environments.

This Technology Preview feature provides early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.

4.1. Enhancements

Red Hat Integration 2020-04 provides the following enhancements for Data Virtualization:

  • Improved Data Virtualization Operator deploys virtual databases from Maven artifacts (fat JAR, DDL) or embedded DDL.
  • TLS/SSL X.509 certificate encryption of JDBC/ODBC endpoints uses either custom certificates or OpenShift service certificates to encrypt traffic between database clients and a virtual database.
  • New monitoring capabilities automatically collect data virtualization metrics and expose them to Prometheus.
  • Added data source compatibility.
  • New user documentation:

4.2. Known issues

ENTESB-13462 - FORMAT functions for different versions of the Data Virtualization Operator return different results

When you use format functions such as FORMATBIGDECIMAL or FORMATDOUBLE to query a virtual database, the results that the functions return for negative numbers might not be formatted as expected. The format of the result depends on the underlying Java version specified by the Data Virtualization Operator. Because recent versions of the Operator switched from using Java 8 to Java 11, you might experience changes in the formatting of your query results.

In Java versions earlier than Java 11, regardless of whether you specify a minus sign character (-) as a prefix or suffix of a negative format pattern, the returned negative result string is preceded by a minus sign. However, in Java 11, if you append a minus sign to a negative format pattern, the result string that is returned has the minus sign appended to it.

If you obtain unexpected results for negative numbers that a parsing or formatting function returns, revise the pattern string for the function so that the minus sign precedes the rest of the pattern.

Example:

The following query specifies the negative format pattern, #,0;#0-.

SELECT FORMATBIGDECIMAL((99 - 10000000), '#,##0;###0-')

Depending on the version of the Operator, one of the following results is returned:

DV Operators using Java 8
-9,999,901
DV Operators using Java 11

9,999,901-

To achieve the same result as with Java 8, modify the formatting pattern for the query to ,#0;-#.

ENTESB-13144 - Redirect URLs set for virtual databases in Red Hat Single Sign-On do not work

Redirects that you configure for the data virtualization service in Red Hat Single Sign-On are not working correctly.

For OData clients to establish secure connections to endpoints of a virtual database, the data virtualization service must be able to authenticate security tokens that it receives from Single Sign-On. Currently, because the data virtualization service is unable to read TLS/SSL certificates from Single Sign-On, attempts to validate the tokens on a secure channel are unsuccessful.

As a temporary workaround, disable secure connections between the data virtualization service and Single Sign-On by adding the following property to the custom resource (CR) for the virtual database, and then redeploy the virtual database:

  - name: KEYCLOAK_DISABLE_TRUST_MANAGER
     value:  "true"

Afterwards, use a tool such as Postman to issue the OData HTTP requests to the service endpoint. Browser clients cannot connect to the endpoint.

Important

This setting prevents Data Virtualization from validating SSO certificates over secure HTTPS. However, the certificate itself is exchanged over a secure connection. The unsecured HTTP connection is for validation only, and applies to an internal OpenShift server channel. Single Sign-On continues to transmit the token to the Data Virtualization service over a secure channel. This setting should only be used for development and is not for use in a production environment.

4.3. Migration considerations

You can migrate virtual database that you developed for JBoss Data Virtualization or Teiid deployments. For information about migrating legacy virtual databases to Data Virtualization, see Using Data Virtualization.