0

我知道這個問題已經在Stack Overflow中多次提出過,但是我沒有讀到的答案能夠解決我正在經歷的問題。AWS Kinesis Firehose沒有在Redshift中插入數據

我有一個Boto3腳本來將MySQL表複製到Kinesis Streams。然後在另一端,有一個KCL Node JS腳本從Kinesis Streams讀取流並寫入S3。到現在爲止還挺好。

我在同一地區設置了Kinesis Firehose,Redshift和S3。然後我設置了Firehose從S3讀取並寫入Redshift。使用Firehose提供的演示數據進行測試時,一切正常。

然後我設置一個Redshift表,它具有MySQL表中的所有列。某些數據類型不受Redshift支持,因此我使用了不同的數據類型,但我確信Firehose可以毫無問題地寫入Redshift表。

下面是MySQL表格截圖。

MySQL table

及以下的紅移表截圖。

Redshift table

正如你所看到的,數據類型不盡相同。我想知道Redshift是否對每個數據類型必須與MySQL表相同的級別非常敏感。

順便說一下,我確實在Firehost COPY命令中指定了JSON'auto'並啓用了日誌記錄。不幸的是,沒有錯誤記錄。

+0

所以,你在S3中獲取文件,但不是在紅移? –

+0

是的。正如我的問題細節中所解釋的,我設法使用Node JS KCL腳本將文件置入S3。 –

+0

一旦文件在S3中,手動嘗試COPY命令以查看是否可以將數據轉換爲少數文件的紅移。 –

回答

0

你爲什麼不在Redshift中看到記錄有很多原因。在Firehose將記錄置於S3之後,從Redshift執行COPY命令以從S3中獲取文件並將其傳入羣集。

如果您沒有看到STL_LOAD_ERRORS,那麼Firehose無法連接到Redshift。您可以在Firehose控制檯中驗證這一點,您可以在Redshift Logs選項卡下找到更多信息。

此外,請確保您已允許在VPC for Redshift下的區域中的Firehose IP範圍的傳入連接。

相關問題