我有來自不同生產者的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