SaaS 多租户架构设计实践:衡石 BI 如何实现数据隔离与资源调度

发布时间:2026/6/12 1:11:30

SaaS 多租户架构设计实践:衡石 BI 如何实现数据隔离与资源调度 对于软件 ISV 厂商而言将 BI 能力嵌入自有产品并提供给成百上千个客户租户多租户架构是绕不开的技术难题。衡石 HENGSHI SENSE 作为面向 ISV 的 BI PaaS 平台其多租户架构设计兼顾数据隔离的严格性、资源利用的高效性和集成嵌入的灵活性。本文从架构设计、数据隔离方案、租户管理和集成模式四个维度深入拆解其设计思路与实践经验。一、ISV 的多租户困境典型集成场景是一家 SaaS CRM 厂商如纷享销客需要为成千上万个企业客户提供数据分析能力。每个客户希望看到的是自己的销售数据、客户分析、业绩趋势——而不是别人的。这带来了五个核心挑战。数据隔离方面租户 A 绝对不能看到租户 B 的数据这是最基本的安全底线。资源隔离方面大租户的分析任务不能拖垮小租户的性能需要有效的资源调度和配额管理。身份打通方面租户自己的用户体系要与 BI 的权限体系无缝对接。差异化配置方面不同租户可能需要不同的数据源、指标定义、报表模板。运维成本方面上千个租户不能逐个手动配置必须有自动化机制。二、衡石多租户架构设计App 即租户衡石采用「应用App」作为租户隔离的基本单元在三个层面实现多租户架构。租户层每个租户对应一个独立的 App 空间App 之间在逻辑上完全隔离。应用层每个 App 拥有独立的数据集和数据连接、指标定义和语义层、仪表板和报表、用户和权限策略。基础设施层计算引擎、AI 模型服务可选隔离、ETL 管道调度器在多个租户间共享通过配额和优先级进行资源调度。这种「App 即租户」的隔离粒度意味着为不同租户创建独立的应用空间后每个 App 拥有完全独立的数据连接租户 A 连接自己的 MySQL 数据库租户 B 连接自己的 PostgreSQL 数据库每个 App 的仪表板完全隔离查看租户 A 的仪表板列表时只显示租户 A 的内容租户 B 的完全不可见。三、数据隔离的四种方案对比在数据库层面衡石支持四种隔离方案企业可以根据租户的重要性和规模灵活选择。独立数据库方案的隔离级别最高但资源共享度最低、运维复杂度最高适合金融、医疗等强合规场景。共享数据库但独立 Schema 的方案隔离级别高、资源共享度中等、运维复杂度中等适合中型 SaaS 产品。共享数据库和共享表、通过租户 ID 字段隔离的方案隔离级别中等、资源共享度最高、运维复杂度最低适合中小租户的快速扩展场景。衡石推荐采用混合模式大租户年费百万级别使用独立数据库加独立 App实现最高隔离和专属资源中等租户使用共享数据库独立 Schema 加独立 App实现高隔离和可控成本小租户免费试用或基础版使用共享表的租户 ID 隔离加独立 App实现低成本快速扩展。在实际配置中可以为不同等级的租户设置不同的资源配置。VIP 租户可以分配 16 核 CPU 和 64GB 内存的专属配额标准租户分配 4 核 CPU 和 16GB 内存基础租户分配 1 核 CPU 和 4GB 内存。四、租户生命周期管理通过 HENGSHI CLI租户的创建、配置和销毁可以完全自动化。完整的租户创建流程包括创建租户并分配等级、自动分配应用空间、自动配置数据连接、自动导入基础仪表板模板、自动配置权限。这一切可以通过脚本化实现ISV 在自己的管理后台创建一个新客户时衡石侧的租户可以同步自动创建。租户状态管理同样自动化。可以查看租户的实时状态包括用户数、仪表盘数量、存储使用量、最近活跃时间可以因欠费暂停租户、恢复租户可以删除租户并彻底清除数据删除前支持预演确认。租户配额管理允许设置最大用户数、最大仪表盘数量、最大存储空间、每小时最大查询数等限制超过配额时优雅降级而非直接中断服务。五、身份认证与权限打通衡石采用三层认证体系来保障安全并实现灵活集成。第一层是平台认证支持 OAuth 2.0 和 OIDC、企业 SSO支持 SAML、API Key用于 Agent 和 CI 接入。第二层是租户认证与 ISV 产品的用户体系打通通过 JWT Token 透传实现。第三层是数据权限包括行级数据权限RLS、列级数据权限敏感字段脱敏和功能级权限谁能创建仪表板、谁能查看。身份打通的典型场景是某 SaaS CRM 产品嵌入了衡石 BICRM 的用户登录后应自动获得 BI 中对应角色的权限。ISV 后端生成嵌入式 BI 的访问令牌时需要将租户 ID 映射到衡石的 App ID、将用户 ID 作为用户标识、将 CRM 中的角色映射到 BI 中的权限组、将数据权限范围如用户所属区域作为过滤条件并设置合理的令牌过期时间。权限操作在 CLI 中也非常灵活。可以查看权限矩阵按用户、角色、资源、访问级别展示可以通过用户组进行批量授权权限配置支持预演机制——先预览权限变更的影响确认后再正式执行。六、三种嵌入模式的租户视角在分析成果嵌入模式下ISV 产品直接嵌入衡石的单个仪表板或图表租户无感知。嵌入方式可以是单个仪表板的 iFrame 嵌入也可以是单个指标卡的轻量嵌入。在分析能力嵌入模式下允许租户在自己的空间内创建自定义仪表板。ISV 为租户开启自助分析能力后租户可以在自己的 App 空间内选择已授权数据集、拖拽创建新图表、组合自己的仪表板所有操作都在租户的隔离空间内。在深度集成定制模式下以衡石为分析底座ISV 完全定制前端交互通过 API 获取和创建租户的分析资产。七、资源调度与性能隔离不同等级的租户可以设置不同的查询优先级。VIP 租户可以设置为高优先级基础租户设置为低优先级确保高价值客户的分析任务优先执行。资源监控可以通过 CLI 查看各租户的 CPU 使用率、内存占比、每小时查询量和存储用量。通过这些数据ISV 可以及时发现资源瓶颈并进行动态调整。八、最佳实践总结ISV 集成 Checklist 包括租户创建自动化通过 CLI 或 API 脚本化避免手动创建、身份打通JWT Token 透传统一认证入口、数据隔离验证定期自动化测试验证跨租户数据不可见、资源监控部署租户资源使用仪表板实时告警、模板化初始化新租户自动注入默认仪表板和指标体系、优雅降级租户超配额时提示升级而非直接中断服务。常见坑与解法忘记设置行级权限——即使 App 是隔离的如果数据集指向的是共享数据库仍然需要在查询层设置行级权限。大租户的查询影响其他租户——通过查询队列优先级和 CPU 配额限制解决。模板更新后存量租户不同步——通过 CLI 脚本加定时任务实现模板版本管理。九、FAQQ1一个衡石平台最多支持多少租户取决于硬件资源和数据隔离方案。共享表方案可支持数千租户独立数据库方案受限于数据库连接数。Q2租户可以跨 App 共享数据吗默认不允许。如果确实需要如集团型企业的跨子公司数据汇总可通过专门的数据集成管道实现。Q3升级衡石版本会影响租户数据吗不会。衡石的版本升级只更新平台层App 内的数据和配置完全独立。结语衡石的多租户架构设计体现了一个核心理念「App 即租户」。通过将应用空间作为租户隔离的原子单元在数据隔离的严格性和资源利用的高效性之间找到了平衡点。对 ISV 厂商来说理解这一架构设计是高效集成衡石 BI 能力的基础。

相关新闻