1. 概述
1.1 版本
FineBI 版本 |
---|
5.1.17 |
注:仅适用于 5.1.17 版本。
1.2 应用场景
BI 系统在正式投入使用后,信息部负责系统运营的同事想要知道,当前系统有多少人访问;创建了多少数据表、多少仪表板;不同数据表和仪表板的创建人是谁等等,来了解当前系统的整体使用情况,对业务使用进行把控。
此时就可以使用本文中的方法导入仪表板和数据集对系统使用情况进行监控。
1.3 预期效果
可在 BI 平台查看系统使用情况:
例如查看 BI 系统使用看板了解系统使用人数、平台访问情况、用户情况等等,如下图所示:
1.4 实现思路
2. 操作步骤
首先确认需要新增的仪表板内容以及对应的数据来源:
仪表板 | 数据表类型 | 数据来源 |
---|---|---|
BI 系统推广看板 | SQL | logdb、finedb |
平台用户性质分布 | SQL | FineDB |
权限展示 | 服务器数据集 | 权限导出插件 |
仪表板分享&公共链接分享情况 | SQL | LogDB |
2.1 接入数据
首先需要将系统监控用到的数据来源接入至 FineBI 中。数据来源包括: Finedb、Logdb、权限导出插件等等。
2.1.1 接入 Logdb 数据
连接 LogDB 数据库,如下图所示:
2.1.2 接入 Finedb 数据
连接外接数据库 finedb,如下图所示:
注:示例默认使用 MYSQL 外接数据库,该方案暂不支持内置数据库。
2.1.3 接入 BI 系统中权限相关数据
安装 权限导出插件 ,安装插件后,点击「管理系统>数据连接>服务器数据集」,会自动生成权限相关的服务器数据集数据,如下图所示:
注:接入数据连接之后,可以先分别添加数据库表检查一下是否连接成功,必须要连接成功才能进行接下来的操作。
2.2 添加数据和仪表板至 FineBI
接着即可将需要的仪表板和数据集导入至 FineBI 中。
2.2.1 资源迁移导入已经创建好的数据
管理员账号登录系统 ,进入「管理系统>智能运维>资源迁移」,选择「资源导入」,上传文件,如下图所示:
2.2.2 添加服务器数据集中权限相关的数据
由于 2.1.3 节中通过安装权限导出插件,已经将所需的权限相关数据生成在服务器数据集中,所以只需要讲其添加至 FineBI 业务包中。
进入对应业务包中,点击「添加表>数据库表」,选择「服务器数据集」,添加权限数据表,点击「确定」,如下图所示:
2.3 进行数据更新
导入后的数据需要进行更新才能在 BI 中使用。
为保证资源导入的数据可使用,需要将数据更新到 FneBI 中。
对新增的所有数据进行业务包更新。
例如进入「运维看板_原始表」业务包,点击「业务包更新」,更新该业务包中的所有数据表,如下图所示:
2.4 查看监控数据
点击「目录」即可查看对应数据,详情参见本文 1.2 节。
注:如果查看页面出现「数据无权限」或者「数据已被删除」,可以进入「更新任务管理」检查对应的数据表是否更新成功,如下图所示:
3. 注意事项
3.1 基础表中用户类型表更新读取失败
若 finedb 配置的外接数据库为 Oracle
可能是因为 SQL 语法不支持 IF 需要改为 nvl 函数,可使用下面这段 SQL:
select fine_user.id,fine_user.realName,fine_user.userName,LOWER(FINE_USER.USERNAME) as 英文名小写,nvl(b.type,'设计用户-数据分析') as usertype
,case FINE_USER.ENABLE
when 1 then '开启'
when 2 then '禁用'
end as 账号状态
from fine_user
left join(
select a.relatedId,
case a.name
when 'user_product_type.platform.bi_view' then '查看用户'
when 'user_product_type.platform.bi_design.bi_data_process' then '设计用户-数据处理'
end as type
from fine_extra_property a
where (name like '%bi_view%' or name like '%data_process%' )
and a.relatedId <>'55edb712-779c-49f3-ac14-677dbb88d91a' and a.relatedId <>'b5f0c2ee-640f-4039-a4d4-918b55354898'
)b
on FINE_USER.id=b.relatedId
where FINE_USER.id<>'55edb712-779c-49f3-ac14-677dbb88d91a' and
FINE_USER.id <>'b5f0c2ee-640f-4039-a4d4-918b55354898'
若 finedb 配置的外接数据库为 Sql Server
可能是因为 SQL 语法不支持 IF,需要改为 isnull 函数,可使用下面这段 SQL:
select fine_user.id,fine_user.realName,fine_user.userName,LOWER(FINE_USER.USERNAME) as 英文名小写,ISNULL(b.type,'设计用户-数据分析') as usertype
,case FINE_USER.ENABLE
when 1 then '开启'
when 2 then '禁用'
end as 账号状态
from fine_user
left join(
select a.relatedId,
case a.name
when 'user_product_type.platform.bi_view' then '查看用户'
when 'user_product_type.platform.bi_design.bi_data_process' then '设计用户-数据处理'
end as type
from fine_extra_property a
where (name like '%bi_view%' or name like '%data_process%' )
and a.relatedId <>'55edb712-779c-49f3-ac14-677dbb88d91a' and a.relatedId <>'b5f0c2ee-640f-4039-a4d4-918b55354898'
)b
on FINE_USER.id=b.relatedId
where FINE_USER.id<>'55edb712-779c-49f3-ac14-677dbb88d91a' and
FINE_USER.id <>'b5f0c2ee-640f-4039-a4d4-918b55354898'