0

この質問はスタックオーバーフローで何回か尋ねられましたが、私が読んでいる回答のどれも私が経験していることを解決することはできません。AWS Kinesis FirehoseがRedshiftにデータを挿入していません

私はMySQLテーブルをKinesis StreamsにコピーするBoto3スクリプトを持っています。もう一方の端には、Kinesisストリームからストリームを読み込んでS3に書き込むためのKCL Node JSスクリプトがあります。ここまでは順調ですね。

キネシスFirehoseとRedshiftとS3を同じ地域にセットアップしました。私はS3から読んでRedshiftに書き込むためにFirehoseを設定します。 Firehoseで提供されたデモデータでテストしたとき、すべていいです。

次に、MySQLテーブルのすべての列を持つRedshiftテーブルをセットアップします。 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タブで詳細を確認できます。

また、FireshoseのIP範囲からの着信接続が、Redshift用VPCの下の領域にあることを確認してください。

関連する問題