Teiid Designer 8.0 is the first tooling release that supports the Teiid 8.2 project. A fundamental change to both projects is adaptation and integration with the JBoss Application Server 7 version. The Teiid project laid the groundwork for working with AS7 in their 8.0 and 8.1 releases. These released focused on changes required to implement a new data source definition framework as well as a new deployment strategy. (TEIIDDES-1209)
Teiid Designer 8.0 introduces the following changes and features
- Integration with Eclipse's WTP Server view and JBoss Tools server management extensions (TEIIDDES-1459)
- Integration of Eclipse's Data Tools connection info with creation and auto-deployment of data sources
- Support for importing, modeling and testing Teiid Reuse VDBs deployed on your server (TEIIDDES-1403)
- Exposure of additional design-time relational metadata properties (TEIIDDES-1456)
- Teiid Designer model validation is scoped to a Model Project
- Transformations can only contain sources defined within the same model project as the view model
- Transformations can only contain sources defined within the same model project as the view model
In addition to the Teiid-specific improvements, release 8.0 also reflects a number of code maintenance and build improvements including:
- Move from SVN to GIT (https://github.com/Teiid-Designer/teiid-designer)
- Re-package all source to replace legacy packages (com.metamatrix... ) with org.teiid.designer.xxxx
- Removed old unsupported metamodels (UML2, Relationship, XmlService)
- Performed code analysis (findbugs) and fixed potential java bugs
Installing Teiid Designer 8.0
One fundamental change for 8.0 is a requirement to install a JBoss tools feature prior to Designer installation. In particular the JBossAS Tools feature.
To install Teiid Designer 8.0:
Step 1: Install JBossAS Tools feature
a) Either download a stable release of JBoss Tools (archive zip update site) or enter a valid JBoss Tools update site URL as shown below in the "Help > Install New Software..." wizard.
b) Expand Abridged JBoss Tools 4.0 and select JBossAS Tools feature. Select Next > and complete the install.
Step 2 : Install Teiid Designer 8.0
a) Download Teiid Designer 8.0 update site ZIP
b) Add your Designer update site as an Archive... repository
c) Select Data Services category and delect the "Teiid Designer Test" feature.
d) Click Next > and complete the install.
Creating a Teiid Server instance using the New Server wizard
New to 8.0 is the integration of the Teiid Server functionality with Eclipse's WTP and JBoss Tools server framework. In particular, the Teiid Server definition requires the creation of a JBoss Server 7.1 instance which assumes that both an AS 7 instance and Teiid 8.2 server instance are installed correctly, either locally or remotely.
- The Teiid View has been modified to reflect the dependency of the Teiid 8.2 server instance on its AS 7 parent server, with the left portion of the view indicating which AS 7 instance the displayed teiid server belongs to. Initially, with no AS 7 instance configured, the view will be unpopulated as shown below:
- By clicking the New hyperlink (or using the action in the Teiid Server Action set), the Teiid Server wizard is displayed. This has also been refactored to include the configuring of the parent AS7 server.
- The parent AS7 server instance should be configured by clicking the New... hyperlink. The JBoss runtime wizard will be displayed and once completed the name of the parent server will be displayed next to JBoss Server in the Teiid Server wizard. Instructions for the completion of the JBoss runtime wizard can be found here (note. an AS7 JBoss runtime is required for Teiid 8.2 and Teiid Designer 8.0).
Unlike the previous version of Teiid Designer, it is no longer necessary to enter the Teiid Server's admin connection and credentials since Teiid now uses the same settings as the parent AS7 server instance. However, it is still necessary to enter the JDBC credentials.
Important - Both AS7 and Teiid passwords are now stored using Eclipse's built-in secure storage facility. Thus, when running the application a dialog box will appear asking for the master password. This password should be correctly entered, allowing the Teiid Designer and JBossTools plugin access to the secure storage. For more information, see here.
- Click Finish to complete the wizard. Two editors will be displayed:
- The JBoss Runtime Server editor displays the configuration of the parent JBoss AS7 instance
- The Teiid Server editor displays the configuration of the Teiid Server instance. Some values, such as the host, are read-only since these are dependent on the parent AS7 instance. The ping functionality to test both the admin and JDBC connections is provided in this editor. An example of this editor is shown below:
- The completion of the new Teiid Server wizard results in the population of the Teiid View, as shown below. The contents of the view is also displayed by the JBoss Servers view as part of the parent AS7 instance's tree.
- The left-hand column of the view displays the currently selected AS7 Server instance and can be changed using the drop-down box. Clicking the Edit hyperlink, displays the AS7 Server editor.
- The right-hand column of the view displays the configuration and contents of the Teiid Server, including the data sources, translators and deployed VDBs.
- The toolbar provides access to the new Teiid Server wizard and Teiid Server refresh action.
VDB Reuse feature
Teiid 8.1 introduced the ability to treat your deployed VDB as just another database where the database category is your VDB name and each visible model in your VDB is treated as a schema. This is accomplished via a new <import-vdb> element in the vdb.xml definition. (see Teiid 8.2 VDB Reuse section). By allowing VDB's to referenced other VDBs, users can create reusable database components and reduce the amount of modeling required to create complex transformations.
The sample vdb.xml file below highlights the <import-vdb> element and the corresponding import-vdb-reference within the view model's <model> element.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <vdb version="1" name="PartssupplierViewsVDB"> <property value="false" name="preview"/> <import-vdb import-data-policies="false" version="1" name="PartssupplierSourcesVDB"/> <model visible="true" type="VIRTUAL" name="PartsViewModel" path="/PartssupplierProject/PartsViewModel.xmi"> <property value="1623826484" name="checksum"/> <property value="Relational" name="modelClass"/> <property value="false" name="builtIn"/> <property value="655076658.INDEX" name="indexName"/> <property value="PartssupplierSourcesVDB" name="import-vdb-reference"/> </model> </vdb>
Teiid Designer exposes this capability by allowing users to import metadata from deployed VDB's via it's JDBC Import option. Through this import, relational VDB source models are created which structurally represent the Catalog (VDB), Schema (Model) and Tables in Virtual DataBase.
When dealing with the these VDB source models there are some limitations or rules, namely:
- VDB source models are read-only
- VDB source model name is determined by the deployed model name (schema) from the VDB it was imported from
- Model names have to be unique within a model project
- VDB source models have to be imported/created in a project different than the project used to create and deploy the Reuse VDB
- The JDBC Import Wizard will restrict your options to comply with these rules
To create a VDB source model:
Step 1: Deploy your VDB
Step 2: Launch the JDBC Import Wizard via the "Import > Teiid Designer > JDBC Database >> Source Model" action
Step 3: On the first page of the wizard create/select a valid connection profile for your deployed VDB.
- The wizard will detect that the connection profile is a Teiid VDB connection and section will be displayed on the wizard page titled Teiid VDB Source Options
- If Import as VDB source model is NOT checked, then the wizard will continue importing as a normal JDBC import
Step 4: On the 3rd page, titled Select Database Objects, select a single schema to use to create as VDB source model.
- Note the schema names are the names of the visible models in your deployed VDB
Step 5: The final page shows the name of the resulting VDB source model and the name is NOT editable
- All other options are disabled
- The target "Into Folder" must NOT contain a model with the same name or the Finish button will be disabled
You can use your VDB source model like any other source model in your project. VDB source model tables can be used in your transformation queries and the view models will contain model imports to your VDB source models. However, when your view model is added to a VDB, any referenced VDB source models do NOT get added to your VDB. Instead, an <import-vdb> element (described above) reference is added in it's place.
If VDB imports exist for a VDB, the Show Import VDBs button will be enabled and allow viewing the names of the imported VDBs as shown below.
Data Source Creation - JDBC Sources
To go along with the Teiid 8.2 changes, you may notice some changes in the way Data Source creation works in Designer 8.0.
- JDBC Driver deployment - When a preview or VDB execution is initiated, Designer will attempt to deploy any necessary JDBC driver jars defined in the connection profiles - (if they are not already deployed).
- NOTE: When driver jars are deployed, JBoss AS7 automatically recognizes any JDBC Type 4 drivers. If a driver is not a Type 4 driver, however, you must take action on the AS7 server to fix the problem. See this article for more information.
Model Extension Properties - Relational Source Procedure Marked As Function
When a relational source procedure's Function property is set to true, the additional extension properties Aggregate and Deterministic become available. Also, when the Aggregate extension property is set to true, these additional extension properties are available: Allows Distinct, Order-by, Analytic, Decomposable, and Uses Distinct Rows.
Here is how the Propeties View looks when all available extension properties are available for a relational source procedure: