当前位置: 首页 > 文档资料 > 技术文档 Cookbook >

元数据

优质
小牛编辑
136浏览
2023-12-01

本部分验证元数据缓存功能。

测试数据库初始化

本部分使用 mariadb。

创建数据库,用户
$ mysql -u root -p

CREATE DATABASE accounts;
USE accounts;

CREATE USER jdv_user@'%' IDENTIFIED BY 'jdv_pass';
GRANT ALL PRIVILEGES ON accounts.* to jdv_user@'%';
exit
初始化测试数据
$ mysql -u jdv_user -p

USE accounts;
source accounts-schema.sql

show tables;
+--------------------+
| Tables_in_accounts |
+--------------------+
| ACCOUNT            |
| CUSTOMER           |
| HOLDINGS           |
| HT_ProductInfo     |
| PRODUCT            |
+--------------------+
5 rows in set (0.00 sec)
Mysql 驱动安装
./bin/jboss-cli.sh --connect --file=module-add-mysql.cli

module-add-mysql.cli

数据源配置
./bin/jboss-cli.sh --connect --file=create-mysql-xa-ds.cli

create-mysql-xa-ds.cli

元数据加载

JDV 中可加载的元数据见下表:

名称默认加载过滤属性

Table

Y

catalog, schemaPattern, tableNamePattern, tableTypes, excludeTables, useFullSchemaName, useQualifiedName, useCatalogName, catalogSeparator

PrimaryKey

Y

importKeys

Index

Y

importKeys, importIndexes, importApproximateIndexes

ForeignKey

Y

importKeys, importForeignKeys

TableStatistics

N

importStatistics

Procedure

N

importProcedures, catalog, schemaPattern, procedureNamePattern, useProcedureSpecificName, excludeProcedures, useFullSchemaName

  • catalog, schemaPattern, tableNamePattern, tableTypes - 最直接用来过滤表的加载策略,

    • tableTypes 是用逗号隔开的字符串,可配置的表类型有:TABLE、VIEW、SYSTEM TABLE、GLOBAL TEMPORARY、LOCAL TEMPORARY、ALIAS、SYNONYM。通常建议只加载表和视图,例如配置 tableTypes 属性为 TABLE,VIEW

  • excludeTables - 正则表达式,用来更细化的过滤表的加载,

元数据加载过滤

部署 meta-filter-vdb.xml 到 JDV,查看 VDB 加载的元数据,结果如下

[HOLDINGS, HT_ProductInfo]

元数据动态加载

元数据缓存

为了方便观察从缓存中加载元数据,添加如下日志配置

/subsystem=logging/logger=org.teiid.RUNTIME:add(level=DEBUG)

部署 meta-caching-vdb.xml 到 JDV,并反复重启 JDV 数次,观察日志中会有如下信息。

15:22:30,717 DEBUG [org.teiid.RUNTIME] (teiid-async-threads - 4) Model  Accounts in VDB  CacheMetadataVDB  was loaded from cached metadata
...
15:37:20,949 DEBUG [org.teiid.RUNTIME] (teiid-async-threads - 1) Model  Accounts in VDB  CacheMetadataVDB  was loaded from cached metadata
...
15:37:46,072 DEBUG [org.teiid.RUNTIME] (teiid-async-threads - 1) Model  Accounts in VDB  CacheMetadataVDB  was loaded from cached metadata
Note注意,实际生成环境不建议日志为 DEBUG。
Note元数据被缓存文件路径为: standalone/data/teiid-data/CacheMetadataVDB_1/CacheMetadataVDB_1_Accounts.ser