我有来自不同生产者的Kinesis流中的数据。根据数据的类型,数据需要转换为几个不同的表格。我试图从Kinesis Streams读取Lambda,将数据转换为不同的表格,然后使用Kinesis Firehose将批处理和COPY转换为Redshift。将数据从单个Kinesis流传输到Redshift中的多个表中
但是由于Firehose一次只能传递给一个Redhsift表,因此我需要使多个Firehose实例的运行时间与我在Redshift模式中使用的表的数量相等。我发现每个区域有20个Firehose实例的默认上限,我想知道这是否是我尝试实现的理想数据管道。
您可以使用Kinesis Analystics应用程序来执行流的预处理并将其分成多个流?它看起来像你可以使目标流Kinesis Firehose红移http://docs.aws.amazon.com/kinesisanalytics/latest/dev/app-tworecordtypes.html – Nathan
@Nathan - 感谢您提出建议。虽然这很有趣,但这并不能解决使用Kinesis Firehose的多个实例的问题 - 我仍然需要与架构中的表数量一样多的Firehose实例。其次,我的数据转换更适合用python/javascript编写,与原始sql相比,因为我可以使用第三方库来执行一些复杂的转换。 –
我不认为你会找到一种方法来从单个流中填充多个Redshift表,而不是先将原始流加载到stage表中,然后将其分割成Redshift,或者拆分流,并且每个流有一个流表。红移是否是一项要求?如果不是,雅典娜可能是另一种选择? – Nathan