目录
一. 目前企业的大数据生态以及痛点:
1.1 目前企业的大数据生态:
数据湖和数据仓库:
- 数据湖: 以原生格式存储各种大型原始数据集,其中包含结构化,半结构化,非结构化数据。面向数据科学家和分析师,AdHoc 探索型的灵活查询方式。这种方式会要求在原始数据上进行最灵活的查询,性能实际要求往往没有那么高。(虽然对用户来说,肯定是越快越好。)
- 数据仓库: 会使用 ETL 技术,对表进行转换处理加工,Join,指标计算等,形成多个层次的结构化数据或者指标。面向终端用户,有一定模式的查询方式。其中指标能够加速查询,相当于预计算,使得最终查询转换成 KV 直接查询或者上卷查询,来满足固定模式,高 QPS,低延迟的一些用户终端需求。而另外一种是将数据导入到 OLAP 组件,来满足相对更灵活的模式,QPS/延迟要求没有那么高的计算。并且随着实际的业务需求痛点和 OLAP 技术能力(硬件/软件)的发展,这种方式会越来越流行。
因此数据湖 VS 数据仓库,主要是面向不同需求,不同用户,不同数据形态,不同查询模式,在性能和灵活性的 Tradeoff。
其实两者在目前的领域中都是需要的,虽然可能会根据不同企业的数据特点,占据的比例是不同的。比如电商可能业务体系会复杂,需要一定层次数仓体系来整理数据。而 IOT 数据体系非常扁平,那么数据湖的比例就大点。总而言之,湖仓一体就是目前所有企业都在实施的一套体系。
因为目前大数据体系包含数据湖,ETL,OLAP,数据应用产品,AI/ML 等复杂链路,而且每条链路上组件又较多(这点往往和历史原因,技术成熟度,技术需求 Tradeoff 等有关),于是,以下两点就变得越来越重要:
- 数据开发平台: 整合全链路的开发工具,形成一个统一的开发平台,避免烟囱式开发。
- 数据资产治理: 元数据管理,全链路的血缘追踪也变得越来越重要。
1.2 痛点:
- 大数据基础组件数目多。
- 刚才提到了大数据每条链路上组件非常多(这点往往和历史原因,技术成熟度,技术需求 Tradeoff 等有关)。比如 OLAP 组件,可能一个公司里面就会有好多个,可以参考我在《ClickHouse 在有赞的实践》分享中谈到的 OLAP 组件的选型。
- ETL/预计算成本高,而且 ETL/预计算工程师和终端用户工程师通常不是同一批人,就会发生实际需求,沟通,理解上的不一致。
- 实时数据链路和离线数据链路计算指标不统一。
- AI/ML 工程师绝大多数时间花在取数,加工,特征工程,而只有很少时间花在算法本身。
二. 那么什么是 LakeHouse?
LakeHouse 是下一代的大数据解决方案,致力于一定程度上解决目前企业的大数据生态的各种问题。
- 对接 Hive/HDFS 上的数据湖数据,以更高的性能,更强的安全性对数据湖进行分析处理。同时,也能够下一代数据湖技术,比如 Delta Lake,Iceberg,Hudi 等,最终致力于解决数据时效性(近实时/离线得到统一),数据湖模型,安全,性能,行级别的更新和删除等能力。
- 减少甚至消除显式ETL/预计算的数据生产链路,而采用一种对用户更加透明,成本更低的智能物化技术去解决这个问题。尤为重要的是通过让整个链路缩短之后,从多技术栈和需要不同部门的人员的沟通交互的窘境下,统一整个数据生产/加工者和消费者的角色。
- 云原生,Serverless技术,多租户,存储计算分离,弹性扩所容,按需收费。
- 对于数据开发平台和数据资产治理也是会有整套解决方案,但是因为大数据组建的统一和收敛,开发者不再需要学习那么多各种组建的开发语言和方式。
- 对 AI/ML 的支持,对接主流的 AI/ML 的生态,比如 tensorflow 等,使得 AI/ML 开发人员能够快速地取数,加工,特征工程,ML等。
- 统一开放的数据模型,格式,比如 parquet, arrow,避免不必要的序列化/反序列化。也能形成多引擎生态。
而目前国外这类公司最出名的是 Databricks 的 Delta Engine。大家有兴趣可以去了解下。当然其实这是下一代技术,所有相关的公司,包括 Snowflake 等等公司。
三. 其它:
其实只要你对一个行业有一定的了解,关注一些新技术,新生态,新玩法。这些东西你肯定会理解。确实有些人能够更加抽象地去总结出来相关概念。但是我们不能只停留在概念上,真正难的是如何去做这个产品,以及做出这个产品的优势。特别是对于 Lakehouse 这样复杂度高的产品,去实践解决用户痛点,脚踏实地地去深耕这个领域才是最最重要的。
我个人来说,从业多年,确实也曾踌躇满志过,也曾躺平过,目前来说可谓是碌碌无为,在35岁加入一家创业公司,也是希望有机会和一些志同道合的人做出一个真正在行业内有影响力的事情。
写这篇文章的原因主要是为了简单总结下,同时也回答了每次面试者对于 LakeHouse 的问题,所以很多方面我都没展开,个人见解一直觉得我们这个行业就应该 show me the code + 写必要的文档 + 说必要的话,而不要去做一些虚头巴脑的事情。我只崇拜自己想崇拜的人,只欣赏自己想欣赏的人(特别欣赏那种能够追求理想的人)。尊重每个人的环境,出身,选择(哪怕是躺平),怀着感恩的心去真诚地和每个人交流,但是我也不太欣赏那种过于看重利益的人(年纪大了,见过的人也不少了,虽然每个人到最后可能都是为了追求自身利益,但是在解决一定物欲和精神欲望之后,每个人看待利益的程度是有很大区别的。)。虽然也有点小自卑,但是从来也不想高攀任何人,也不想舔任何人。可能目前自己认可唯一的优点也就是待人真诚,一个人只要真诚待我,我必真诚待他/她。