BI(商业智能)

BI 核心:接入多源数据、建模、自助分析、仪表盘 / 大屏、报表、嵌入业务系统;区分【通用 BI】和【时序 / 地图 IoT 专用可视化】

国产商用 BI

帆软 FineBI / FineReport

  • 优势:国内占有率最高,大屏能力强、地图组件丰富、权限体系完善、私有化部署、支持国产数据库;支持嵌入 Web;报表 + BI 一体;
  • 短板:价格偏高;复杂实时高频轨迹性能一般(高频点位回放不适合)

瓴羊 Quick BI(阿里)

  • 优势:阿里云原生,SaaS / 私有化,对接 MySQL、MaxCompute、时序库;地图组件成熟;支持嵌入;成本适中
  • 短板:自建机房离线部署方案不如帆软成熟
  • 适合:上云项目、阿里云生态、大屏看板

观远数据、派可数据、永洪 BI

  • 永洪:大数据量、MPP 内置,自助分析强;
  • 观远:偏向业务敏捷、自然语言问数;
  • 派可:私有化、国产化适配强

国外:Power BI(微软)Tableau

开源 BI

DataEase(飞致云,国内最火开源 BI) ✅ 中文友好、拖拽大屏、内置地图、支持 MySQL/PostgreSQL、时序库、API 数据源;Docker 一键部署;支持嵌入 iframe;社区活跃;免费商用 ⚠️ 超大数据量、高频实时刷新性能一般;自定义地图图层需要二次开发

Apache Superset ✅ 开源老牌,SQL 优先,大数据(ClickHouse、Doris)友好;适合指标分析 ⚠️ 英文原生、大屏弱、地图组件简陋、上手门槛高

Metabase:极简、SQL 查询 + 看板,适合内部快速报表,大屏弱

Datart:国产开源 BI,权限完善、嵌入友好,适合项目集成

Grafana = 时序监控可视化 ,不是 BI:擅长 Prometheus、InfluxDB、TDengine,高频 IoT、传感器、车辆实时时序指标;地图轨迹回放、点位实时刷新非常强;但弱在多表关联、复杂业务指标建模、中国式报表。

技术架构

多数据源接入 → 数据抽取 / 计算引擎 → 语义模型层 → 可视化渲染层 → 权限 & 调度 & 对外服务

不同厂商差异主要在计算引擎、是否 MPP、存储模式、云原生改造程度。

  • A 类:报表 + BI 一体化(帆软 FineBI/FineReport):偏向服务化、中国式报表、大屏、混合计算
  • B 类:MPP 原生 BI(永洪 BI):内置分布式 MPP,面向大数据自助分析
  • C 类:云原生 SaaS BI(瓴羊 QuickBI):轻计算,依赖外部数仓(MaxCompute/ClickHouse)

标准分层架构

复制代码
【前端可视化层】
        ↓
【应用服务层(权限、调度、分享、嵌入、API)】
        ↓
【核心计算&语义模型层(最关键差异点)】
        ↓
【数据接入层】
        ↓
【底层数据源】

底层数据源(接入层)

  • 关系库:MySQL、PostgreSQL、Oracle、达梦、人大金仓、OceanBase、GaussDB
  • 数仓 / OLAP:ClickHouse、Doris、StarRocks、Greenplum、Hive
  • 时序库:TDengine、InfluxDB
  • 文件:Excel、CSV
  • API:HTTP 接口
  • 其他:Kafka、FTP

数据接入模式

  1. 直连模式(实时):BI 不存数据,查询下发 SQL 到源库;适合工单、业务实时指标;压力落在业务库
  2. 抽取模式(离线 / 准实时):定时 ETL 拉到 BI 内置引擎;适合高频自助分析、大报表,隔离业务库压力

时序 GPS 轨迹一般不进 BI 内置引擎,BI 只消费聚合后的统计指标(里程、在线时长、报警数量),原始轨迹放 TDengine等时序库

核心计算 & 语义模型层

(1)语义层(业务数据模型

屏蔽底层表结构,给业务人员用:

  • 物理表关联、维度 / 指标定义、计算字段、过滤、权限行级过滤
  • 支持行权限、列权限(环卫项目:不同片区管理员只能看自己片区车辆)
  • 支持参数、联动、动态过滤;和报表、大屏、自助分析共用一套模型

帆软叫「业务包」;永洪叫「数据集 / 数据模型」;QuickBI 叫「数据集 + 模型」

(2)计算引擎(三大路线)

路线 1:帆软模式【混合引擎:本地内存引擎 + 直连 SQL 下发 + 分布式集群】

  • 抽取后数据存内置列式文件引擎(FineData 引擎),单机内存优先,集群分片
  • 不是完整 MPP,偏向轻量汇总、交叉报表、中国式复杂报表
  • 大查询优先下推 SQL 到源库(ClickHouse/Doris),BI 只做上层二次渲染计算
  • 特点:报表能力极强,复杂表头、分组、分页、打印、导出是强项;海量明细自助分析弱于永洪

路线 2:永洪 BI【内置分布式 MPP 列式引擎(Yonghong Z-Engine)】

  • 自带 MPP,数据抽取进入 BI 自身分布式列式存储
  • 分布式分片、向量化、压缩,适合亿级明细自助拖拽、多维度下钻
  • 代价:数据要入仓,存储成本高;复杂中国式报表不如帆软顺手
  • 适合:运营多维分析、车辆运行明细多维度统计

路线 3:QuickBI【无重型内置引擎,计算下沉外部 OLAP】

  • 本身只做语义层、可视化、SQL 代理;计算全部下压到 MaxCompute/ClickHouse/Doris
  • 云原生无状态,弹性好;私有化版本依赖外部数仓
  • 适合阿里云生态,不适合单独扛大量计算

应用服务层(管控中台)

所有国产商用 BI 必有的模块:

  • 权限中心:用户、角色、组织、资源权限、行级权限 RLS、列脱敏(环卫敏感:驾驶员信息、车辆位置脱敏)
  • 任务调度:定时刷新数据集、定时报表推送、预警告警
  • 嵌入 SDK / OpenAPI:
    • iframe 嵌入、JS 嵌入、单点登录 SSO(OAuth2、CAS、LDAP,和你 SpringBoot/OIDC 打通)
    • 报表导出 PDF/Excel、获取图表数据接口(你的 Vben 大屏可以调 BI 指标接口)
  • 版本、水印、审计日志、操作日志(等保 2.0 必备)
  • 消息推送:邮件、钉钉、企业微信

前端可视化层

  • 自助分析:拖拽数据集、图表、筛选、联动、钻取
  • 报表模块:复杂分组、交叉表、斜线表头、套打(FineReport 最强)
  • 大屏驾驶舱:拖拽布局、动画、轮播、地图组件
    • 内置地图:高德 / 百度底图、GCJ02 支持;但原生地图只适合点位聚合、热力图;不适合轨迹回放、动态车辆移动
  • 移动端:H5、App、钉钉 / 企业微信集成

列式文件(列式存储文件)

存储 存储形态 适用场景
MySQL InnoDB 行式 工单、车辆基础信息、业务主库,频繁增改
TDengine 时序列式(按时间片 + 设备) GPS 轨迹、速度、上报时序点,高频写入 + 范围查询
ClickHouse 列式数据库(底层 Parquet 类列式文件) 车辆聚合统计、大报表、多维下钻
FineBI FineData 自研私有列式文件 BI 抽取数据集,自助分析、报表缓存,BI 独占
Parquet 开源列式文件 数据湖、Doris、Spark,跨引擎交换

ClickHouse / Apache Doris

两者都是列式 OLAP,面向海量分析;

CK 单表扫描 / 聚合更强、适合流水日志;

Doris MPP + 标准 SQL、Join / 更新 / 并发更强、更适合对接 BI、多表业务报

时序数据库

时序库(InfluxDB/Timescale/TDengine)

行业标准最佳实践:冷热分层组合方案(推荐) Redis(热:最新位置 + 在线状态) + TDengine(温:最近 30 天轨迹,回放主力) + ClickHouse(冷:归档,>30 天统计 / 导出)

如果项目大量电子围栏、区域报警、地理运算:替换 TDengine → TimescaleDB + PostGIS

轨迹数据特征

  1. 时序为主:每条轨迹带 GPS 时间(gps_time)+ 报文流水号 + 终端 ID;存在乱序、后发先至(补发),不是单纯 append
  2. 写入量大:单车 10s / 条,1 万台:6w/min;十万车就是 60w/min
  3. 冷热分明:最近 1~7 天高频回放查询;超过 30 天极少访问,长期归档
  4. 去重刚需:同一条 0x0200 多次补发,依靠 terminal_id + msg_sn 唯一键去重
  5. 字段:终端号、GPS 时间、接收时间、经纬度、速度、方向、定位状态、报警位、附加信息(里程、油量等)
相关推荐
benchmark_cc3 小时前
用 00700.HK 做港股行情清洗:字段核对、校验与个人量化开发实践
python·数据分析·pandas·量化交易·股票数据·quantdash
Zhao-Jichao5 小时前
AI Prompting for Everyone 课程笔记 - P19 数据分析 Data Analysis
人工智能·笔记·数据分析
第九序言T5 小时前
数据分析岗 Pandas 面试题 20 道(上):概念与读代码
python·数据分析·pandas·数据处理
奥惟斯5 小时前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
2601_966949656 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
kaiyou202612 小时前
商务数据分析与应用专业哪些证书企业比较认可?
数据挖掘·数据分析
Data analyse45613 小时前
web-vitals库接入:LCP、INP、CLS上报与阈值
前端·javascript·数据分析
SelectDB1 天前
Apache Doris 与 SelectDB 是什么关系?从开源技术到面向 Agent 的极速分析数据库
大数据·数据库·数据分析
SelectDB1 天前
存算分离冷查询提速 7.5 倍!Apache Doris 4.2 Peer Read 实现跨计算组缓存复用
大数据·数据库·数据分析