Since I am java six pack, I am going to dumb it down to level that I understand, and present it to you.
- It is a EII (Enterprise Information Integration) tool
- It is a Virtual Database
- It is Data Integration Engine
- Data Mash up Engine
- Data Virtualization Engine
All the above are accurate. But, I want to describe Teiid's base processor more precisely.
"Teiid is a Relational Data Integration Engine"
Using Teiid and its supplied tools, you build a brand new logical data model for your data in multiple heterogeneous data sources using SQL as glue language. Now, the schema from this logical model is what you can expose to your end applications as domain model.
So, in effect you took multiple existing data sources, and defined relationships among the data you have, to create a data model you need without much effort, i.e. you got model driven data integration.
Once this logical schema is deployed into a Teiid runtime engine, Teiid behaves like a relational database. It provides a secure, preferment and transactionally aware system that can be accessed by your end user applications. Note, that the physical location of your data still be in the same place as before, however the logical model results are built at runtime for you by Teiid.Well, all is good so far but I said, "Teiid is relational data integration engine" does this mean Teiid can only integrate data from multiple relational databases? absolutely not! Teiid can integrate data from any RDBMS like Oracle, SQL Server, DB2 etc. as well from Text files, Web Services, Excel sheets, XML, Main Frame or any of your custom data. If you are wondering how that is possible? The answer lies in Teiid Connectors.
Teiid Connector: A connector is data access mechanism to a "source" system like DBMS, file or a web service. Also, another very important function of the Connector is that it maps the underlying source's data model into relational entities (like tables and procedures etc). So, naturally when you are dealing with RDBMS sources they represent the sources underlaying data model. However, if a connector represents a CSV file, it exposes the metadata information about csv data in "relational" terms to the out bound systems, thus a CSV file looks and behaves like a RDBMS source to a calling system. Using this technique can can virtually transform any source and represent it in relataional terms. Thus you can even call Teiid as "Relational Data Abstraction" engine. So, if you have non standard source of data you can map that into relational terms and use it as RDBMS. Now, as you can imagine, magically all the sources under Teiid system look and behave like relational sources. Now on to integration of these sources.
End user applications can access the Teiid mainly using JDBC API. That means you could use Hibernate easily and never see any difference. With some additional tooling you can even access your data as Web Service. Teiid project provides tools for every aspect of the development and deployment of model driven data integration.
Before I end this article, there is one very important concept I want leave with and that is Teiid is not a ETL or Data Mart tool, where the data is duplicated from the original source then served to target systems. Teiid works with data from their original locations as it is, there is no unnecessary duplication/coping of data.
Now that hopefully you know "What Teiid really is", you can see how it can solve your company's data integration needs easily. Let us know how we can help.