京东物流:表格技术在物流行业的敏捷应用实践
“物流大促期间,在出库单量积压的场景下,不同仓的生产操作人员需要在统一数据源的基础上进行基于自身仓情况的个性化查询分析,从而能够实时监控客单情况,防止积压。要想实现这样的功能,对数据分析平台的要求就非常高。在引入SpreadJS之后,Udata平台可以为客户提供更高效的数据服务方案。”
——京东物流 数据平台部
京东物流是中国领先的综合物流解决方案提供商,隶属于京东集团。作为电商行业的龙头企业之一,京东物流拥有全球最大的自营物流网络,覆盖国内外超过300个城市。为了能够为客户提供更好地服务,京东物流致力于建设全球智能物流网络,其物流基础设施包括超过500个物流中心、数万辆专业车队和大量的自动化设备。同时,京东物流还与合作伙伴共享资源,通过开放平台模式吸纳第三方物流企业加入,形成全面布局、多层次的物流体系。与此同时,作为中国领先的技术驱动型供应链解决方案及物流服务商,京东物流以“技术驱动,全球高效流通和可持续发展”为使命,致力于成为全球最值得信赖的供应链基础设施服务商。
京东物流拥有非常庞大的组织架构和业务系统,在Udata平台诞生前,数据使用模式为一线人员先给研发提需求,然后研发再针对相应的需求整合数据开发相应的数据分析、查询看板。但是因为业务增长迅速和需求变更频繁的原因,往往需求上线后很快又会发生新的变更,而同时因为用户人员众多且每个人的需求诉求不一样,最后就导致开发的系统成为了一款单纯的下载工具,用户需要通过系统把数据下载到本地Excel之后再进行后续操作。
(Udata平台)
这种模式下的弊端也非常明显:通过系统的监控发现,每个月使用Excel的文件数达到百万的级别,从而带来下面的两个问题:
人力成本高: 一线人员需要花费大量的时间整合这些数据,导致工作效率降低。
数据安全性差: 线下Excel交互的方式会存在敏感数据泄露的风险,进而公司财产的损失的风险。
(业务背景)
除此之外,通过对业务的观察可以看出,用Excel做数仍然是数据使用人员目前非常主流的处理方式,中国式报表也是业务应用中常见的报表形式。中国式报具有其独特的特点:
1、受众多样化
报表中各个层次、各种角色的成员都是报表的使用者,不同角色的用户所关心的信息内容不同、样式不同、使用方式也不同。
2、报表样式复杂
中国式报表往往不追求图表式的直观可视化效果,而是体现信息的丰富度。因此在样式上使用了较多的数据透视、多层表头、不完全划分、分栏等,这些都导致了中国式报表样式的复杂。
3、数据计算复杂
通常情况下,报表的查询、分析条件都非常复杂,且存在复杂的统计运算、如Sumif函数、汇总、同比、环比、达成状态等。对于参数页面布局、参数控制类型等都有较高要求。
4、多数据源
中国式复杂报表的数据源往往比较分散,数据信息来自不同的业务系统,技术路线和数据结构都有很大的差异。
(中国式报表的特点及挑战)
正是因为以上特点才导致中国式复杂报表:
1、治理难度大
需要从数据源、数据指标体系两方面入手,且需要业务多层级联动共同拉齐数据认知。
2、研发资源消耗大
面向分析场景个性化程度高、不固化、不明确、研发侧支持有资源瓶颈。
3、大数据技术挑战大
大数据量、实时在线交互分析、系统执行复杂度不确定、响应时间和用户体验很难预判保证。
为了更好的解决上述问题,京东物流针对一线岗位进行了特定的调研,并基于此调研整合提出了一份解决方案。在实际使用之后,一线人员普遍反映了下面两个问题:
数据方面: 因为数据来源多且杂,使用者很难找到所需要的数据,系统也很难把所有需要的数据全部囊括进来。
易用性方面: 目前市面上常见的数据分析都是使用编程的方式,但是一线人员并不具备这种技术能力。
为了能够满足一线人员的使用体验(Excel),又能符合数据的获取需求,团队计划优化解决方案。考虑到自行开发这些功能的成本非常高,因此开始在市面上寻找一些可以与UData高度融合的表格技术控件。在挑选控件的时候,有三个核心需求是必须要覆盖的:
线下体验一致(高度类似Excel): 提升一线人员的使用体验。
扩展能力: 可以和企业的内部数据体系、办公系统等进行数据打通。
性能: 可以承受大数据量的压力测试。
基于以上三点,经过长时间的选型,最终选择了葡萄城的纯前端表格控件SpreadJS,并对解决方案架构进行了优化。
(京东物流选择SpreadJS的原因)
(解决方案架构)
在每年的618或双11大促中,往往会涉及大量的数据分析与展示需求。如果将几千万的数据全部放到Excel中直接进行分析显然是行不通的。这一点不管是使用任何的表格控件都是无法完成的。为了能够有效应对该场景下的需求,就需要将“大数据”与“表格”在技术层面上进行有效融合。借助“服务端透视”功能将数据的分析及处理转移到后端,并将经过筛选之后的数据与表格控件进行绑定,从而解决“大数据”与“表格”的融合问题。
(借助“服务端透视”功能解决大数据应用场景下表格控件的应用问题)
对大量数据的筛选与过滤是比较简单的应用场景,除此之外,Udata平台还会涉及到很多复杂数据分析的场景。在此场景下通常需要通过合并、过滤、字段设置等多种方法对数据进行预加工或预处理,将海量的数据转化到可以保证系统稳定处理的数据量区间,从而与表格控件进行结合,完成对数据的分析与展示需求。
(复杂数据分析下表格控件的融合实践)
协同主要分为报表协同、独立报表、数据推送和异常预警四部分:
报表协同: 支持按人、组织架构维度进行报表查看和编辑场景下的协同。
独立报表: 用户可在他人数据分析报表结果上简单操作快速裂变生成自身报表。
数据推送: 实现产品与京东内部OA办公体系(通讯软件、邮件)的自动化打通。
异常预警: 基于异常数据进行自动化预警消息触达做到事前防损。
SpreadJS能够提供单元格级别的操作颗粒度,通过二次开发可在前端解析Excel文档,满足多人协作、协同编辑、数据同步、版本管理、历史查询等多种应用需求。
(表格技术在协同场景下的应用)
SpreadJS的引入有效解决了业务端在表格应用方面的需求,但在实际使用的过程中又面临了新的挑战。一线人员的办公电脑配置普遍比较低,当数据量较大的时候就会导致报表打开的时间非常长。为了能够高效解决该问题,优化使用体验,团队又引入了葡萄城的另外一款产品——服务端文档组件GcExcel,它能够与SpreadJS无缝集成,提供一整套类Excel全栈解决方案。借助GcExcel,Udata平台可以把大量的计算操作转移到后端由服务器来进行操作,大大降低了前端的压力,有效提升系统性能。
(引入GcExcel进一步优化Udata平台的性能)
作为一款提供给一线人员使用的应用系统,Udata平台已经覆盖了内部4百多个业务岗位,日PV可以到达4万+,2023年的做数效率提升了25%。同时,对于一线人员分拣员而言,利用Udata平台实现做数时长下降37%,有效工作时长提升10%。
(系统带来的价值)
通过借助葡萄城的SpreadJS产品,我们成功解决了一线人员在使用过程中遇到的问题。SpreadJS的用户友好性和灵活性能够帮助使用者快速掌握其功能和操作,实现高效的数据处理和分析。这种平滑的过渡和与Excel高度类似的特点,极大地提升了一线人员的工作效率和用户体验。
未来我们还会在性能、稳定性和易用性三个方面上进行持续提升,深耕表格技术在数据领域的应用,提升编辑、展示等全链路性能。