Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 消防软管数据管道限制_Amazon Web Services_Bigdata_Amazon Kinesis Firehose_Data Pipeline - Fatal编程技术网

Amazon web services 消防软管数据管道限制

Amazon web services 消防软管数据管道限制,amazon-web-services,bigdata,amazon-kinesis-firehose,data-pipeline,Amazon Web Services,Bigdata,Amazon Kinesis Firehose,Data Pipeline,我的用例如下所示: 我有JSON数据,需要以拼花格式存储在S3中。到目前为止还不错,我可以在Glue中创建一个模式,并将“DataFormatConversionConfiguration”附加到我的firehose流。但数据来自不同的“主题”。每个主题都有一个特定的“模式”。根据我的理解,我必须创建多个消防水带流,因为一个流只能有一个模式。但我有数千个这样的主题,其中包含大量高吞吐量的数据。创建这么多消防水带资源似乎不可行() 我应该如何着手构建我的管道。在我看来,您可以: 要求升级您的Fi

我的用例如下所示: 我有JSON数据,需要以拼花格式存储在S3中。到目前为止还不错,我可以在Glue中创建一个模式,并将“DataFormatConversionConfiguration”附加到我的firehose流。但数据来自不同的“主题”。每个主题都有一个特定的“模式”。根据我的理解,我必须创建多个消防水带流,因为一个流只能有一个模式。但我有数千个这样的主题,其中包含大量高吞吐量的数据。创建这么多消防水带资源似乎不可行()

我应该如何着手构建我的管道。

在我看来,您可以:

  • 要求升级您的Firehose限制,并使用1 Firehose/stream+add Lambda转换将数据转换为通用模式来完成所有工作-我认为这并不划算,但您应该看到您的负载

  • 为每个Kinesis数据流创建Lambda,将每个事件转换为单个Firehose管理的模式,最后可以使用Firehose API将事件直接发送到您的Firehose流(请参见“Q:如何将数据添加到我的Amazon Kinesis数据Firehose交付流?”)——但是,检查之前的成本,因为即使您的lambda是“按需”调用的,但在很长一段时间内,您可能会调用很多lambda

  • 使用其中一个数据处理框架(Apache Spark、Apache Flink,…)从Kinesis中批量读取数据,每次读取时间为1小时,从上次终止时开始-->使用可用接收器转换数据并以拼花格式写入。这些框架使用检查点的概念,并将最后处理的偏移量存储在外部存储器中。现在,如果您每小时重新启动一次,他们将开始直接从上次看到的条目读取数据。-这可能是有成本效益的,特别是如果您考虑使用SPOT实例。另一方面,它需要比以前的两个解决方案更多的编码,并且显然可能具有更高的延迟


希望有帮助。您可以就所选解决方案提供反馈吗?

嘿,我们使用Flink和Kinesis继续提供解决方案。我们在运动流上运行它。设法使用一个flink接收器,通过向代码中添加一些自定义扩展动态检测新的模式和主题:)@Dexter您是否在flink中使用了Kinesis数据流或Kinesis数据分析?我的问题和你的问题完全一样。还有错误是如何表示的,正如我在Firehose中发现的那样,如果验证不正确,它不会给出正确的错误消息。