在数字化转型的浪潮下,企业越来越依赖数据驱动决策。然而,传统BI工具往往需要用户在不同系统间切换,导致分析效率低下。嵌入式BI 的出现,让企业能够在现有业务系统(如CRM、ERP、OA)中直接集成数据分析能力,无需跳转即可查看实时报表。
本文将基于衡石科技的嵌入式BI解决方案,详细介绍如何通过其开放API,将BI能力无缝集成到业务系统中,并提供关键代码示例和最佳实践。
1. 什么是嵌入式BI?
嵌入式BI是指将数据分析、可视化、仪表盘等功能直接嵌入到企业现有的业务应用程序中,使终端用户在不离开系统的情况下完成数据探索和决策支持。
核心优势
✅ 无缝集成:无需跳转至独立BI平台,提升用户体验。
✅ 降低开发成本:复用现有BI能力,避免重复造轮子。
✅ 数据实时性:直接对接企业数据源,确保分析结果最新。
✅ 权限管控:与业务系统权限体系对接,保障数据安全。
衡石科技的嵌入式BI解决方案提供完整的API和SDK支持,适用于Java、Python、JavaScript等主流开发语言,可快速实现深度集成。
2. 衡石嵌入式BI的核心API能力
衡石科技提供了一套完整的RESTful API和JavaScript SDK,支持以下核心功能:
API类别 | 功能说明 |
---|---|
仪表板嵌入 | 将预定义的可视化看板(Dashboard)嵌入到业务系统页面中,支持动态参数传递。 |
自助分析嵌入 | 允许用户在业务系统内直接进行自助数据分析,如拖拽式查询、筛选、下钻等操作。 |
单图表嵌入 | 单独嵌入某个图表(如折线图、柱状图),适用于需要在业务表单中展示关键指标的场景。 |
数据权限控制 | 通过API动态设置行级/列级数据权限,确保用户仅能看到权限范围内的数据。 |
事件交互 | 支持BI组件与业务系统的双向通信,例如点击图表触发业务逻辑,或业务数据更新后刷新报表。 |
3. 实战:通过衡石API嵌入BI到业务系统
3.1 前置准备
-
获取API Key:在衡石科技管理后台申请开发者权限,获取
API Key
和Access Token
。 -
确定嵌入方式:
-
iframe嵌入(简单快捷,适合基础场景)
-
JavaScript SDK(更高灵活性,支持深度交互)
-
RESTful API(适用于后端集成,如权限控制、数据预加载)
-
3.2 示例1:使用iframe快速嵌入仪表板
适用于需要快速集成的场景,只需几行HTML代码即可完成:
html
<iframesrc="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嵌入,还是复杂的交互式集成,衡石均提供了完善的技术支持。
下一步建议:
-
访问衡石科技开发者文档获取详细API指南。
-
在沙箱环境测试嵌入功能,确保兼容性。
-
联系衡石技术支持,获取企业级定制方案。
讨论
你在嵌入式BI开发中遇到过哪些挑战?欢迎在评论区交流!