Skip to main content

Teiid 8.3.0.Final Released

It took us little more than 12 weeks from 8.2 Final, however Teiid 8.3.0.Final is released with many many exciting features.

The features we really excited about are
  1. OData Support - Teiid can now either consume from a OData source or produce results using OData protocol. See related blogs on this topic.
  2. JSON Support - Similar to how user can use SQLXML and define results in XML, Teiid is introducing JSON  language constructs, such that you can produce results in JSON. Now you can generate that Rest web service that returns JSON!!!
  3. Source Temp Tables - create a temporary tables on sources, and generate plans that are efficient in pushing down more work towards the sources.
Many more.. See below for full list

Teiid 8.3 is still based on JBoss AS 7.1.1  The JBoss folks have decided not to release any community releases off of AS 7.x branches, however they recently announced  that EAP 6.1-alpha1 (a productised version of JBoss AS that RedHat offers subscription) is released to community developers.  We will release Teiid 8.4 based on EAP 6.1.x.

Highlighted Features:
  • TEIID-2253 Multi-source improvements - multi-source planning was significantly improved, which will result in much better plans when using multi-source models. The user may also now configure the multi-source column name, auto-populate the multi-column in the actual metadata, and use non-literal multi-source column values.
  • TEIID-1557 Generated Key Retrieval - JDBC now supports generated key retrieval, see the Client and the Developers Guides for more.
  • TEIID-2311 Permission Conditions - data roles can now specify SQL conditions that will enforce row-based security and physical table insert/update checked constraints. See the Reference Guide for more.
  • TEIID-2341 Join Planning Improvements - ANSI join structures can now be preserved with the preserve hint, i.e. FROM /*+ PRESERVE */ (tbl1 INNER JOIN tbl2 ON ...), which is similar to the Oracle ORDERED hint. Also sources restricted to only outer joins (such as Salesforce) can have INNER or effectively INNER joins pushed to them.
  • TEIID-2312 Source security domains - Ldap, Salesforce, google-spreadsheet and ws (basic auth) translators can now define "security-domain" in their resource-adaptor configuration for security. When defined along with caller-identity the logged in user's credentials are passed to source for authentication.
  • TEIID-2182 Events - Capture the VDB loading and unloading events now from registering a listener on EventDistributor
  • TEIID-2241 CLI script for Standalone - Install Teiid into any AS7 standalone configuration using the provided CLI script.
  • TEIID-2152 Basic MERGE support - support for a simplistic MERGE statement was added. See the Reference for more.
  • TEIID-1757 OData Translator - A translator for OData based sources has been added. 
  • TEIID-1854 OData Transport - Access any deployed VDB into Teiid using OData protocol, essentially Teiid is now a OData server.
  • TEIID-2363 Concurrent Join Processing Enhancements - both sides of a join will processed more when possible. See also the org.teiid.joinPrefetchBatches system property in the Admin Guide.
  • TEIID-196 Source Temporary Tables - temporary (locally scoped) tables may be defined at runtime against physical sources with a CREATE FOREIGN TEMPORARY TABLE statement. See the Reference for more.
  • TEIID-2159 JSON Production - added the JSONARRAY, JSONARRAY_AGG, JSONOBJECT, and JSONPARSE constructs for producing JSON. See the Reference for more.
  • TEIID-2248 Bulk Salesforce Inserts - added the ability for the Salesforce translator to perform bulk inserts.

This work was due in large part to the great participation from Teiid community users, a BIG thanks to all who participated in providing valuable input through their JIRAs and community suggestions.

Get Involved with Teiid:

Got a idea to better way plan a query or some cool feature that Teiid can implement, come and open a forum discussion, let's get it captured and put it on roadmap.

Wrote a blog? did any performance testing on Teiid? Tell us what worked and what didn't? Help us fix the issues to make Teiid successful.

Thank you.

Ramesh & Steve

Comments

Popular posts from this blog

Teiid 8.11 Beta1 and 8.10.1 Released

Teiid 8.11 Beta1 is now available from the  downloads  and maven.  Feature highlights since Alpha2 include: TEIID-3434 More caching control over ttls in the result set cache down to the schema/table level. TEIID-3412 MS Access support via the UCanAccess driver. The UCanAccess support is necessary for those running on Java 1.8 as the JDBC ODBC bridge has been removed from the JRE. The waiting continues on EAP 6.4 Alpha1 - it still should be available shortly and should be the platform target for Teiid 8.11 Beta2. Of course, let us know if you find any issues with these early releases.  There's still plenty of time to get fixes into the final release. Teiid 8.10.1 is also available.  It addresses 5 important issues discovered since 8.10 was released: [ TEIID-3409 ] - PostgreSQLExecutionFactory TranslatorProperty annotation in wrong place [ TEIID-3437 ] - Inconsistencies with row count handling [ TEIID-3438 ] - Null value returned from BlobImpl

Tech Tip: Teiid SQL Language MAKEDEP Hint Explained

In this article I will explain what a MAKEDEP hint is, how and when, why it should be used in Teiid. What: MAKEDEP is query hint.  When a query hint is defined in the SQL query it influences the Teiid query planner to optimize the query in a way that is driven by the user. MAKEDEP means "make this as a dependent join". What is a Dependent Join? For example if we have query like: SELECT * FROM X INNER JOIN Y ON X.PK = Y.FK Where the data for X, and Y are coming from two different sources like Oracle and WebService in Teiid, so in relational algebra you can represent above query as Here the result tuples from node X and node Y are being simultaneously fetched by Teiid query engine, then it joins the both the results inside Teiid engine based on the specified X.PK = Y.PK condition and returns the filtered resulted to the user. simple.. Now, what if, if X table has 5 rows and Y table has 100K rows? In order to do the JOIN naively Teiid need sto read all the 5

Teiid Spring Boot 1.7.0 Released

Teiid Spring Boot version 1.7.0 to support Teiid 16.0 has been released. This release is mainly to support the Teiid's latest version.  In this release, the support for OpenAPI code generation based on VDB has been removed as there is no community interest and moreover it was at OpenAPI 2.0, and the industry has moved to 3.0 and beyond. There are no plans to further pursue this feature. VDB maven plugin was also removed, which was intended to be a replacement for the VDB importing feature was to be used when working on OpenShift, however, since it requires the Maven repository and does not completely represent the feature as defined on the WildFly based deployments this is also removed. You can still use the VDB import feature with Teiid Spring Boot, simply define the VDB with your "IMPORT DATABASE" statements and provide the additional files along with the main VDB file. During the start of the application, Teiid Spring Boot will load all the necessary DDL files for the