作为数据领域技术名词解释的第一篇,讲讲数据湖,因为我认为数据湖是现代分析型数据架构的核心。
01
什么是数据湖
数据湖是BI厂商Pentaho的CTO James Dixon在2010年提出的。当时流行的是数据仓库或数据集市架构,实施周期长,就算实施完了,也支持不了预设之外的灵活分析需求,因为没有原始数据。作为同行,我想我能深刻体会Dixon当时的心情,一堆人投进去啃哧啃哧干了几个月,完了客户说我想干啥你怎么还是支持不了呢,验收回款就别想了,那个欲哭无泪啊。当时线下的Hadoop和云上的S3都已经起来了,所以Dixon就想,不如先把数据都导进来,反正Hadoop或S3这样的平台成本低计算能力强也好扩展,这样不就想做什么分析都可以做了吗。Dixon就是基于这样朴素的思想提出数据湖这个概念。
数据湖的概念不复杂。Gartner对数据湖的定义是:
A data lake is a concept consisting of a collection of storage instances of various data assets. These assets are stored in a near-exact, or even exact, copy of the source format and are in addition to the originating data stores.
大致意思就是说数据湖是一个存储各种比较“原始”的数据资产的存储系统。今天在云下主要是Hadoop体系,云上除了Hadoop,还有S3、OSS这样的对象存储,或者Snowflake这样背后使用对象存储的云原生数仓(这点存疑)。
我觉得Gartner的定义准确,但有点过于精简,没有体