数据分析生态的活跃程度可能仅次于前端(一个坏笑话哈哈)。
我刚接触编程的那些年(大约是 2016 年),(大)数据分析人们主要谈论的是 Spark,逐渐放弃的是 Hadoop,
渐渐在讨论 Flink 这样的流处理平台。
这些平台有个共同点:都是跑在 JVM 上(好吧,又一个坏笑话,你读过 Spark 的异常信息码?信噪比低到令人发指)。
我觉得这些平台的共同点是:他们都是 Platform,而不是 library。什么意思呢?为了用这些平台分析数据,
首先,你需要安装对应的集群;然后,你需要把你的问题转化成对应平台的 API 来执行;最后,这些平台内部的
数据类型和数据结构是不兼容的。有时候,你会觉得你的问题用 Spark 有点高射炮打蚊子,又有些时候你觉得
Spark 的 API 好难用,并不是适合你的问题,而且它的运行时语义也不是你想要的,你需要各种 Hack。
很多时候,你只想把算任务派发到很电脑上,完成计算任务。
计算三要素:算、存、通讯。这些平台都有自己的算、存、通讯机制,导致相互共存非常困难。
如今,2023年,Spark Flink 仍然蓬勃发展,但是社区中似乎有了一些新的动向:
- 去平台化,去JVM化
- 统一数据格式( in memory / on disk)