首页 / 资讯中心 / 文章详情

企业级BI架构演进:集团化场景下的安全可控之道

企业级BI架构演进:集团化场景下的安全可控之道 ★ FEATURED ARTICLE
企业级BI这些年被聊得很多但真正让人头疼的从来不是做一张报表有多快而是当你的客户变成了一个拥有几十家子公司、上万名用户、业务横跨多个事业群的集团客户时那套曾经用得挺顺的BI平台是怎么一步步被逼到墙角的。衡石科技做企业级BI的方式给了我不少启发。它没有去卷图表好看不好看这种表层功夫而是把底层的架构逻辑重新梳理了一遍核心就落在两个字上安全、可控。说白了一个能扛住集团化数据需求的BI平台拼的不是前端可视化组件的数量而是它敢不敢把权限隔离、资源管控、集成交付这些脏活累活真正做扎实。这篇内容我想从架构演进的角度拆一拆衡石的做法也聊聊我对企业级BI底层逻辑的一些理解希望能给正在选型或做BI架构规划的朋友一些参考。1. 企业级BI的架构演进集团化场景到底改变了什么1.1 集团化数据需求的核心痛点先说一个我这些年观察到的现象。很多企业一开始用BI场景很简单——业务部门要几张销售报表IT部门拉个数据仓库接上BI工具就完事了。但一旦企业长成集团的形态事情就完全变了。集团化意味着什么第一组织架构是多层的可能有集团总部、事业部、区域公司、分子公司每一层都有自己的管理边界第二数据是分散的各子公司可能用了完全不同的ERP、CRM、业务系统数据库类型五花八门第三用户是海量的不是几十个分析师在用而是几千甚至上万的业务人员、管理人员要同时访问第四合规要求是刚性的不同子公司之间的数据必须严格隔离谁该看什么、不该看什么一点都不能含糊。这四点叠加在一起对BI平台的要求就从能出报表变成了作为一个企业级基础设施来运行。衡石的架构设计本质上就是在回答一个问题当BI被放进集团化这个真实的组织环境里怎么保证它不乱、不泄露、不崩、还能灵活扩展。1.2 传统BI架构的三大瓶颈把传统BI放到集团化场景里跑一遍你会很快发现三个绕不过去的坎。第一个是权限模型的僵化。传统的权限设计通常是角色-菜单级别的也就是说一个用户登录进来能看到哪些菜单进入哪些报表权限控制基本就到此为止了。但在集团化场景里光控制到能不能看这张报表远远不够。举个例子一个区域销售总监和另一个区域销售总监看的可能是同一张销售看板但各自只能看到自己区域的数据。这就意味着权限必须下沉到行这个粒度甚至要控制到列——某些敏感字段比如毛利率、客户名单对低级别用户直接隐藏。传统架构在这里要么做不了要么实现得极其别扭最后只能靠每个区域单独建一套报表这种粗暴手段报表数量爆炸式增长维护成本高到离谱。第二个是计算与存储的耦合过深。老一代BI架构喜欢把数据抽取到自己的内存库里再做加速这在数据量小的时候没问题但到集团这个级别每天要同步几百张表、几十亿行数据同步链路长、时效性差而且一旦业务系统数据结构变更整套抽取流程就要跟着调整。更重要的是很多集团对数据安全有硬性要求——核心财务数据不允许出业务系统所在的环境你怎么可能把数据随便抽取到一个第三方平台里这就是传统BI在集团客户面前经常折戟沉沙的原因。第三个是扩展能力的缺失。集团化企业的IT环境往往是长期演进出来的有老系统、有新系统、有云上的、有私有化机房的还可能有并购进来的异构系统。传统BI的接口能力通常很弱想把它嵌入到已有的OA、ERP、企业微信、钉钉里面往往要大动干戈。而真正的企业级BI必须具备被集成的能力像积木一样能嵌到任何需要数据的地方去。1.3 衡石为什么选择平台化嵌入式这条路线理解了上面三个瓶颈你就能明白衡石科技为什么坚持做平台化嵌入式BI这个方向了。所谓平台化是说衡石BI不是一个孤立的报表工具而是把自己定义成一个数据应用的基础平台。它向上提供可视化分析能力向下对接各种数据源中间留出充分的API和扩展机制让企业可以在它上面构建自己的数据应用。这个定位本身就是为了应对集团化场景的复杂性和长期演进的诉求。所谓嵌入式就更有意思了。衡石显然看得很清楚——在集团化企业里用户不会愿意每天上班打开一个独立的BI系统他们会更希望数据分析直接出现在自己每天都在用的业务界面里。采购经理在ERP里点开一个供应商页面旁边就嵌着一个供应商绩效分析组件销售总监在企业微信里收到一条预警消息点进去就直接是可视化看板。衡石的嵌入式路线做的就是把BI从一个系统变成一组可调用的数据能力被集成到各种业务场景里去。这条路线的好处在于BI不用再跟业务系统抢用户入口而是成为业务系统内在的一部分——这对集团化企业的落地来说价值是实实在在的。2. 安全与可控衡石架构的关键设计拆解2.1 安全与可控衡石架构的关键设计拆解2.1 控制层从角色权限到多维数据权限体系聊安全架构就得先聊权限。这是我判断一个BI平台是不是企业级最直接的观察点。衡石的权限体系不是简单的一张角色-功能映射表而是把权限拆成了多个维度来协同控制。第一个维度是功能权限解决你能用什么功能第二个维度是数据权限解决你能看到哪些数据第三个维度是行级权限解决同一张报表里你只能看属于自己的那部分行第四个维度是列级权限解决即便行数据你能看但某些敏感列对你依然不可见。举个例子。某集团有华东、华南、华北三个大区每个大区下面又有多个城市子公司。集团的CFO需要看到全国所有子公司的经营数据但华南大区的总经理只需要看到华南大区范围内的数据而某个城市子公司负责人更是只能看自己这一亩三分地的数据。在衡石的架构里这些规则是通过数据权限模型来统一配置的。系统在运行时会根据当前登录用户的属性动态给查询语句追加过滤条件。这个过程的底层逻辑类似查询改写——你写的SQL是SELECT * FROM sales但真正执行的时候系统会把它改写成SELECT * FROM sales WHERE regionsouth AND city IN (shenzhen,guangzhou)。这种设计的精妙之处在于权限控制不是靠复制报表来实现的而是靠统一模型 动态过滤来实现的。数据模型只需要维护一份任何一张报表、任何一个用户打开它系统自动根据他的数据权限范围来裁剪结果集。这样一来无论集团的组织架构怎么调整、人员怎么变动都不需要把报表重新做一遍只需要调整权限规则的绑定关系即可。从架构层面讲这一层就是整个权限体系的控制大脑。2.2 计算层联邦查询与资源管控的平衡集团化企业还有一个让BI架构师特别头疼的问题——数据源太多、太杂而且很多不能动。有的业务系统在Oracle上有的在MySQL上有的在Hadoop集群里还有的可能在云数据仓库比如Snowflake、MaxCompute上。传统做法是把这些数据都同步到一个集中的数仓里然后再做分析。但前面提到了很多集团出于安全合规考虑根本不允许核心数据被拷贝出来。怎么办联邦查询Federated Query就成了必然选择。衡石的架构允许在一个数据模型里同时对接多个数据源。假设你要分析订单完成率订单明细在业务系统的MySQL里而物流数据在另一个PostgreSQL里衡石可以构建一个跨数据源的逻辑模型在实际查询时分别下推SQL到对应数据源、拿到部分结果后再在内存里做关联和聚合。它底层做了查询优化不是简单地把数据全捞出来再算而是尽可能地下推——把过滤、聚合这些计算尽量推给源数据库去执行只有必须合并的中间结果才在BI引擎里处理。这样既绕开了数据必须抽取到中央的安全红线又能给用户提供一个统一、无感的查询体验。当然联邦查询也有代价。当多个数据源同时响应一个查询时最慢的那个源决定了整个查询的耗时。为了缓解这个问题衡石在架构里引入了缓存策略和资源管控机制。高频查询的结果会被缓存下来后续同样的请求直接命中缓存不必再奔波于各个数据源之间同时针对集团里大量用户同时在线的情况系统会对查询任务的优先级、资源占用做队列调度避免少数几个大查询把整个系统的资源耗尽。这套机制说白了就是给可控二字做了一个落地注解——数据分析不再是谁想查就查而是按规则、按资源、按优先级来统一治理。2.3 集成层API化交付与租户隔离机制我特别想强调的一点是衡石把可集成性当成了一等公民来设计。它开放了完整的API体系包括数据模型的元数据API、报表的渲染API、权限的校验API还有事件回调API。这意味着什么意味着衡石BI的能力可以被拆成一个个细粒度的服务嵌入到任何第三方系统里。做一个场景推演。一家集团客户有一个自研的OA系统里面集成了流程审批、预算管理、项目信息管理等模块。现在他们希望在每个项目的详情页里放一个项目健康度分析卡片展示项目的成本、进度、风险指标。在衡石的架构下这个需求可以这样实现——开发人员在衡石里做好数据模型和分析卡片通过API在OA前端页面嵌入对应的可视化组件而访问权限是实时校验的某个用户打开OA项目页面时衡石后端会通过权限校验API确认该用户是否有权看到这个项目的分析数据再决定是否渲染、渲染哪些数据。整个过程对终端用户来说毫无感知他们就是在自己的OA里多了一个分析模块而已。另外集团化还有一个高频场景一个集团下面多个子公司各自有自己的品牌、自己的用户体系、自己的数据边界。这时候多租户隔离就非常关键了。衡石支持在同一个平台实例上划分出多个独立的租户空间每个租户有自己的数据源连接、数据集、报表资产和用户管理租户之间在数据层面完全隔离。这和云上SaaS的多租户架构理念是一脉相承的——对一些集团管总、子集团管建、子公司管用的大型企业来说这套机制让BI平台能够作为一个共享基础设施统一运维、统一安全管控同时在逻辑上又保持各业务单元的独立性。3. 集团化落地实操部署形态、权限建模与联邦配置3.1 部署形态怎么选私有化、混合云还是SaaS真正在企业里落过地的人都清楚架构设计再完美部署形态选错了照样白搭。衡石的部署支持给了集团客户很大的灵活性这里我根据自己的经验梳理一下三种形态的适用场景。私有化部署是很多集团客户的首选。原因很现实——数据安全合规要求。比如金融、能源、政务类的集团监管明确要求核心数据必须存储在自有机房或私有云环境里BI平台作为数据消费端自然也必须跟着走。私有化部署的架构重点在于高可用和水平扩展。衡石支持多节点部署应用节点无状态化后可以横向扩容底层可以对接企业的容器平台或者虚拟机集群。如果你所在的集团IT能力比较强这个形态是可控性最高的。混合云部署则更灵活。一些集团的数据既有私有化机房的也有公有云上的希望BI平台能够统一纳管这些数据源但平台本身部署在私有化环境里。这种形态在架构上会多一个网络打通的步骤需要确保BI平台能够安全地访问到云上的数据源。这里我的建议是优先走云厂商的内网连接通道尽量避免把数据库直接暴露到公网。衡石本身是支持对接各类主流云数仓的在数据连接配置时把网络链路设计好稳定性基本不成问题。纯SaaS形态适合那些IT资源有限、希望快速上线的中型集团或集团下属的创新业务板块。你完全不用关心服务器和运维开箱即用。但选这个形态时务必跟服务商明确数据存储地域、备份策略、安全合规认证这些问题。我的观点是不管选哪种形态架构本身都应该是同一套衡石这一点做得比较聪明——它在私有化和SaaS两种环境里跑的是一套代码内核这样集团可以先在SaaS上做POC验证再平滑切换到私有化部署避免小样一个样、上线又一个样的尴尬。3.2 数据连接与联邦查询的配置要点和验证方法搭建集团级别的数据连接核心原则是先理后连——先梳理清楚数据资产的分布再动手配连接。我建议你在配置衡石的数据源之前先画一张数据地图把每个业务系统的库类型、版本、所在网络环境、数据规模、更新频率都列出来。这个动作看起来简单但能帮你省掉后面80%的排障时间。接下来是具体配置。衡石的数据源管理支持JDBC、API等多种连接方式以最常见的JDBC为例你需要准备这些信息数据库地址、端口、服务名/库名、认证方式用户名密码还是证书、连接参数。对于集团化场景我特别推荐开启连接池和读写超时配置因为集团级的数据源通常负载很高如果BI平台的连接池配置过小高峰期很容易把源库的连接数打满影响业务系统自身的稳定性。联邦查询的配置需要多一点耐心。我第一次配置跨源关联时就踩过一个数据量大到内存崩的坑——我把一个千万级的订单表和另一个百万级的用户表做了联邦关联结果BI平台的内存直接被打满。后来我才意识到联邦查询最忌讳两个大表全量关联正确姿势是先在各个源里做好充分的过滤和预聚合再让平台只处理缩小的结果集。换句话说能用SQL在源库解决的过滤条件绝对不要拖到BI引擎里来处理。越复杂的联邦任务越需要你用下推优先的思路去优化。配置完之后不要急着做报表先把每一对数据源的单表查询、跨源关联、权限过滤这三个层次的查询都验证一遍确认结果集和预期数据一致。这个验证过程最好让懂业务的人参与因为很多时候数据对不对不是技术问题而是业务口径问题——同一张销售额表财务部和销售部算出来的数可能不一样而这种问题纯技术人员自己测是测不出来的。3.3 权限体系建模与组织架构对齐的步骤权限体系建模是我在落地过程中最看重的一环因为它直接关系到安全这个底线。我在实操中遵循的步骤是这样的第一步梳理组织架构和用户来源。集团有哪几级组织每个层级的管理者是谁用户从哪个身份源同步企业微信、钉钉、LDAP、自研账号系统这一步是为了确定用户体系的唯一主数据源。衡石支持对接企业现有的身份管理系统做单点登录集成我的建议是必须走SSO而不是给用户在BI平台里单独开账号——否则你会发现光养账号这件事就能耗掉IT团队大量精力而且离职员工的账号清理不及时会成为安全漏洞。第二步分析数据权限的维度。权限维度通常与业务维度高度重合——区域、产品线、品牌、渠道、项目、部门这些都是常见的行级权限维度。你要做的是把这些维度梳理清楚并明确每个用户或用户组在这些维度上的取值边界。第三步在衡石中落地权限模型。衡石支持通过用户属性映射、权限规则配置等方式来实现行级数据权限过滤。实操上我通常会把用户-维度值的映射关系维护在一个单独的权限明细表里然后让衡石在查询时自动关联这张表。比如建一个user_region_mapping表字段包括user_id和allowed_region然后在衡石的数据模型层定义行级权限把它绑定到业务表上。这样以后人员调动只要更新映射表权限就会自动生效完全不用动报表。第四步测试与审计。配置完权限后要用不同权限的测试账号逐一验证——让A区域的人看看能不能查到B区域的数据让没有某列权限的人看看该列是否真的不可见。衡石还提供审计日志记录了谁在什么时候访问了哪张报表、执行了什么查询。集团安全部门通常很需要这个建议从一开始就把日志接入统一的日志管理平台而不是停留在BI平台自己保存一份的程度。4. 以真实经验收尾架构演进中的避坑与心得其实这篇文章写到这里主体内容已经完了。但工程经验这东西不写点踩坑记录总觉得少了点什么。我就把这几年来在各类企业级BI项目中沉淀下来的几个教训当成一个附赠的短章节分享给准备上手的朋友。4.1 别把功能强大等同于架构先进选型时我见过不少团队一看到功能列表特别长就开始兴奋但真正上线后发现80%的高级功能根本用不上而他们的核心痛点——权限管控、并发性能、业务集成的灵活性——反而没被真正解决。衡石这类平台给我的感觉是它在架构层面上的东西大家不太容易一眼看到反而是那些看不见的设计在关键时候撑住了场面。我的建议是先列出集团真实的业务场景清单然后针对性做POC验证再决定架构是否匹配先看要件对不对不要太早纠结于功能清单的虚荣指标。4.2 集团化项目的实施节奏要小步快走不要试图在第一个上线版本就把全集团所有数据源、所有报表一次性接完。我踩过的坑告诉我这种大拆大建的方式十有八九会延期、超预算、消耗团队信心。正确的节奏是挑一个业务需求最迫切、数据基础相对好的子公司或者事业部先跑通跑出样板、沉淀模板再逐步推广到其他单位。这个方法在衡石这套架构下尤其适用因为它的模型、权限、API都是配置化和模板化的试点阶段的成果可以很方便地复制到后续推广中去。4.3 权限体系要多花时间设计这钱花得值如果让我在集团化BI项目中只能优先做好一件事那一定是权限体系。因为一旦上线后权限模型要调整后面所有报表、看板可能都要跟着动而如果权限出了问题比如数据越权访问了那不只是技术事故更是合规事故、信任事故。所以我把权限建模看作整个架构里优先级最高的事项。宁可前期多花两周时间把组织架构、数据边界、用户映射搞清楚也不要用先上生产再说的心态来对待这件事。阿里的中台理念和衡石的安全、可控内核在这件事上的结论惊人一致——权限不是报表的附属品它是企业级BI的基石。架构这件事永远是选择比努力更重要。衡石科技的BI架构之所以能应对集团化的复杂数据需求根源在于它一开始就把安全、可控当成了核心约束条件来设计而不是事后打补丁。对于正在选型的企业来说不妨带着这个视角去审视每一个候选平台——不要只问它能做哪些图表要问它如何控制谁能看到什么数据如何在不同子单位之间保持隔离又不牺牲灵活性如何把分析能力无缝嵌进我们已有的业务系统。这三个问题的答案往往才是区分能用和真正企业级的分水岭。
阅读完成 · 觉得有帮助?
咨询建站