Teiid Spring Boot Architecture
Transport services manage client connections: security authentication, encryption, and so forth.
- Query Engine
The query engine has several layers and components. At a high level, request processing is structured as follows:
The following diagram shows the components that make up the data virtualization service in greater detail:
SQL is converted to a processor plan. The engine receives an incoming SQL query. It is parsed to a internal command. Then the command is converted a logical plan via resolving, validating, and rewriting. Finally, rule and cost-based optimization convert the logical plan to a final processor plan. For more information, see Federated planning.
Batch processing. The source and other aspects of query processing may return results asynchronously to the processing thread. As soon as possible, batches of results are made available to the client.
Buffer management controls the bulk of the on and off heap memory that Teiid Spring Boot is using. It prevents consuming too much memory that otherwise might exceed the VM size.
Transaction management determines when transactions are needed and interacts with the TransactionManager subsystem to coordinate XA transactions.
Source queries are handled by the data tier layer which interfaces with the query engine and the connector layer which utilizes a translator to interact directly with a source. Connectivity is provided for heterogeneous data stores, such as databases or data warehouses, NoSQL, Hadoop, data grid/cache, files, SaaS, and so on.
Teiid Spring Boot has developed a series of translators. For more information, see Translators.