Apache Flink由于其广泛的特性,是开发和运行许多不同类型应用的优秀选择。Flink的特性包括对流和批处理的支持、复杂的状态管理、event-time处理语义、以及exactly-once保证。此外,Flink可以部署在各种资源管理平台上,例如Yarn、Mesos和Kubernetes,也可以作为一个standalone的集群。Flink具有高可用性,没有单点故障的情况。Flink已经被证明可以扩展到数千个核和TB级的应用,并提供高吞吐量和低延迟。
下面,我们将探讨Flink支持的最常见的应用类型:
(1)Data Pipeline Applications
(2)Data Analytics Applications
(3)Event-driven Applications
一.Data Pipeline Applications
1.什么是data pipelines?
ETL(抽取-转换-加载)是在存储系统间转换和移动数据的一种常用方法。通常,ETL任务会定期的触发,将业务数据系统中的数据拷贝到分析数据库或数据仓库中。
data pipeline的作用和ETL任务类似。它们转换数据,将数据从一个存储系统移动到另一个存储系统。然而,data pipeline操作不是定期的触发,而是作为一个连续不断的流处理方式处理数据。因此,它们能从不断产生数据的源中读取记录,并以较低延迟将其移动到目的地。例如,一个data pipeline监控一个文件目录,一旦有新的文件产生,就将其数据写入到event log中。再比如,一个应用可以将时间流存储到数据库,或者增量的构建和细化搜索索引。
下图描述了周期性ETL作业和连续data pipeline之间的区别。
image.png
2.data pipeline的优势是什么?
连续的data pipelines相比周期性的ETL作业,其最大的优点使具有更低的延迟。此外,data pipeline更加通用,可以用于更多场景,因为它们能连续地使用和发出数据。
3.Flink如何支持data pipeline?
Flink的SQL接口及其用户自定义函数可以解决许多常见的数据转换任务。更高级的需求可以使用更通用的DataStream API实现。Flink提供了到各种存储系统(如Kafka、Kinesis、Elasticsearch和JDBC数据库系统)的丰富的连接器。
4.典型的data pipeline应用有哪些?
(1)电子商务中的实时搜索索引构建
(2)电子商务中的连续ETL
作者:阿猫阿狗Hakuna
链接:https://www.jianshu.com/p/ff79986b72cc
共同学习,写下你的评论
评论加载中...
作者其他优质文章