
仅在2022年,风投就向Apache Flink相关的初创公司投资了至少5500万美元,Apache Flink作为一个开源项目,可以用于处理大规模处理数据流并提供实时分析结论。2023年,Confluent宣布以1亿美元收购Flink初创公司,这说明投资者相信Flink是流处理的正确技术。
不仅仅是新公司,亚马逊云科技提供Flink作为托管服务,而阿里巴巴则通过更先进的平台提供同样的服务。未来将有更多的云提供商提供托管Flink服务。
在本文中,我们将探讨Apache Flink(一个已经存在了十多年的项目)为何突然变得炙手可热。Flink起源于一个名为Stratosphere的研究项目,目的是建立下一代大数据分析平台,于2014年4月16日成为Apache孵化器项目。,我们稍后会再讨论为什么这一点很重要。
让我们来看看为什么 Flink 突然受到广泛关注的五个关键因素:
风投资金吸引关注
稍微回顾一下过去,我们可以看到最近的一些投资行为表明人们对 Flink 重新产生了兴趣。
德国大数据初创企业 data Artisans(成立于 2014 年)已更名为 Ververica ,被阿里巴巴收购(据传在总融资 650万美元后以1.03亿美元收购)是因为Flink获得融资的第一家初创公司。2016年,Eventador成立,在被 Cloudera 收购之前,他们总共获得了380万美元的融资。同年成立的还有Aiven,他们已经为他们服务中提供的一系列开源项目筹集了4.2亿美元,这其中就包括Apache Flink。
如果有一个行业是专门展望未来、承担风险或者塑造未来的,那就是风险投资行业。有大量的人在关注他们的动向,因此研究一下最近几轮在Flink上构建流媒体解决方案的公司的投资是有意义的。值得注意的案例包括Decodable(2550万美元)、Immerok(1700万美元)和DeltaStream(1000万美元)。这些公司以及他们的产品都因为“Flink”获得了大量关注。
Flink拥有强大的社区
2022年,Apache Flink 社区共发布了2个Flink主版本,孵化出了新的流批一体表格存储项目,举办了13场线上线下活动,包括分别面向亚洲(北京)和欧美(旧金山)的 2 次 Flink Forward 大会,并向开发者推送了100+技术文章,围绕实时湖仓、实时风控、数据集成、流批一体等核心场景进行了深度技术解读和最佳实践的传递,呈现出了一个不断繁荣的开源、开放的开发者社区。
Apache Flink作为流式计算引擎,它可以实时订阅实时产生的现实数据,并实时对数据进行分析处理并产生结果,让数据在第一时间发挥价值。它是支持现代架构赚钱的基础:实时广告、推荐、欺诈检测、服务质量监控等,这些都与企业的营收息息相关。
目前,Apache Flink已经拥有包括Stripe、Uber、Shopify、Pinterest和Netflix在内的著名大型用户,通过这些用户的实践,未来的新用户完全可以相信Flink经过了大规模的战斗测试。这些保证至关重要,因为部署Flink并不容易。而且对于一个组织的数据科学和数据基础设施组织中的一个或多个团队来说,这通常是一个长达数月的项目。
Flink另一个强有力的竞争力是因为,它是Apache软件基金会中充满活力、多样化和独立于供应商的开源社区。Flink 连续两年蝉联 Apache 软件基金会财年报告最活跃项目,用户交流程度、开发活跃度、影响力等多项指标,在整个 Apache 软件基金会的社区中名列前茅。
Flink没有真正的替代品
有些人可能会被这个假设冒犯,但是请先听我说:对于某些用例,Flink没有真正的替代品。一旦用户想以高吞吐量进行流处理,并且想独立于特定的数据流平台(如Apache Kafka),那么Flink是唯一的选择。
如果我们回溯历史,会发现已经有很多尝试构建开源和/或源代码可用的流处理器:Apache Storm、Apache Samza、Apache Apex、Kafka Streams、Ksqldb、Materialize、Apache Spark Streaming。其中一些项目现在还处于维护模式,而另一些项目仍然非常活跃或仍在启动。但在我看来,在部署选项、覆盖的用例以及对各种用例的适应性(无论是大吞吐量、低延迟、反应式应用程序开发等)方面,它们都没有Flink提供的广度和深度。
当然,未来还会有一些有趣的新项目出现,例如Materialize(2026年底才会开源)或Rising Wave。让我们持续关注他们的方向发展,以及他们如何经受住时间(以及大型生产用例)的考验。
用户市场终于迎头赶上
作为Flink的长期贡献者,我认为该项目一直很“火”,显然我是带有偏见的,而现在用户市场终于也认可了这个“火”。
虽然一小部分工程师和企业在10年前就看到了用户对Flink技术的需求,但用户市场还没有为此做好准备。只有以Netflix、Uber、阿里巴巴、Pinterest、Twitter为代表的这些大型、成熟的公司才真正需要像 Flink 这样的技术的数据量和规模。
除了需求,还有使用Flink的能力。Flink是面向分布式系统工程师的专业系统。Flink 的上手门槛比较高,API 不够直观和好用,不同使用模式的体验也不尽相同。所以,要真正掌握 Flink 并没有那么简单。这也解释了为什么Flink目前主要被拥有强大基础设施工程能力的大型科技公司采用的原因。
然而,我们现在看到这种情况正在迅速变化。Decodible等公司将Flink作为托管服务提供,具有类似Snowflake的体验,可通过SQL等广为人知的工具访问,而平台则负责基础设施和操作方面的繁重工作。当然,它不仅仅是SQL,它还包括连接器、模式定义、开发人员经验等等。但重要的是,客户不需要进行Flink配置。
我相信,我们正处于这样一个阶段:我们需要一套技术,可以对用户行为指标进行实时计算,对模型进行实时更新,对用户指标进行实时预测,并帮助用户更快地作出决策。Flink正是解决这个问题的正确技术。
Streaming SQL
正如我在上文中提到的,在生产系统中部署和操作Flink都需要专家。用Java编写Flink应用程序不是一件简单的工作,而产品化则更加困难。
随着现代流处理器对SQL的理解,大量新的工程师可以使用流技术。
除了使用范围更广之外,还有一个关于Streaming SQL的争论。使用Decodable之类的托管服务,只用几行代码就可以实现复杂的状态操作。Flink SQL流媒体应用程序与Decodable等提供商提供的REST连接器相结合,可以用很少的初始成本和持续成本解决相同的问题,而无需花费数周时间为一个问题构建微服务。当然,内部Flink SQL平台或其他供应商也可以支持此用例。我在这里想说的是,Streaming SQL大大减少了生产的时间和复杂性,即使对于复杂的用例适用。





