0

I am working for my new project wherein I am required to interact with multiple data sources and execute join queries, I created VDB using Teiid Designer and deployed it on JBoss AS 15.0.1 and pulled data using separate Java / Spring Boot Application and it worked well.

I have been seriously considering Teiid as it fits the bill for me, however, I have read about Teiid Designer / VDB being deprecated / not supported in the future and hence I am concerned.

I have few queries and I will list it down here:

  1. What would you suggest if VDB will not be supported in future, I was considering Teiid Spring Boot, but I was not able to run a single sample scenario successfully with 2 Data Sources using Teiid Spring Boot.
  2. As i said that i have created and deployed my VDB and used another Java / Spring Boot application to pull data using VDB at the run time, so my question is, while this approach works fine for a test scenario, is this the best practice? or in other words is there a better way of doing things that's more efficient.

Can someone kindly address my concerns, thanks in advance!

thank you, purnima das

M. Deinum
  • 115,695
  • 22
  • 220
  • 224

1 Answers1

0

Sorry to hear that you are having trouble with Teiid. I suspect those are due to some spring boot nuances in terms of how the startup is being wired.

1) First of all Teiid project is not going away, the WildFly based installation is still supported and VDB based deployment is still is a valid path. You can still use this.

2) We are not contributing anymore to the Eclipse-based Teiid Designer. You can still use the old version, the VDB generated is still valid, may not have any new language features.

3) Teiid Spring Boot is not a replacement of Teiid. It is a layer above to simplify the java development of bringing together the data sources more native way to a java developer.

4) Teiid Spring Boot supports two modes

  • Entity based View definition (non-vdb mode, using annotations, still tech preview). see example here.
  • A VDB based deployment. That means you can take the VDB from the previous steps. The difference is the VDB supported is a DDL based VDB, not a Binary VDB generated from a Teiid Designer. You can use Teiid Designer to export to an XML version of a VDB, then use another tool we provide to convert to a DDL based one. See example here with this model.

5) Teiid Spring Boot is more focused on cloud-based developments. In your case, you can embed with your Java application such that it does not require a separate process and connect to the external process to access data, i.e. it will be much faster as there one less step of moving data.

6) As per tooling, we are working on VSCode plugin that helps develop a DDL based VDB, but we are not there yet. Also we are part of the Syndesis project.

Ramesh Reddy
  • 554
  • 1
  • 3
  • 8
  • Hello, i was able to successfully configure two Data source and execute join query from two tables residing in two different data source using your example of Teiid Spring Boot above, thank you so much! – Purnima Das Feb 10 '20 at 10:52
  • ok, now lets say that i want to extend this example and implement something similar to the example presented in this following page: https://developers.redhat.com/blog/2017/10/25/tutorial-building-consuming-virtual-microdatabase-jboss-data-virtualization/ now my question is can I do it using Teiid Spring Boot and @SelectQuery annotation and without using VDB or DDL at all? I want figure out a way to execute a query or few queries at the run time depending up some conditions. – Purnima Das Feb 10 '20 at 11:16
  • I do not understand, the example already showing with @SelectQuery what's missing? – Ramesh Reddy Feb 10 '20 at 15:37
  • Hello, this is what i meant: The example that i am referring to contains 2 datasources with two tables each, the example then proceeds to club two tables in each of this datasource into one, and now we have one table in each of this datasource i.e. VBL, the next step now is to bring together these two tables and create Federated Layer from VBL, we do this by creating a UNION between these two tables. Now, lets say I want to achieve exactly same objective, BUT without VDB, or in other words i want to achieve same objective by only using Teiid Spring Boot. can it be done and if so then how? – Purnima Das Feb 11 '20 at 04:55
  • The example shown here https://github.com/rareddy/spring-example exactly what you are asking, it has two data sources, no VBL layer, it only has a single entity that resents a combined customer which is a UNION of two different tables (hidden, not exposed) which is a Federated Layer. – Ramesh Reddy Feb 11 '20 at 14:49
  • Alright, let me give it a try, I will like to implement it. Thank you lots for your assistance. – Purnima Das Feb 12 '20 at 04:38
  • Yes, I did try and it worked like a charm, thank you very much! – Purnima Das Feb 12 '20 at 11:47
  • I have one more query: Lets say that I have two different data source with two tables consisting of approx 40 lakhs records or so in each of the table and I am required to implement JOIN query using tables from two different data sources and create Federated Views. Have you ever tried something like this with Teiid Spring Boot?, I am using JBoss Wildfly AS 15.0.1 and Teiid Runtime engine. My main concern is will my AS and Teiid withstand enormous load of data like this and successfully deliver response? – Purnima Das Feb 12 '20 at 12:02
  • As I mentioned above Teiid Spring Boot is a layer above the original Teiid for simplified JPA style development, so all capabilities are the same. so Yes. – Ramesh Reddy Feb 12 '20 at 15:44