1. 概述
数据管理部分主要是让你了解如何对已经梳理好的现有的数据接入 BI 系统,并保证数据在 BI 中的持续可用性。
主要内容包括:
适用人群:平台管理员、IT 运维人员
2. 数据连接管理
权限管控:创建数据连接的权限仅开放给超管&次管。
重复性校验:在创建数据连接之前,需检索数据连接是否已存在,不可创建两个指向(数据库地址、库名、用户等参数)完全一样的数据连接。
命名规范:数据连接命名需有统一规范,可遵照例如「业务系统/数据主题_数据库类型」形式,如「BI平台运营_MySQL」、「xxERP系统交易数据_GP」;或者「业务系统/数据主题_使用部门_添加/负责人」,如「BI平台使用记录_运营部_peter」等规范进行命名。超级管理员需对数据连接命名做统一监控。
固定连接名:数据连接名不能轻易修改,更改后数据库表会因为找不到数据库而报错,因此需要提前规划好数据连接名称。更改数据连接名后,SQL 数据集需要进入修改SQL页面重新选择数据连接,若数据连接名很可能要改,则尽量用 SQL 添加基础表而不是数据库db表。
3. 数据策略(直连or抽取)
FineBI支持两种取数模式:
直连模式——直接使用数据库中的数据和能力进行计算
抽取模式——数据需要抽取保存到 FineBI 的引擎中进行计算。详情可参考文档:直连数据和抽取数据的区别
对于同一个系统来说,抽取和直连数据都可以存在,但需注意每个组件只能用一种模式的数据。
若企业有较为专业的大数据平台,数据质量很高,或者对数据实时性的要求很高,不接受T+1数据,或者数据安全性要求很高的,不希望将数据另外存储到BI工程中,此时可以选择直连模式。
此外,若企业的最大数据量超过1亿,且需要对大数据量的表进行频繁的分析,我们建议也使用直连模式,将计算下放到数据库,减少BI服务的压力。
但直连版本不支持对跨数据源的数据表做联合分析(建立关联、上下合并、左右合并等),若实际业务有跨表关联的诉求,可以借由Finedatalink产品实现数据的跨库同步。
抽取数据的计算,使用的是BI服务器的计算能力和资源(主要是内存),其性能相关因素主要在于服务器资源情况以及BI对于资源的使用能力;而直连的计算,是FineBI经过引擎处理,将前端的计算逻辑转化为数据库sql,然后发送给数据库进行计算,BI获取数据库返回的结果做展现,性能与数据库引擎强相关。若企业使用直连数据,需确认业务数据库能否支撑BI发送的高并发sql计算,包括在高并发下的查询速度和资源使用情况。
抽取数据的使用规范请参考:抽取数据更新
4.一些与系统性能有关的方案
1)使用「全局内存控制」插件(已内置):当业务使用使内存升高达到内存预警值时,可通过BI内存监控的保护机制,主动打断导出线程。
2)设置Excel导出限制参数:「管理系统」>「系统管理」>「常规」中,有两个参数对导出进行限制:
「Excel导出数据量限制」参数默认不设置,建议配置范围:0-1000000000;
「明细表导出并发线程数限制」默认值:3,建议配置范围:1-5(建议保持默认值)。
3)若使用nginx,可配置http2:可增加浏览器请求并发数(开启http2协议会导致数据库的并发数增多,需结合数据库性能评估)。
4)使用 FINE_CONF_ENTITY可视化配置 插件配置
SystemOptimizationConfig.queryConditionCountRestriction 参数:可对过滤条件数量超出限制的查询直接打断,并报错:condition count out of restriction: xxxx。建议值:30(也可更小,取决于实际的过滤场景)。
5)安装「BI联动限制」插件:当一张仪表板中多个组件发生互相联动时,三层以及以上的联动会被删除,保留最后一次受到联动的组件之前的两层联动,由此保证了仪表板性能,不会产生加载很慢的现象。
6)限制组件查询时长:「管理系统」>「系统管理」>「常规」,有两个参数对组件查询时长进行限制:
当仪表板因组件过多,组件查询时间会过长,或者仪表板中某个组件查询时间过长,导致后续 BI 请求被阻塞误认为产品宕机时,可通过这两个参数设置「直连/抽取查询超时时间」,所有实时/抽取数据查询超时之后将会中止查询,防止异常慢查询阻塞其他正常查询。
建议配置范围:10-300,可根据实际业务情况和能接受的等待时长配置。
*注:此处抽取参数限制的是polars引擎,如果要使spider引擎也生效,需要设置DistributedOptimizationConfig.spiderConfig.spider_query_timeout_open 和 DistributedOptimizationConfig.spiderConfig.spider_query_timeout_limit 参数,在并发大的情况下可以截断请求保证系统可用。