放眼上个世纪,数据仓库已经能够解决绝大多数的数据问题。彼时,数据二字还代表着BI、仪表、趋势图、报表等结构化数据,这些数据大多来自企业内部和业务系统,极少来自外部。而结构化数据在分析时难度较小,数据仓库就可以满足企业需求。大约十年前,音频、视频、文本等非结构化和半结构化数据激增,以往数据仓库的问题便凸显了出来,用户对于数据更高的要求和数据多样性的矛盾逐渐凸显,这种情况下,数据湖便登上了技术的舞台。
与数据仓库相比,数据湖的价值在于,其能够很好的存储各类原始数据,通过对历史数据的分析生成新的数据维度,此外,集中存储企业全部数据,帮助企业完成信息追踪和一致性保障。但是数据湖的问题也一样存在的,其本身并不支持事务,SQL性能也很差,数据仓库依然不能舍弃。而那些由数据仓库转型建设了数据湖的企业们便开始找寻一个平衡的办法,把ELT流程变为一座桥,将数据湖与多个数据仓库沟通起来。
这种模式看似很好的解决了数据的处理难题,也让数据湖和数据仓库各司其职发挥作用,那为什么大家又会提出湖仓一体化的理念呢?这座“桥”难道不能让数据湖和数据仓库“一体化”吗?遗憾的是,这种做法短期确实可以发挥作用,但时间一长各种弊端就开始出现。
湖仓各自独立带来的是运维和架构的复杂性,一座桥也使得整体运营效率不高,再伴随企业需求的日益增加,湖仓规模的逐渐加大,企业在运维和成本方面的付出与日俱增。久而久之,湖仓分离的情况会逐渐成为压垮企业的稻草。
那么湖仓一体究竟意味着什么呢?湖仓一体意味着把数据湖与数据仓库真正融为一体。底层类似数据湖存储了结构化、半结构化、非结构化的各种数据,中间进行统一的加工处理,支撑起上层BI、AI、数据科学等各种应用。
放弃一道桥,得到的是江湖浩瀚,海阔天高。
湖仓一体化的价值在于其天然具备了数据湖和数据仓库的特性,并弥补了二者的缺点。其采用的存算分离架构,能够弹性的无限扩展,无论是结构化还是非结构化数据,均可通过HDFS和S3完成处理。这样的话不仅仅解决了架构复杂性难题,就连数据孤岛、数据共享、运维和成本等大量难题也因此迎刃而解。而且由于如今云原生技术的越发成熟,在其支持下,湖仓一体更是进一步蜕变成了数据处理的真正基石。