其实问题说明中的两点,我都不能同意:
一、海量数据因为电子时代正应运而生。
二、数据收集整理分析工作变得越来越容易。
首先,海量数据不是因为电子时代的到来才产生,而是早已有之。只是互联网时代由于分享越发便捷,而使得数据的增长量高于从前。与此同时,数据的收集或许变得容易,但我在工作中的感觉,对数据的分析实际上变得原来越困难。
举个例子,微软的 Lync 在支持语音通话的同时,也通过Lync收集每一个电话的通信质量信息。当Lync被部署到十万人规模的跨国公司时,假定平均每个人每天打五个电话,那么每天都会生成五十万笔数据。哪怕每一笔数据只保存大约100K的纪录,那么每天也有接近50G的数据生成。这个数据量也许和Google这种大鳄不能比,但如果用我们如今常见的500G标配硬盘存储,一块也就够用10天而已,也不算小了。
为什么数据分析很困难?原因很复杂,对我们的工作场景来说至少有两个主要原因:
有效的结论可能需要对多组数据相互索引和分析才能得到。为什么?因为现实环境是复杂的。譬如某次电话通话质量特别差,原因可能是网络问题,可能是用户主机上负载太高,可能是我们的语音处理算法有错误。我们的数据还没有智能到能直接给出上面三个结论的一个,只能对多组数据进行综合比较才能给出一个结论,比如丢包率、包传输时延(RTT,jitter)、语音数据包的丢弃比率等。这比追踪单个数据来分析趋势要复杂得多。数据来源可能并不直接。为什么?因为产品必须服从于很多非技术因素。譬如,当用户抱怨通话质量很差时,如果能录下用户的声音会给分析带来很大的方便。但是,我们偏偏不能允许录音,因为这样有暴露用户隐私的危险。这种时候,我们能做的只能是通过一些相关但无害的数据推断当时发生的问题。这样做必然降低数据分析的效率,但我们别无选择。
到现在为止,我们仍然不得不大量借助人工分析才能得出结论。毫无疑问,人工分析的时间消耗和数据生成的数量根本不成比例。为了解决这个问题,我们一直在投入大量的时间和精力试图进行一定的自动数据分析。很遗憾,到目前为止我们尚未找到一个完美的解决方案。