一、背景
在数据系统的运维运营中,经常遇到一些人工定期重复处理的场景,比如以下这些场景:
1、利用Excel中公式/函数,将各类表格型数据进行加工处理,基于生成的图表制作成PPT进行月度汇报;
2、每天人工检核数据系统的离线跑批是否正常并发送值班提醒;
3、提醒业务定期进行操作,如每个月手工上传各类表单型数据;
二、对比
在理想情况下,这些都是可以借助编程脚本或者平台工具进行解决的,然而在实践中,情况却往往比较复杂,需综合考虑架构、成本、安全、工作习惯改变等多种因素,因此依然存在大量的手工操作场景。以下是对比手工操作与自动化操作的优劣:
1、手工操作:
劣势:
繁琐,耗时,具有操作性风险。
依赖某个具体的人,一旦离职或者休假,则容易成为单点风险。
优势:
每个步骤都可控,过程可信。
可随时调整,方便快捷,无需提交开发测试上线发布等流程。
类似程序员中的防御性编程,手工操作可以防御性数据管理。数据不上传,线下手工台账管理,紧握数据的控制权,更有安全感。
2、自动化:
劣势:
底层为黑盒子,依赖外部系统,一旦出错,无法自主解决。
流程固化,一旦数据源或者规则逻辑改变,无法快速调整。
若所有自动化程序基于某一个系统,一旦该系统出现问题,则会出现系统性风险。若涉及到多个系统的打通,带来潜在的系统之间信息泄露的安全风险。
数据暴露给他人或者外部系统,数据的拥有方缺失对数据完全的管控。
优势:
便捷高效,对于一些重复度高(如日频率),操作复杂(步骤多,流程长),可以节省大量人力成本,并且降低了人为操作失误的风险。
在架构合理成本可控的情况下,基于互信的组织文化,自动化可以最大化的发挥性能。
三、案例
在实践中,有这样一个案例,风险管理部的业务需要每月给领导汇报公司产品的运营收益情况。每个月人工操作流程如下:首先将公司内部交易数据导出成表格,利用Excel中的iFind插件获取外部行情数据,然后利用公式函数生成部分图表,然后将图表复制到PPT中,制作最终的展现格式。整个流程操作复杂,耗时长,容易发生操作失误。分析整个流程之后,发现该报告的初始内外部数据在数据仓库中已采集落地,而图表展示则是BI工具的强项,基于系统平台进行自动化处理完全可行,数仓+BI的也是主流的数据服务架构,这些平台都已采购并完成搭建,只需要投入少量的人力开发成本。此外,这些系统也都针对数据安全做了管控,确保数据不会泄露。在实际开发过程中,与业务紧密沟通,最大化还原其手工报告,保持数据、功能及展示效果的一致性。最终项目顺利推进,上线后赢得了业务的认可。
四、总结
手工操作自动化,往小了说,可能就是一个python脚本自动定时发邮件。往大了说,BI、AI本质也是用自动化的系统替代人工重复操作,如何推广这些应用并真正能有实用价值,考虑的角度就远远不只是技术了。扬长避短,才能让技术真正的为人服务。