关于“把 Excel 当企业数据库用”造成的各种灾难,我们过去已经说了许多,不过今天又有一个新出炉的血淋淋案例:英国政府误用 Excel ,导致漏报高达 1.6 万笔新型冠状肺炎(Covid-19)确诊数、造成疫情被低估甚至延误相关措施。事关现在全世界最重要的疫情管控议题,值得好好来讨论一下。
先摘要一下:
事情是怎么发生的?
我们在各大媒体或 WHO 等官方管道看到的每日疫情统计,主要是由各国政府官方通报而来。英国政府确诊数据来源主要是英格兰公共卫生局(PHE)。根据 BBC 的报导,由于检查工作交给外部机构进行,外部机构会将大量的检查结果以 CSV 文件的格式交给 PHE,此时数据并没有问题。
但 PHE 拿到源数据之后,无法直接原封不动发出数据,需要经过一些统整——得汇整不同检查机构的数据、集成格式等等。在公司、组织里曾经负责统整过数据的人,应该很能懂这情境。
此时,他们选择了最常见、大家最熟悉,在此情境中其实也最危险的工具 -- Excel,写了一些自动化流程,让他们收到的 CSV 檔自动被统整到 Excel 工作表中,然后再将此份统整 Excel 的数据上载到内部系统中。
问题就出在 Excel 这一关:尽管有自动化流程省去纯手工拷贝贴上造成的痛苦、麻烦与贴错的机会,但最终仍然出错了,因为 PHE 用的是 Office 2007 以前版本、 xls 格式的 Excel,这个旧版格式单一工作表的数据上限是六万多列(65,536列),当工作表里保存的数据超过此列数时,下方就无法再存数据,而外部检查机构不断汇入的检查信息超出这个数字,造成了最终统计确诊数的漏失,而且问题显然没能马上被发现。
PHE 在 10 月 2 日发现这个问题,此时他们已经漏算了 9/25 到 10/2 整整一周的确诊数字,总计足足少算了 15,841 个确诊数。从这篇报导中的图表可以看到,原本这一周公布的新确诊人数约在每日六、七千人之间,且看似曲线趋缓,现在把漏算数据加回来,原来 9/28 之后单日新确诊数突破八千大关,十月之后甚至破万,这是疫情以来新高。在大家每天看数据评估疫情的时候,错误的数据可能会引来怎样的误判,需要注意。
与此同时,漏失数据的问题也不只于数据误判,因为这份数据也用于其他政府机构跟踪关联者,而综合各家报导,虽然 PHE 强调没有因为漏数据延误通知确诊病患,但有公卫官员说,许多“确诊者的接触者”被延误通知,代表许多原本该即刻进行的隔离等措施没有落实,这使得英国在野党工党政治人物、影子卫生大臣 Jonathan Ashworth 痛批政府致人民性命于险境。
用 Excel 错在哪?
以这件事情来说,很多人第一时间讲到的是 PHE 用的 Excel 版本问题:旧版 xls 格式 Excel 檔的数据列数上限只有六万多笔,如果用的是 2007 年之后的新版 xlsx,单一工作表的数据列数上限约百万笔(1,048,576 列),可能“暂时”就没问题了。
PHE 在事发后迅速宣称已解决“技术问题”,据报导方式是马上拆解原本的 Excel 檔,来避免数据量超出负荷的问题。
但其实,更根源的问题是:PHE 需要的其实明明是“数据库”,不是吗?他们没有使用正规的数据库系统来处理,反而用了“常常被硬当成数据库来用,但真的不是数据库”的 Excel。
Excel 是个很好用的电子表格软件、很好用的文字处理工具,但它天生不是用来当“数据库”的工具,当数据不断增加、复杂化,Excel 迟早会超出它的负荷,不管是文件开不了、动不了、数据笔数/单元格总数超过限制(Ragic 有许多客户就是感觉到自己的 Excel 或 Google Sheet 跑不动、快超过限制后,赶快找上我们的)、或是其他超出原先设计的使用方法,都可能让它从好用工具变地雷。
如何离开 Excel?
反过来说,我们其实能理解为什么IT 专家不断提醒直接把 Excel 当数据库、处理大量数据的坏处,许多企业(包括全球知名企业)甚至政府组织却对 Excel 无法放手,很多时候是因为跟其他冷冰冰的商用软件、“数据库方案”比起来,Excel 实在太亲切、太方便、也太容易开始了!
但时代其实已经改变了,像 Ragic 企业云数据库这样“外表看起来像 Excel、实际运作起来是个数据库(存放/查询数百万笔数据不是问题!)”的解决方案,就是希望提供 Excel 和传统数据库方案之外的第三条路,让你兼顾低门槛、高弹性、数据库特性。
额外提醒:
即使讲了很多“Excel 恐怖故事”,我们其实从未抵赖 Excel 有它的优点,也不会不负责任的说“不用 Excel 就不会出任何错”。
得强调的是,不管是使用 Excel 这样的传统电子表格工具,还是 Ragic 这样的数据库工具,重点是“用对工具”,让文字软件做文字软件该做的事、数据库做数据库该做的事。
(当然,良好的使用习惯、正确观念和上线前测试,也都很重要 :P)
归类: 逃离恶梦 > 逃离 Excel 灾难