一、前大数据时代
人人都知道罗马不是一天建成的,但没人告诉过你罗马是怎样一天天建成的。你看见罗马时,它就已经是罗马了。当我进阿里时,正是这样的感觉。我没有经历过阿里数据架构(包括平台工具)从0到1的过程。我相信很多阿里老员工也没有未见得全经历过。因为从行业视角来看,这是一个长达二三十年的过程,阿里作为先行者本身也是摸着石头过河。很多年轻一些的阿里员工看到当前的架构设计,他们的感受大概就是:“不就该是这样吗?不然还能怎样?”鲁迅就有话说了:“从来如此,便对么?”好在我前些年辗转了多家公司,有幸在一线接触到了国内外各种不同业务不同类型的数据团队及架构,再加上自己翻阅资料,才基本梳理清楚了数据架构的发展脉络。 BI系统
现在人们身处大数据时代的洪流之中,数据产品日新月异,令人应接不暇。阿里还出过一本书——《大数据之路》,里面详细介绍了大数据从采集到消费等各个环节的方法论和案例。那么,在大数据时代之前,人们也进行数据分析吗?那时的人们又使用的是怎样的工具和方法论呢?这就要介绍一位熟悉又陌生的老朋友——BI系统。说它熟悉,是因为数据侧的同学几乎天天都会和BI系统打交道,比如阿里的FBI。说它陌生,是因为现在的BI系统与上世纪九十年代的初代BI系统并不完全是一回事。BI(Business Intelligence,商业智能)的概念很早就有了(正如AI这一概念一样)。早期它的内涵相对模糊,按照百度百科的解释:“商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。“随着人们实践不断深入,BI系统的样貌也逐渐清晰。到了上世纪九十年代,BI系统迎来了它的第一个辉煌时期,Gartner将各种类型的类BI系统全部统称为BI,BI产品也基本确定为了是一套集数据清洗、数据分析、数据挖掘、报表展示等功能于一体的完整解决方案,数据仓库也基于此建立。从此BI系统一统江湖,江湖上再也没了DSS(Decision Support System, 决策支持系统)、EIS(Executive Information System, 主管信息系统)的名字。如果大家翻阅出版于上世纪八九十年代的数据仓库领域的书籍,就会发现里面频繁出现DSS、EIS、DW/BI等概念,例如William H.Inmon所著的《数据仓库(Building the Data Warehouse)》、Ralph Kimball所著的《数据仓库生命周期工具箱(The Data Warehouse Lifecycle Toolkit)》等,即便它们经历了多次翻译和再版,但其中的概念还是得以保留,大家一定要注意辨析其中很多概念实际上早已过时。事实上,与中国许多工业领域的发展一样,正由于我们起步晚,因此反而没有历史包袱,我国绝大多数企业都没有经历过初代BI的时代,因此除非对技术历史感兴趣也实在没有必要去了解这些概念。那时虽然没有大数据的概念,但数据分析、商业分析显然是人们长久以来都有的需求,也积累了相当多的方法论。当数据量不是主要矛盾时,BI系统能够支持的分析方法、UI等层面就成为了核心竞争力。BI系统的核心是Cube,它是一个业务模型抽象,在Cube上可以上钻、下钻、切片,为了更方便多维分析,还配套了MDX查询语言。当然,大多数BI系统都构建在关系型数据库之上,或者说很多BI系统本就是商业关系型数据库的配套产品,因此也都是支持SQL语言的。在计算和存储上可能类似于开源框架Apache Kylin。初代BI系统没落的原因主要是:
1.底层构建在传统关系型数据库之上,因为存在数据一致性约束等问题,支持不了大数据。(这也暗合了网传了很多年的阿里技术规范中提到的一条——不要设置外键,要通过其他技术手段保证数据一致性。)
2.不支持非结构化数据。
说它没落,但是它也并未消亡,在欧洲、澳大利亚、东南亚等不少地区还有不少传统企业仍然在使用这项技术。因此人们常说这些地方技术落后国内互联网大厂二十年,这就是一典型案例。而中国伴随着经济的快速发展、互联网技术的迅速普及、开源大数据技术的引进和国务院《促进大数据发展行动纲要》的印发,除了阿里等少数企业,几乎是一步到位直接进入了大数据时代。
下面就谈谈大数据时代中数据架构的变迁。