电话咨询:15810120570
公司邮箱:hi@hengshi.com
北京市海淀区西小口路66号中关村东升科技园B-2楼A301室
上海市黄浦区延安东路550号海洋大厦29楼2903室
广东省深圳市光明区光源五路宝新科技园4栋707号
引言|为什么还会有公司选择自研 BI
对企业级工具类软件产品的工程量极大低估是绝大多数互联网公司的常见误区。
上图是衡石成立几个月后的产品界面,5 个工程师从零开始设计,经过大半年时间实现了可视化的 chart 图表库(基于 D3)、仪表盘拖拽式自助分析、数据源多源适配的接入、数据集管理、数据科学(基于 Spark 引擎)、数据应用模版方案等核心功能。
对多数启动自研 BI 的团队来说,他们会倾向于认为这是 BI 的全部,事实上这是 BI 的开始。这样的基本可视化能力,衡石把这个版本叫做 0.1 版本,这是一个成熟BI产品的原型,一个可演示 demo 的 prototype.
有条件的研发团队可能会从几人逐渐增长到几十人,开始搭建真正的企业级 BI 产品。从功能扩充开始,增加更多的数据源适配、数据加速引擎、数据模型能力、自研语义层、数据成果的发布和共享、嵌入集成和 SSO 打通等高级功能,在扩充分析功能的同时,为了满足一站式服务的整体要求,加入数据集成、数据准备、任务调度等数据工程的大多数能力,功能上整体翻了不止一倍,加上不可避免的代码重构重写、细节打磨优化、功能合并拆分和废弃、质量保证的自动化建设,需要的工程量再整体翻倍,最后由于处理性能问题、多租户隔离和并发应对的可扩展性,架构前后端都需要深度优化,工作量整体膨胀又不止一倍。
很多伙伴在和衡石合作过后,聊起来当初选择自研的时候预估了目标,在实现起来后会发现一开始很轻松,到后面就快速失控。这是因为这个目标实际需要的研发投入是预期的工作量 100 倍以上,即 10 个人月和 1000 个人月的区别。
大多数互联网应用,是重型架构加轻型应用,架构层面更多是高并发的服务可用性强保障设计,应用层面则更多是业务逻辑的平面展开和一定程度的纵向抽象,不会涉及太多对于分层抽象带来的复杂度控制。而现代化的 BI 是一个长处理栈,从业务数据到数据仓库,再到模型指标,最后仪表盘渲染发布。可以理解为从软件复杂度上已经超过一般的业务应用很多,还得外加上组织架构权限发布的精密设计,计算性能和可扩展性的架构优化,这是两个让工程量 x10 的增长因子。
一个接近成熟的 BI 软件工程量在数千人月,而采购成熟的 BI 工具成本通常约等于一个工程师,在没有经过充分论证下投入自研,既是对企业的研发成本不负责任也没有意义的浪费消耗,也会带来很高的失败风险和巨量的沉没成本等隐患。因此,在降本提效为主旋律的经济下行周期,不建议企业伙伴自研 BI 这种已经可被成熟产品支撑,又不是核心业务范围的重型功能。
HENGSHI SENSE 4.2 创新概述
Data Engine Friendly|让优秀的数据平台脱颖而出
百花齐放的底层数据引擎生态是大数据时代的产物,衡石构建的分析服务层承载着将算力充分下推发挥引擎优势的重任,因此我们高度关注在数据湖仓、高性能实时数仓、NoSQL 领域的最新进展,因为每一个优秀的数据引擎都在实现某种计算范式下的最优效率。
API 作为未来云端标配的数据获取方式,也需要衡石在分析云的场景充分承担 data hub 的角色。在 4.1 的架构中我们设计好了 API 类型数据源的通用抽象层,从 4.2 开始,衡石开始批量的添加越来越多的API数据源。得益于国内蓬勃发展的 SaaS 产品生态和行业内对于数据采用越来越规范的健康成长,客户能够通过安全的 token 和合规的方式获取自己的数据,这个版本我们加入了对一些电商 ERP 厂商的支持,也加入了针对企业微信、石墨文档等的适配连接能力。更加丰富的企业 SaaS 应用对应着更加丰富的数据环境,这对分析的普及是极大助推。
在 4.2 中衡石在业内率先实现了对 MongoDB 的原生语法支持,跳出了 BI Connect 的将就和制约,完成了从 HQL 到 NoSQL 的一次重大升级,紧跟上后面高级函数语法的进一步支持,衡石将提供针对 MongoDB 数据库最佳的分析体验。除此之外针对高性能引擎 Clickhouse、腾讯大数据引擎 TDS QL 和新一代云数仓 AtomData 都做了针对性的适配和优化。
Data Sciencist is back|数据科学家功能强势回归
在衡石的 1.2 版本中,我们通过集成 Spark 引擎实现了 Python、R 甚至是 Scala 的 Notebook 功能,后来由于 Spark 引擎在 BI 交互式分析场景中明显的不合适(也可以说是大材小用),我们去掉了这个引擎,也去掉了对数据科学的支持能力。随着越来越多的数据团队在机器学习的高级分析上更加重视,我们也跟随客户的趋势,在4.2版本里加回了对 Python 的 notebook 支持能力,现在数据科学家能够在衡石平台里自由地完成机器学习建模等高级分析工作。
对于大数据能力有意识的克制一直贯穿了我们的产品设计过程,考虑到衡石的创始团队背景是 Ad-tech 的大数据背景,这样的克制多少显得有些古怪。事实是,客户并不在意大数据。客户真正在意的是企业的数据如何有效的组织和管理,在数据分析层面如何给出清楚的业务决策,我们需要关注客户的需求本身,而不是技术的 fancy words。
We don't sell Photoshop here | 过度追求功能性会伤害体验
数据分析将从专业工作逐渐普及为基本工作,在衡石和众多 SaaS 伙伴形成的合作生态里,分析发生在明确的场景中和标准的数据接口内,这极大降低了分析的实施成本和门槛,这样的场景化嵌入式分析,能够真正让业务运营人员轻松的掌握,并且直接反应到业务的流程中。
基于这样的趋势判断,分析将更加倾向运营类型的灵活迭代工作,而不再是低频的汇报和展示类工作,因此,大屏、可视化设计的功能性需要克制和保守,而指标运营能力、模型的能力需要大大加强。对于交互式探索来说,易用性则是第一设计要素,不能够牺牲体验去追求功能性。在新版本中,加回了重力碰撞等经典交互方式,而不再单纯追求页面能够达到的设计高度,我们并不是在针对专业人士设计系统,这是对衡石广大受众的选择性判断决定的。
Collaboration is data culture|数据分析的协作本质上就是业务协作
开发数据分析的工具和做数据分析是完全不同的工作,这个差异大到近似于要求一个修建银行大厦的建筑工人必须要理解股票期货市场的交易原理。数据分析是一个完全业务层面的工作,甚至可以理解为这和技术或者功能层面没有任何关系,数据分析代表了企业的业务在量化层面如何诠释,以此还原真实的业务状况。作为提供分析工具的厂商,我们的任务只是让这个过程的成本足够低,但完成分析动作的是那些真正的业务专家。
基于数据的协作是这个版本里我们继续增强的重要类目,也将一直是衡石从 Day 1 开始坚持的重点。数据是业务的语言或者说数据就是业务,语言是为了团队的协作而生。基于数据的协作其实就是在更加精确的层面上进行业务协作,所谓的数据文化不仅是数字表格和汇报看板,更是基于数据的敏捷迭代和快速响应,我们鼓励企业客户建立清晰的指标视图,并基于此开展业务协作。
HENGSHI SENSE 4.2 亮点功能一览
HENGSHI SENSE 发布 4.2 版本。在数据连接、数据科学、数据可视化、应用管理等方面增加了很多亮点功能。下面让我们一起来了解这些新功能:
数据连接
数据科学
仪表盘展示
图表可视化增强
数据管理
应用管理
系统管理
数据连接
原生支持 MongoDB 非结构化数据源
以 MongoDB 为代表的新型数据库,不再局限于固定结构化的数据结构,以满足更加敏捷的业务需求,在市场上获得了很大的成功。典型的场景如游戏、物流、社交以及低代码平台,在 MongoDB 中不断沉淀高价值的数据,客户对其中的数据挖掘价值的需求也自然而然浮出水面。
之前大家对 MongoDB 的数据只能以 ETL 导入数据的方式将非结构化的数据处理成结构化的数据的方式来分析。或者使用第三方中间件来做 SQL 到 MQL (MongoDB 的原生查询语言) 的转换。常用的转换方式在早期的有 Postgresql 的 FDW,目前常用的是 MongoDB BI Connector。这些中间件能做的转换比较有限,大部分时候还是会将数据同步到本地内存来转换成结构化数据进行运算。
依托于 HQL 通用建模语义层的领先架构,HENGSHI SENSE 4.2 率先实现了将BI数据分析的建模指标直接转换成 MQL 查询的方式,利用 MongoDB 集群自身的可扩展计算能力,完成数据分析的原地计算。通过这个架构,减少数据的搬运、处理、加工的步骤,减少了数据分析的延时。能做到业务数据在 MongoDB 内部的实时分析。同时因为不需要额外部署第三方中间件,也简化了系统部署运维的复杂性和成本。
Clickhouse 物化视图
当系统的加速引擎为 Clickhouse 时,关联数据集导入引擎时可使用 Clickhouse 物化视图。该物化视图可实时更新数据集,不需要设置更新计划,提升了关联数据的查询性能。使用 Clickhouse 物化视图要求关联数据集的数据源必须是 Clickhouse,并且跟引擎在同一集群。
新增数据源
HENGSHI SENSE 不断地引入新的数据源,扩展数据源类型。4.2 新增腾讯分布式数据库 TDSQL、AtomData 数据源,并且在 API 数据源中对接了石墨、企业微信、旺店通、外勤365。
UDF 函数
HENGSHI SENSE 提供了扩展 HQL 的功能,用户可自定义 UDF 函数。UDF 函数与原生 HQL 函数在系统内的使用是完全相同的,可用于添加新列、指标、权限过滤等。用户可以添加数据库上的自定义函数到衡石系统中,把数据库管理员的成果普及给报表创作者。用户也可以把权限控制相关查询提取成一些函数,方便报表创作者设置权限。
此外, 4.2 对内置函数也进行了扩充,增加了 trim、split、regexp_extract、regexp_match、regexp_replace。
数据科学
新增对 Python 语言的支持
HENGSHI SENSE 数据科学模块支持使用 SQL 语言对数据集进行处理,但是 SQL 无法有效应对复杂计算、机器学习建模等场景,无法对数据进行深度挖掘和加工。为了解决这些问题,数据科学支持使用 Python 来编写和运行代码对数据进行处理,可以实现以下功能。
使用 Python 编写段落,并且可以与 SQL 编写的段落一起构建笔记。
提供内置封装的函数,高效获取指定的数据库连接。
默认支持 Pandas、SK-learn 等主流数据分析和机器学习库,其他库可由用户 DBA 自行安装扩展。
仪表盘展示
控件布局
4.1 在控件布局上推出了层叠布局模式,替代了原有平铺模式。层叠模式通过多图层叠放来实现控件相互嵌套的合成效果,常用于实现复杂场景的展示。对于仅使用简单展示场景的用户,平铺模式就能完全满足需求场景,层叠模式操作相对复杂。因此 4.2 又添加了平铺模式。
4.2 在控件布局中还添加了新模式——碰撞模式(又称重力模式)。该模式下控件在画布垂直方向上永远停放在最上方。移动控件时如果碰撞其他控件,则会占据其他控件的位置,将其他控件垂直向下挤压。碰撞模式比平铺模式在控件排列上更加灵活。
容器中的控件也支持上述三种布局,它与仪表盘可设置不同布局,实现同一仪表盘存在多种布局的情况,满足用户更多使用场景。
控件布局的三种模式可任意切换,层叠模式切换到平铺和碰撞模式时,图层将消失,所有控件平铺展开,无法回退,所以层叠模式向其他模式切换时,请谨慎使用。
容器分屏展示
容器编辑页面呈现的图表展示效果与在仪表盘中呈现效果不同,所以使用容器时往往需要在编辑页面和展示页面之间反复切换、不断调试以达到理想的展示效果。4.2 增加容器分屏展示入口,在编辑容器时屏幕左侧是仪表盘展示页面,实时呈现容器编辑结果,提升容器编辑效率。
容器支持设置页面版式
4.2 容器支持设置页面版式,可单独设置容器的画布模式及在仪表盘中嵌入效果,脱离了仪表盘页面版式的控制,使容器展示更加灵活。
自适应容器页面在仪表盘中展示时会自适应仪表盘中容器控件大小。
固定尺寸容器页面在仪表盘展示效果与页面嵌入、预览时设置的缩放模式有关。
移动端缩放展示
4.2 优化移动端仪表盘展示效果, 用户可通过双指对页面进行放大或缩小,最大可将页面放大4倍。
图表可视化增强
图表增加度量详情
用户使用指标作图时想要了解指标的业务含义,但是指标在定义时仅定义了指标公式,没有记录其相关含义。4.2 增加了指标描述和业务含义,并且在图表的度量详情中进行展示,方便用户查看和了解指标。
复用数据集中字段展示格式
在数据集管理中可以对字段设置展示格式,但是使用字段创建图表时相关展示格式无法带入图表中,需要用户重新对字段进行设置。4.2 在这方面进行优化,支持图表复用数据集中字段展示格式,减少重复配置工作。当字段经过计算与原有数据的语义不兼容时,用户不能复用数据集中字段的展示格式,需要重新设置。
县级行政区地图精准匹配
地图展示某一个市的县级行政区时,如果与其他市的县级行政区有同名情况,则无法匹配到具体的地理位置,会将所有同名的县级行政区都展示出来,展示的地图不符合用户预期。4.2 对此进行了优化,在地理角色转换时,将县级行政区与其省、市进行关联,使县级行政区名称唯一,能够准确匹配地理位置,进行地图展示。
容器标签多样化展示
原有容器页面的标签仅支持在顶部展示,形式单一。4.2 进行了优化,支持将标签放在容器顶部、左侧,并增加多种排列方式,丰富标签展示样式,满足更多展示场景。此外,还增加了下拉框样式,当容器标签较多时,节省展示空间, 方便预览和查找。
仪表图样式增强
4.2 将控件中的仪表盘更名为仪表图,避免与仪表盘概念冲突,并且对仪表图样式进行优化,改变其单一展示样式,增加多种展示模板,支持对仪表图的角度、指针、中心指标、刻度等进行样式设置。
富文本代码编写方式优化
富文本控件支持编写代码动态获取数据信息。4.2 之前使用符号“<>”作为代码段的起止标识,但是当代码段中有关系运算符“>“或“<“ 时,会出现解析错误的情况。4.2 使用代码块代替代码段的起止标识符,避免解析错误,同时提升了代码可读性。
表格序号支持设置字段样式
表格序号优化,支持对序号进行字段样式设置,使表格整体展示一致、和谐美观。表格序号的作用是表示信息展示顺序,不具有实际业务意义,所以不能作为条件格式的依据字段。
表格条件格式优化
优化表格条件格式,在条件规则为最大/最小原则中增加按百分比选择条件,用户使用更加灵活。
表格导出数据保留数据类型
表格数据导出后,用户可能需要进行二次计算,所以 4.2 对导出数据进行优化,保留数据类型,方便后续计算。
环形柱状图图例优化
调整环形柱状图的图例展示顺序,使之与环形图环展示顺序一致, 方便用户查看、对比数据。
数据管理
权限模式适配不同级别的数据
数据通常携带不同的安全级别,使其面向不同使用对象,如安全级别高的数据,只能给固定人员分享查看,安全级别低的数据如内部公开的数据则可以给全体成员展示。4.2 根据数据的安全级别不同,增加了严格权限模式和非严格权限模式。
严格权限模式适用于安全级别高的数据, 要求所有用户必须拥有该数据的权限才能查看和使用数据。
非严格权限模式适用于安全级别低的数据,使用这些数据的应用或数据包可以将其展示给无数据权限的用户查看和使用。
跨应用复制数据集
4.2 提升了数据集使用的灵活度,支持跨应用、跨数据包复制数据集, 方便数据分析整理,提升分析效率。目前仅支持对本地文件、数据连接、SQL 查询三种基础数据集进行跨应用复制。其他类型的数据集、数据模型、参数、指标等不支持复制。复制方法有以下两种:
在源应用中将数据集复制到目标应用中。
在目标应用中导入源应用中的数据集,可导入多个。
默认数据集
在仪表盘中搭建图表选择数据集时,会自动展示该应用中第一个数据集,但第一个数据集不一定是常用的数据集,用户每做一个图表都需要重新选择数据集。4.2 增加了默认数据集功能,用户根据实际情况设置做图时默认数据集,减少做图时切换和查找数据集操作。
数据集替换允许字段缺失
数据集替换过程会严格检查所有被使用的字段,要求新的数据集中必须包含这些字段,否则替换失败。但是对于某些连续数据采集情况,可能某一时间段没有收集到该类型的数据,如公司报销统计报表中,九月份没有差旅费和住宿费。在展示九月份报销统计时,因字段缺失,无法通过替换数据集展示。基于这种情况 4.2 放宽了替换检查条件,允许新的数据集在替换时缺失原有数据集已使用的字段,并对这些字段使用NULL值填充,替换结果需要用户确认才能生效。
新增字段用途
数据集中的字段在分析时既可用作维度,也可用作度量。在实际场景中某些字段不适合用于维度,如用户数,用户留存率等,这些字段分类较多,作维度没有实际意义还会导致系统运行慢,所以限制其只能用于度量。而有些字段又只能用于维度,不适合做度量。
4.2 增加了字段用途,可将字段设置为通用、维度、度量三种用途。通用表示字段可用于维度或度量。维度和度量表示字段只能定向使用, 并且在作图时字段右侧会出现标识,方便区分,减少终端业务人员的误用。
解析英文日期字段
当月份字段使用英文文本类型展示时,需要手动排序才能使其按照月份顺序进行展示。4.2 对此进行了优化,支持对英文类型的月份进行日期格式转换,通过指定格式MMMM、MMM、MMM.将英文月份转成日期类型,实现自动按月排序。
参数增加时间粒度
4.2 参数优化,在日期、时间类型中增加时间粒度概念,以适用更多的业务场景。参数控件等参数相关的使用场景都支持使用时间粒度。时间粒度可分为年、季度、月、周、天、时、分、秒,用户使用时选择贴合业务场景的时间粒度,方便理解和分析。
应用管理
快捷的批量操作
在应用较多的情况下, 对应用进行迁移、归类整理、回收等操作时,需要重复地操作每一个应用,非常耗时。基于此,4.2 推出了批量操作功能,可以同时选中多个应用, 一键完成相关操作,提升了系统页面交互效率。 批量操作功能首次上线,支持批量导出应用模板、移动和删除应用,后续会增加更多批量操作。
确定被协作者操作范围
我的创作是个人的工作区,属于私密空间,空间中的应用只对用户可见,由用户管理。当应用需要团队其他成员的协助时,可以将应用通过协作方式由其他用户进行编辑。4.1 中被协作者除了编辑应用,还可以对应用进行移动和删除等管理工作,相当于操作了用户的个人空间的资源。因此,4.2 重新确定被协作者操作范围,明确协作只是协助编辑应用,去除移动和删除等资源管理操作,保护我的创作空间的私密属性。
指标预警增强
4.1 增加了指标预警功能,监控应用中图表的指标。4.2 对该功能进一步完善,增加预警任务异常处理,当指标预警任务因数据库服务、邮件服务、网络等原因异常时,可以重新发起任务或者暂停任务。异常处理包括:
任务失败重试策略,可设置重试时间、重试次数。
任务失败暂停策略,可设置任务连续失败次数及任务暂停后是否通知用户。
导出模板增加导出权限配置
应用可以通过模板快速生成新的应用,大大提升了应用的创建效率。模板中不包含用户相关的权限配置内容,需要在新应用中重新配置。当从测试环境批量迁移应用到同样配置的生产环境时,需要在生产环境再重新配置一遍权限,工作量巨大。4.2 为了适配这种场景,在导出模板时增加权限配置选项,新的应用创建后包含原有应用的权限配置内容。
导出权限配置项仅对应用管理者可见。
导出权限配置项包括应用的管理权限及应用设置的数据权限。
模板导入时,支持选择是否导入权限配置,当导入的系统中无法找到可匹配的用户对象,则在导入时保留授权规则,丢弃授权对象。将团队空间导出的应用模板导入到我的创作空间时,“管理者”、“租户使用者”权限将被丢弃。
公开链接增加密码
使用公开链接分享应用时,为了保障数据安全,需要登录衡石账号才能查看图表,对于没有衡石账号的用户,则无法查看。4.2 中公开链接增加了密码访问功能,用户需要输入密码才能访问公开链接,在保障数据安全的同时,方便更多用户查看。
系统管理
用户属性支持设置多值
用户属性代表用户的特征,往往一个属性会有多个特征值,如销售大区会包含华北、华东、华南等地区,4.1 中仅任意类型的用户属性支持设置多值,文本、时间等类型的用户属性不支持设置多值。4.2 将该功能进行扩展,所有类型的用户属性都可设置多值,更贴合用户场景。用户属性多值中支持设置NULL值和空值。
用户信息展示页面优化
系统管理员编辑某一用户属性信息时,编辑页面将用户基础信息、用户组及用户属性全部进行展示信息,展示内容多,用户不便于修改。4.2 对用户信息相关内容进行优化,将用户信息按版块展示,内容清晰,每个版块支持独立编辑,每条属性也可独立编辑,方便对用户信息查找及修改。
API 资源转移
4.2 增加API资源转移功能,当团队成员发生变化时,可以将 API 或 API 组转移到其他人名下。所有转移资源都保留原名,如遇到重名时,转移后的资源名称后缀增加数字序号。
软件授权优化
软件授权中请求码和授权码过长,操作不方便、容易出错,优化为文件方式进行更新授权。
结语
华林霜叶红霞晚,伊水晴光碧玉秋。
HENGSHI SENSE 4.2 在数据分析领域再添新景,原生 MongoDB 非结构化数据源、数据科学使用 Python 进行复杂计算、数据集跨应用灵活使用、可视化仪表盘支持多种布局、系统交互批量操作提升效率,每个功能都是对原有功能的突破、创新,欢迎来试用。
青青四墙下,已复生满地。
HENGSHI SENSE 4.3 已经孵化,在衡石人精心培育下定会在数据分析领域创造更多精彩,敬请期待!
感谢您持续关注衡石!
电话咨询:15810120570
公司邮箱:hi@hengshi.com
北京市海淀区西小口路66号中关村东升科技园B-2楼A301室
上海市黄浦区延安东路550号海洋大厦29楼2903室
广东省深圳市光明区光源五路宝新科技园4栋707号
扫码关注