s3的流媒体解决方案

hrirmatl  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(305)

我们有批处理管道将文件(主要是csv)写入s3存储桶。有些管道每分钟写一次,有些管道每5分钟写一次。目前,我们有一个批处理应用程序,它每小时运行一次,处理这些文件。
业务部门希望每5分钟提供一次数据。取而代之的是,我们决定使用apachespark结构化流式处理并实时处理数据,而不是每5分钟运行一次批处理作业。我的问题是生产化这个解决方案有多容易/难?
我唯一担心的是,如果检查点位置损坏,删除检查点目录将重新处理过去1年的数据。是否有人使用spark structured streaming使用s3生产任何解决方案,或者您认为flink更适合此用例?
如果您认为这个问题有更好的架构/模式,请给我指出正确的方向。
ps:我们已经考虑过把这些文件放进Kafka,但是由于带宽和文件的大容量,我们排除了这个可能性。

1aaf6o9v

1aaf6o9v1#

我找到了一个方法,不是最有效的方法。因为我们以前已经生产了基于kafka的电离解决方案,所以我们可以使用s3流和lambda将事件推入kafka。事件将只包含元数据,如文件位置和大小。
这将使spark程序更具挑战性,因为文件将在executor内部读取和处理,这实际上没有利用分布式处理。否则,读入executor并将数据带回驱动程序,以利用spark的分布式处理。这就要求spark应用在内存方面做得更好,因为输入文件的大小变化很大。
https://databricks.com/blog/2019/05/10/how-tilting-point-does-streaming-ingestion-into-delta-lake.html

相关问题