...
smartbi 为了解决这类问题,业务库迁移之后,可以替换ID的操作, 其核心原理:Smartbi 通过记录数据源、catalog、schema 的对应关系,生成唯一 ID 标识表和字段。迁移后需在知识库中建立 “旧 ID 规则” 与 “新 ID 规则” 的映射,确保报表能正确匹配新数据库中的表结构。
1.1 适用场景
当业务库发生以下变更时,需通过 ID 替换保证报表正常取数:
1.2 关键概念说明
概念 | 说明 |
---|---|
catalog | 数据库的逻辑分组(类似 “数据库集群中的子库”),部分数据库(如 PostgreSQL)支持,MySQL 默认无 |
schema | 数据库中的模式(类似 “表的分组容器”,如 “public”“admin”) |
ID 规则 | 控制字段 ID 的生成逻辑,分 “带 catalog” 和 “不带 catalog” 两类,支持原值、大写、小写三种格式。 |
...
3、把所有的schema节点,插入了知识库之后,可以检查一下表预览数据、数据集、数据模型等是否正常查询数据。
3 不支持的情况及注意事项说明
1、旧资源(没有支持catalog即V10.5.8之前创建的资源)同一schema下存在多个不同的catalog,只能选中一个进行替换处理,无法同时支持多个
历史旧ID资源所有的catalog为null,产品支持catalog后,有部分表数据库管理移除保存后又重新加入,catalog会更新为实际值,这样就会出现旧资源多个catalog的情况
...
select distinct c_catalog from t_basictable where c_datasrcid = 'DS.northwind' and c_schema = "schema名称"
2、数据模型、自助数据集移除表(表是切换数据库后重新添加的),重新添加表后会丢失原ID
数据模型、自助数据集移除表,重新添加表操作,因为表是切换数据库后重新添加的,会使用实际catalog、schema参与资源字段ID,会发生变化,导致关联的报表报找不对象的问题
3、数据集同步表影响
数据模型只是进行同步表操作,不影响正常使用
自助数据集同步表,操作等同于重新添加表,如果同步的表是切换数据库后重新添加的,会引起找不到对象的问题
4、缓存可能会影响使用,切换数据库和id后建议系统清除缓存
可视化等数据集,默认是自动缓存的,修改了数据库类型,需要清除缓存(清除时需确保数据集不是打开状态),数据集设置了禁用缓存不受影响
5、其他不支持
- SQL查询、sql数据集、参数等用户使用手写SQL部分无法支持。
- 只支持名称统一转为大小写,同时包含大小写的情况,目前暂不支持。
...