嵌入式BI开发指南:如何通过衡石API将分析能力集成到业务系统?

在数字化转型的浪潮下,企业越来越依赖数据驱动决策。然而,传统BI工具往往需要用户在不同系统间切换,导致分析效率低下。嵌入式BI 的出现,让企业能够在现有业务系统(如CRM、ERP、OA)中直接集成数据分析能力,无需跳转即可查看实时报表。

本文将基于衡石科技的嵌入式BI解决方案,详细介绍如何通过其开放API,将BI能力无缝集成到业务系统中,并提供关键代码示例和最佳实践。


1. 什么是嵌入式BI?

嵌入式BI是指将数据分析、可视化、仪表盘等功能直接嵌入到企业现有的业务应用程序中,使终端用户在不离开系统的情况下完成数据探索和决策支持。

核心优势

无缝集成 :无需跳转至独立BI平台,提升用户体验。

降低开发成本 :复用现有BI能力,避免重复造轮子。

数据实时性 :直接对接企业数据源,确保分析结果最新。

权限管控:与业务系统权限体系对接,保障数据安全。

衡石科技的嵌入式BI解决方案提供完整的API和SDK支持,适用于Java、Python、JavaScript等主流开发语言,可快速实现深度集成。


2. 衡石嵌入式BI的核心API能力

衡石科技提供了一套完整的RESTful APIJavaScript SDK,支持以下核心功能:

API类别 功能说明
仪表板嵌入 将预定义的可视化看板(Dashboard)嵌入到业务系统页面中,支持动态参数传递。
自助分析嵌入 允许用户在业务系统内直接进行自助数据分析,如拖拽式查询、筛选、下钻等操作。
单图表嵌入 单独嵌入某个图表(如折线图、柱状图),适用于需要在业务表单中展示关键指标的场景。
数据权限控制 通过API动态设置行级/列级数据权限,确保用户仅能看到权限范围内的数据。
事件交互 支持BI组件与业务系统的双向通信,例如点击图表触发业务逻辑,或业务数据更新后刷新报表。

3. 实战:通过衡石API嵌入BI到业务系统

3.1 前置准备

  1. 获取API Key :在衡石科技管理后台申请开发者权限,获取API KeyAccess Token

  2. 确定嵌入方式

    • iframe嵌入(简单快捷,适合基础场景)

    • JavaScript SDK(更高灵活性,支持深度交互)

    • RESTful API(适用于后端集成,如权限控制、数据预加载)

3.2 示例1:使用iframe快速嵌入仪表板

适用于需要快速集成的场景,只需几行HTML代码即可完成:

html

复制代码
<iframe
  src="https://api.hengshi.com/embed/dashboard/{DASHBOARD_ID}?token={ACCESS_TOKEN}"
  width="100%"
  height="600px"
  frameborder="0"
></iframe>

参数说明

  • DASHBOARD_ID:衡石平台上的仪表板ID

  • ACCESS_TOKEN:衡石API鉴权Token(建议后端动态生成,避免泄露)

3.3 示例2:使用JavaScript SDK实现深度交互

如果需要更灵活的交互(如动态传参、事件监听),可使用衡石提供的HSBI SDK

javascript

复制代码
// 1. 引入SDK
<script src="https://cdn.hengshi.com/sdk/hsbi-embed.js"></script>

// 2. 初始化BI组件
const embed = new HSBI.Embed({
  container: document.getElementById("bi-container"), // 挂载DOM节点
  dashboardId: "DASHBOARD_ID",
  accessToken: "API_ACCESS_TOKEN",
  filters: {  // 动态传参(如按部门筛选数据)
    department: "sales"
  }
});

// 3. 监听BI事件(如用户点击图表)
embed.on("chartClick", (event) => {
  console.log("用户点击图表数据:", event.data);
  // 可触发业务系统逻辑,如跳转至详情页
});

3.4 示例3:后端动态控制数据权限(Python示例)

衡石API支持通过后端代码动态设置数据权限,确保用户仅能看到自己的数据:

python

复制代码
import requests

# 获取嵌入Token(带权限参数)
def get_embed_token(user_id):
    url = "https://api.hengshi.com/v1/embed/token"
    headers = {"Authorization": "Bearer YOUR_API_KEY"}
    payload = {
        "dashboard_id": "DASHBOARD_ID",
        "user_id": user_id,
        "row_filters": {  # 行级权限:限制用户只能看到自己的销售数据
            "sales_data": f"sales_rep_id = '{user_id}'"
        }
    }
    response = requests.post(url, json=payload, headers=headers)
    return response.json()["access_token"]

4. 企业级嵌入式BI的最佳实践

4.1 安全性优化

  • Token有效期:避免使用长期有效的Token,建议每次会话生成新Token。

  • 数据脱敏:敏感字段(如手机号、身份证)通过API配置脱敏规则。

  • HTTPS强制加密:确保所有嵌入请求均通过HTTPS传输。

4.2 性能优化

  • 预加载数据:在用户访问前通过API预计算关键报表,减少等待时间。

  • 缓存策略:对静态仪表板使用CDN缓存,动态数据设置合理刷新间隔。

4.3 用户体验优化

  • 自适应布局:通过CSS确保BI组件在不同设备(PC/移动端)正常显示。

  • 无代码配置:为非技术人员提供管理后台,允许业务人员调整嵌入内容。


5. 总结

衡石科技的嵌入式BI解决方案通过灵活的API和SDK,帮助企业将数据分析能力深度集成到业务系统中,提升数据驱动的效率。无论是简单的iframe嵌入,还是复杂的交互式集成,衡石均提供了完善的技术支持。

下一步建议

  1. 访问衡石科技开发者文档获取详细API指南。

  2. 在沙箱环境测试嵌入功能,确保兼容性。

  3. 联系衡石技术支持,获取企业级定制方案。


讨论

你在嵌入式BI开发中遇到过哪些挑战?欢迎在评论区交流!

相关推荐
AI科技星3 分钟前
为什么宇宙无限大?
开发语言·数据结构·经验分享·线性代数·算法
杨超越luckly8 分钟前
基于 Overpass API 的城市电网基础设施与 POI 提取与可视化
python·数据可视化·openstreetmap·电力数据·overpass api
Appreciate(欣赏)20 分钟前
JAVA使用poi类读取xlxs文件内容拼接成添加数据SQL
java·开发语言·sql
oioihoii1 小时前
性能提升11.4%!C++ Vector的reserve()方法让我大吃一惊
开发语言·c++
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于JAVA的恒星酒店客房管理系统为例,包含答辩的问题和答案
java·开发语言
思密吗喽1 小时前
景区行李寄存管理系统
java·开发语言·spring boot·毕业设计·课程设计
Rust语言中文社区1 小时前
【Rust日报】Dioxus 用起来有趣吗?
开发语言·后端·rust
小灰灰搞电子1 小时前
Rust Slint实现颜色选择器源码分享
开发语言·后端·rust
q***23571 小时前
python的sql解析库-sqlparse
数据库·python·sql
18你磊哥1 小时前
Django WEB 简单项目创建与结构讲解
前端·python·django·sqlite