Teiid : Introduction
Tags: beginners, opensource, todayilearned, teiid
Published: 2020-06-06 08:05:08

Hey everyone, I have been working on a new data integration tool. This is a small introduction to new learning. :star_struck:

###:label: Overview
Teiid is a cloud-based [data virtualization](https://en.wikipedia.org/wiki/Data_virtualization) platform. It is a flexible Java component that provides integrated access to multiple data sources through a single uniform API. Data can be accessed using standard JDBC, ODBC, OData, or REST, even if that data resides in more than one source or in sources that do not understand standard queries. Typically it is a view building tool. :rocket:

To clear out things first, Teiid is not a database, it does not store any data. It acts as an interface or data gateway for accessing data from data sources in an optimal manner.

###:label: Why Teiid?
Teiid offers interaction with very familiar interfaces like JDBC, ODBC, OData, and REST. It allows the capability to query from non-SQL data sources as well. Teiid is cheaper, better, and faster. It is easy to deploy and has several distributions including [Teiid Spring Boot](https://teiid.io/springboot/), [Teiid Wildfly](https://teiid.io/teiid_wildfly/), [Teiid Openshift](https://teiid.io/teiid_cloud/), etc. 

###:label: Teiid Basics
Before getting started, here are some basic constructs of teiid.
####:pushpin: Schema
In teiid, schemas are used to define the entities and relationships between those entities, required to fully define the integration so that they may be accessed uniformly. There are pre-built translators in teiid for MySQL, Oracle, PostgreSQL, etc.

####:pushpin: Data Sources
Teiid provides the means (Translators and JEE connectors) to connect to various data sources, both relational and non-relational, for fetching required data. 

####:pushpin: Virtual Database
A virtual database (or VDB) is a type of database that serves as a container to transparently view and query from several other databases through a uniform API that culls from multiple sources as if they were a single entity. 

A VDB has multiple schema components known as models. Each schema contains the metadata. There are two different types of schemas :

* **Foreign schema** 
A foreign schema represents external or remote data sources, such as a relational database, such as Oracle, or MySQL; files, such as CSV, etc. It is also called a source or physical schema.

* **Virtual schema**
A view layer or logical schema layer represents the structure and character to be exposed to applications. 

####:pushpin: Translator
A translator converts a teiid specific command into its native command, executes, and returns a result to expected teiid types. It provides an abstraction layer between the Teiid Query Engine and the physical data source.

###:label: Explore
There are other projects which might interest you. 
* **Teiid Syndesis** 
Syndesis allows us to connect to data sources, define REST APIs, integrations (like cloud-based Camel/Fuse routes), and data virtualizations in minutes. Teiid Syndesis allows us to create views and expose data as OData or database protocols. 

* **Teiid Operator**
It is the job of the teiid operator to deploy Teiid on your OpenShift instance. The Operator also assists with the management of and updates to your Teiid instances.

###:label: Futher Reading 
Visit [teiid](https://github.com/teiid/teiid) repository on github. To contribute read the documentation [here](http://teiid.github.io/teiid-documents/master/content/).  

![Alt](https://user-images.githubusercontent.com/32862813/83841351-4f543e80-a71e-11ea-8918-0944468eacce.png)


Thank you. Happy Reading! :tada:

You can connect with me on [Twitter](https://twitter.com/anisha__mohanty) and [LinkedIn](https://www.linkedin.com/in/anisha-mohanty-97a7a7169/) :heart: