数据统一的七原则
“所有的可规模化系统,都必须自动进行绝大多数的操作。”
♦
“‘模式为先’(schema-first)的产品永远无法规模化。唯一的选择是采用‘模式为后’(schema-last)的产品。”
♦ “需要进行具体的域操作时,只有协作性的系统才可实现规模化。”
♦ “为了实现可规模化,任何的统一计算必须在多个核心和多个处理器上运行。”
♦ “尽管存在第四条原则,但真正的可扩展应用需要复杂性低于N **
2的并行算法。”
♦
“规则系统实现是无法规模化的。只有机器学习系统才能将规模扩展到大公司所需要的程度。”
♦ “必须支持实时增量统一。”
数据统一可以说是数据分析领域的一个长期挑战。虽然联合式的方法获得了一些青睐,但绝大部分的数据分析从业者希望在分析之前,所有数据都能在同一个地方呈现出来。这意味着,来自不同实体的数据必须统一起来,而问题就出在这个地方。
在新白皮书《可规模化数据统一的七原则》中,著名计算机科学家、Tamr联合创始人兼首席技术官迈克尔·斯通布雷克(Michael
Stonebraker)以其独特和直白的方式,探讨了上述挑战。
说到斯通布雷克这个人,他同时也是图灵奖得主、麻省理工学院教授,以及大数据分析公司Vertica(这家公司已经被惠普收购)的创始人。在那份白皮书的开头,他对数据统一进行了一番阐述。他说,数据统一由七步组成,包括获取、清洗、转换、模式集成、重复数据删除、分类和导出(但不要把这七步和七条原则搞混了)。
一般来说,企业主要使用两种方法来实现数据统一,包括提取转换加载(ETL)和主数据管理(MDM)。
斯通布雷克说,这两种方法各有利弊。
ETL非常灵活,适合不同的数据来源,使程序员可以手动编写转换程序,确保源数据的模式与集中式数据仓库项目采用的全局模式匹配。斯通布雷克说,由于自动化程度低,没有多少公司的ETL带宽能超过20个数据源。
至于MDM,它与ETL类似的地方在于,也预设了一个“主记录”,每一个专门类别(比如客户、部件和供应商)的所有文件都应该符合主记录的格式。但和ETL不同,MDM不是使用手动定制脚本,而是依靠一套“模糊合并”规则,把所有不同的文件转换成主格式。
但斯通布雷克说,不管是ETL还是MDM,都无法解决所有的数据统一难题,尤其是在数据量很大的情况下。针对这些限制,他提出了数据统一的七条原则。
由于当今大数据集的庞大规模及其对程序员的苛刻要求,任何的可规模化数据统一项目都必须在很大程度上实现自动化,不能依靠手动编写的程序。这催生了斯通布雷克的第一条原则:
“所有的可规模化系统,都必须自动进行绝大多数的操作。”
当今数据的多样性也催生出一个问题。比如,诺华制药公司(Novartis)想把1万名从事“湿性实验”工作的科学家的实验记录统一起来,但遇到了全局模式问题。总之,灵活的“模式读取”(Schema-On-Read)方法是解决数据多样性问题的唯一方法。这催生了斯通布雷克的第二条原则:
“‘模式为先’(schema-first)的产品永远无法规模化。唯一的选择是采用‘模式为后’(schema-last)的产品。”
虽然自动化是数据统一的关键因素,但人类专家的地位是肯定取代不了的。就诺华的那个例子而言,只有科学家本人才能证实特定的一个数据(比如新化合物的名字)是否准确,有没有拼写错误。这催生了第三条原则:
“需要进行具体的域操作时,只有协作性的系统才可实现规模化。”
对大规模数据统一来说,可扩展性必不可少。当数据集超过1000万个文件时,单个计算核心根本处理不了,更别说单个芯片或者单个电脑。这催生了第四条原则:
“为了实现可规模化,任何的统一计算必须在多个核心和多个处理器上运行。”
聚类算法是数据统一和数据清洗工具的核心。虽然这些算法是并行的,但如果太复杂的话,就会耗费太多时间。这催生了第五条原则:
“尽管存在第四条原则,但真正的可扩展应用需要复杂性低于N ** 2的并行算法。”
很多MDM产品采用基于规则的方法来确定转换。但考虑到当今企业试图统一的数据体量和多样性,这些方法行不通。这催生了第六条原则:
“规则系统实现是无法规模化的。只有机器学习系统才能将规模扩展到大公司所需要的程度。”
最后,数据统一系统必须适应客户的工作方式。从技术上来说,虽然理论上可以靠“蛮力”更新每一条变化的记录,但如果数据太多、变动频繁,就会造成混乱。这催生了第七条也是最后一条原则:
“必须支持实时增量统一。”
斯通布雷克说,ETL方法不符合第一、第二和第三条原则,而MDM方法不符合第一、第二和第六条原则。在大数据领域非常流行的自助式数据准备方法“至少”不符合第一和第三条原则。他还说,目前所有产品(ETL、MDM和自助式数据准备)可能都不符合第五和第七条原则。