3.3. External Materialization Usage Steps
insert into target_table select * from matview option nocache matview
Users when they are designing their views, they can define additional metadata on their views to control the loading and refreshing of external materialization cache. This option provides a limited but a powerful way to manage the materialization views. For this purpose, SYSADMIN Schema model in your VDB defines three stored procedures (loadMatView, updateMatView, matViewStatus) in its schema. Based on the defined metadata on the view, and these SYSADMIN procedures a simple scheduler automatically starts during the VDB deployment and loads and keeps the cache fresh.
CREATE TABLE status ( VDBName varchar(50) not null, VDBVersion integer not null, SchemaName varchar(50) not null, Name varchar(256) not null, TargetSchemaName varchar(50), TargetName varchar(256) not null, Valid boolean not null, LoadState varchar(25) not null, Cardinality long, Updated timestamp not null, LoadNumber long not null, PRIMARY KEY (VDBName, VDBVersion, SchemaName, Name) );
Note
Table 3.1. Extension Properties
| Property | Description | Optional | Default |
|---|---|---|---|
teiid_rel:ALLOW_MATVIEW_MANAGEMENT |
Allow Red Hat JBoss Data Virtualization-based management
|
False
|
False
|
teiid_rel:MATVIEW_STATUS_TABLE |
fully qualified Status Table Name defined above
|
False
|
NA
|
teiid_rel:MATVIEW_BEFORE_LOAD_SCRIPT |
semi-colon(;) separated DDL/DML commands to run before the actual load of the cache, typically used to truncate staging table
|
True
|
When not defined, no script will be run
|
teiid_rel:MATVIEW_LOAD_SCRIPT |
semi-colon(;) separated DDL/DML commands to run for loading of the cache
|
True
|
will be determined based on view transformation
|
teiid_rel:MATVIEW_AFTER_LOAD_SCRIPT |
semi-colon(;) separated DDL/DML commands to run after the actual load of the cache. Typically used to rename staging table to actual cache table. Required when MATVIEW_LOAD_SCRIPT is not defined in order to copy data from the teiid_rel:MATVIEW_STAGE_TABLE the MATVIEW table.
|
True
|
When not defined, no script will be run
|
teiid_rel:MATVIEW_SHARE_SCOPE |
Allowed values are {NONE, VDB, SCHEMA}, which define if the cached contents are shared among different VDB versions and different VDBs as long as schema names match
|
True
|
None
|
teiid_rel:MATERIALIZED_STAGE_TABLE |
When MATVIEW_LOAD_SCRIPT property not defined, Red Hat JBoss Data Virtualization loads the cache contents into this table. Required when MATVIEW_LOAD_SCRIPT not defined
|
False
|
NA
|
teiid_rel:ON_VDB_START_SCRIPT |
DML commands to run start of vdb
|
True
|
NA
|
teiid_rel:ON_VDB_DROP_SCRIPT |
DML commands to run at VDB un-deploy; typically used for cleaning the cache/status tables
|
True
|
NA
|
teiid_rel:MATVIEW_ONERROR_ACTION |
Action to be taken when mat view contents are requested but cache is invalid. Allowed values are (THROW_EXCEPTION = throws an exception, IGNORE = ignores the warning and supplied invalidated data, WAIT = waits until the data is refreshed and valid then provides the updated data)
|
True
|
WAIT
|
teiid_rel:MATVIEW_TTL |
time to live in milliseconds. Provide property or cache hint on view transformation - property takes precedence.
|
True
|
2^63 milliseconds - effectively the table will not refresh, but will be loaded a single time initially
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="sakila" version="1">
<description>Shows how to call JPA entities</description>
<model name="pg">
<source name="pg" translator-name="postgresql-override" connection-jndi-name="java:/sakila-ds"/>
</model>
<model name="sakila" type="VIRTUAL">
<metadata type="DDL"><
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.