ODI反向工程成功后模型中不显示SQL Server数据表问题求助
ODI反向工程SQL Server无表展示排查方案
1. 架构匹配配置校验
- 确认SQL Server中目标表所属的架构,SQL Server默认架构为
dbo,如果表存放在自定义架构下,必须在ODI数据存储配置页的「默认架构」字段填写对应架构名,不可留空或填写错误 - 如果需要拉取多个架构下的表,将反向工程掩码修改为
%.%,分别匹配架构名和表名,仅使用%会跳过架构匹配规则,导致无法拉取非默认架构的表
2. JDBC连接参数修正
- 多数场景下该问题由未指定默认数据库导致,ODI默认会拉取SQL Server的
master系统库表,修改JDBC连接URL,补充databaseName=实际业务库名参数,示例配置:jdbc:sqlserver://<数据库IP>:<服务端口>;databaseName=你的业务库名称;encrypt=false - 如果SQL Server实例开启了大小写敏感规则,填写的库名、架构名、反向掩码的大小写必须和实际配置完全一致
3. 反向查询逻辑校验
- 打开ODI对应反向工程任务的执行会话日志,提取日志中实际执行的元数据查询SQL,使用当前连接账号在SQL Server客户端执行该SQL
- 若执行结果为空,可直接定位SQL中的过滤条件(架构过滤、表类型过滤等)和实际环境的不匹配项,针对性调整反向工程配置
4. 账号权限补充校验
- 确认当前连接账号除了表的SELECT权限外,还拥有目标库对应架构的
VIEW DEFINITION权限,ODI反向工程需要读取系统表元数据,仅SELECT权限不足以拉取表清单,授权语句参考:GRANT VIEW DEFINITION ON SCHEMA :: 目标架构名 TO 连接账号名;
5. 版本兼容性校验
- ODI 12c之前的版本需额外确认已安装对应SQL Server版本的JDBC驱动,旧版驱动无法兼容SQL Server 2016及以上版本的系统表结构,会导致元数据拉取为空
内容的提问来源于stack exchange,提问作者David Makinde
相关产品推荐
相关产品推荐

