京东物流:表格技术在物流行业的敏捷应用实践

“物流大促期间,在出库单量积压的场景下,不同仓的生产操作人员需要在统一数据源的基础上进行基于自身仓情况的个性化查询分析,从而能够实时监控客单情况,防止积压。要想实现这样的功能,对数据分析平台的要求就非常高。在引入SpreadJS之后,Udata平台可以为客户提供更高效的数据服务方案。”

​ ——京东物流 数据平台部

公司介绍

京东物流是中国领先的综合物流解决方案提供商,隶属于京东集团。作为电商行业的龙头企业之一,京东物流拥有全球最大的自营物流网络,覆盖国内外超过300个城市。为了能够为客户提供更好地服务,京东物流致力于建设全球智能物流网络,其物流基础设施包括超过500个物流中心、数万辆专业车队和大量的自动化设备。同时,京东物流还与合作伙伴共享资源,通过开放平台模式吸纳第三方物流企业加入,形成全面布局、多层次的物流体系。与此同时,作为中国领先的技术驱动型供应链解决方案及物流服务商,京东物流以“技术驱动,全球高效流通和可持续发展”为使命,致力于成为全球最值得信赖的供应链基础设施服务商。

以下内容来源于京东物流数据平台部研发副总监 贺思远先生在2024葡萄城”赋能开发者“高峰论坛的主题演讲,分享了葡萄城表格控件产品SpreadJS及服务端文档组件GcExcel在京东物流中的应用实践。

以下内容来源于京东物流数据平台部研发副总监 贺思远先生在2024葡萄城”赋能开发者“高峰论坛的主题演讲,分享了葡萄城表格控件产品SpreadJS及服务端文档组件GcExcel在京东物流中的应用实践。

业务背景及挑战

京东物流拥有非常庞大的组织架构和业务系统,在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高度类似的特点,极大地提升了一线人员的工作效率和用户体验。

未来我们还会在性能、稳定性和易用性三个方面上进行持续提升,深耕表格技术在数据领域的应用,提升编辑、展示等全链路性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/601654.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过 Java 操作 redis -- 基本通用命令

目录 使用 String 类型的 get 和 set 方法 使用通用命令 exists ,del 使用通用命令 keys 使用通用命令 expire,ttl 使用通用命令 type 要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis 关…

深入探索van Emde Boas树:原理、操作与C语言实现

van Emde Boas (vEB) 树是一种高效的数据结构,用于处理整数集合。它是由荷兰计算机科学家Jan van Emde Boas在1977年提出的。vEB树在处理整数集合的查找、插入、删除和迭代操作时,能够以接近最优的时间复杂度运行。vEB树特别适合于那些元素数量在某个较小…

CSS引用

CSS定义 层叠样式表:(Cascading Style Sheets,缩写为css),是一种样式表语言,用来描述HTML文档的呈现(美化内容) 书写位置:title标签下方添加style双标签,style标签里写入CSS代码 在s…

Spring Security 入门1

1. 概述 基本上,在所有的开发的系统中,都必须做认证(authentication)和授权(authorization),以保证系统的安全性。 authentication [ɔ,θɛntɪ’keʃən] 认证 authorization [,ɔθərɪ’zeʃən] 授权 以论坛举例子: 【认证…

Covalent引入五个新网络运营商,提升去中心化特性和数据安全性

为了进一步扩大运营商基础以并践行去中心化网络基础设施的宗旨,Covalent Network(CQT)在网络中引入了五个新的区块样本生产者(BSPs)角色。该举措不仅重申了 Covalent Network(CQT)对社区驱动协议…

Dynamics 365入门:轻松创建您的首个应用

大家好,我是嘻嘻一个从事软件开发的老兵,需要交流可以加VX:lilinsans_weixin, 今天接上篇: 注册 Dynamics 365后,如果创建自己的第一个应用 注册完试用版可以以试用30天。今天我就分享一下如何创建第一个应用 1、Dynamics 36…

##08 数据加载与预处理:PyTorch的心脏

文章目录 前言深入理解torch.utils.data数据集(Dataset)数据加载器(DataLoader) 实战演练:创建自定义数据集数据转换(Transform)数据加载总结 前言 在深度学习的宇宙中,数据是燃料,模型是发动机。而在PyTorch的世界中,torch.util…

制作微信小程序的常见问题,2024新手小白入门必看

在当今高度数字化的世界,移动应用已经在日常生活和工作中不可或缺。在众多的应用程序中,有一个平台在中国市场上脱颖而出,占有绝对的一席之地——微信。 虽然被称为世界上最流行的消息和社交媒体平台之一,但微信提供了一个让其能…

计算机网络5——运输层1概述与UDP

文章目录 一、协议概述1、进程之间通信2、运输层的两个主要协议3、运输层的端口1)服务器端使用的端口号2)客户端使用的端口号 二、用户数据报协议 UDP1、UDP 概述2、案例分析3、UDP的首部格式 一、协议概述 1、进程之间通信 从通信和信息处理的角度看&…

邮件群发还能用吗

邮件群发仍然可以使用。不过,在进行邮件群发时,可能会遇到一些问题,如选择合适的邮件群发软件、应对垃圾邮件过滤器的挑战、管理收件人列表、邮件内容的个性化和定制、邮件投递的时间管理以及避免被列入黑名单等。 为了优化邮件群发的效果&a…

微信小程序知识点归纳(一)

前言:适用于有一定基础的前端开发同学,完成从网页开发到小程序开发的知识转换。 先立框架,后砌墙壁 回顾:了解微信小程序开发流程-CSDN博客 初始页面结构,三部分pages、utils、配置,分别存放页面、工具类…

图形渲染在AI去衣技术中的奇妙之旅

在这个数字化飞速发展的时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。它像一位神秘的魔法师,以其不可思议的力量改变着我们的世界。今天,我要和大家探讨的,是一个颇具争议却技术含金量极高的话…

PostgreSQL自带的命令行工具13- pg_waldump

PostgreSQL自带的命令行工具13- pg_waldump 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777pg_waldump 是 Po…

【C++历练之路】红黑树——map与set的封装实现

W...Y的个人主页💕 gitee代码仓库分享😊 前言:上篇博客中,我们为了使二叉搜索树不会出现”一边倒“的情况,使用了AVL树对搜索树进行了处理,从而解决了数据在有序或者接近有序时出现的情况。但是AVL树还会…

【编码利器 —— BaiduComate】

目录 1. 智能编码助手介绍 2. 场景需求 3. 功能体验 3.1指令功能 3.2插件用法 3.3知识用法 3.4自定义配置 4. 试用感受 5. AI编程应用 6.总结 智能编码助手是当下人工智能技术在编程领域的一项重要应用。Baidu Comate智能编码助手作为一款具有强大功能和智能特性的工…

EPAI手绘建模APP数值几何变换

(10) 数值几何变换 图 257 数值几何变换工具栏 ① 数值几何变换和交互式几何变换都包括移动、旋转、缩放模型。但是交互式几何变换变换时的变换轴是模型自身中心为变换中心,以X、Y、Z方向的为变换方向,而数值几何变换可以指定变换中心和变换方向。另外&a…

HarmonyOS NEXT应用开发之多模态页面转场动效实现案例

介绍 本示例介绍多模态页面转场动效实现:通过半模态转场实现半模态登录界面, 与全屏模态和组件转场结合实现多模态组合登录场景,其中手机验证码登录与账号密码登录都为组件, 通过TransitionEffect.move()实现组件间转场达到近似页…

使用Portal V17搜索PN(profinet)设备的方法

这里的PN就是profinet,无需连接PLC,只需要将PN设备连接电脑即可,如下图, 跳出如下窗口, 点击start search 搜索完毕后就看到PN设备的名字啦: 是不是很简单呢。

LeetCode--所有质数、质数对

1.0 Q: 输出 100 以内所有质数 1.1 /* 第一层循环控制检查到哪个数* 第二层通过遍历除以每个比他小的数的方式,检查每个数是不是质数* 由于要遍历检查,设置一个标记,只要任意一次循环可以整除,我们就设置该标记为不是质数 */boolean isPrime true;for (int i 2; i < 100…

终于找到微信聊天记录SQLite数据库文件解密方法了,一起来看看吧!

https://github.com/xuchengsheng/ 获取当前登录微信的微信昵称、账号、手机号、邮箱、秘钥、微信Id、文件夹路径 将微信PC的多个聊天记录数据库合并为单一数据库文件 支持微信聊天对话窗口&#xff08;文本消息&#xff0c;引用消息&#xff0c;图片消息&#xff0c;表情消息…