Stack Overflow でこの質問が何度か尋ねられたことは知っていますが、私が読んだ回答では、私が経験していることを解決できません。
MySQL テーブルを Kinesis Streams にコピーするための Boto3 スクリプトがあります。そしてもう一方の端には、Kinesis Streams からストリームを読み取り、S3 に書き込むための KCL Node JS スクリプトがあります。ここまでは順調ですね。
Kinesis Firehose、Redshift、S3 を同じリージョンにセットアップしました。次に、S3 から読み取り、Redshift に書き込むように Firehose を設定しました。Firehose で提供されたデモ データでテストすると、すべて良好です。
次に、MySQL テーブルのすべての列を含む Redshift テーブルをセットアップします。一部のデータ型は Redshift でサポートされていないため、別のデータ型を使用しましたが、Firehose は問題なく Redshift テーブルに書き込むことができると確信していました。
以下は MySQL テーブルのスクリーンショットです。
以下は Redshift テーブルのスクリーンショットです。
ご覧のとおり、データ型はすべて同じではありません。Redshift は、すべてのデータ型が MySQL テーブルと同じでなければならないほどレベルに敏感なのだろうか。
ところで、Firehost COPY コマンドでJSON 'auto' を指定し、ロギングを有効にしました。残念ながら、エラーは記録されていません。
Redshift にレコードが表示されない理由は無数にあります。Firehose が S3 にレコードを配置した後、Redshift から COPY コマンドを実行して、S3 からクラスターにファイルを取得します。
STL_LOAD_ERRORS が表示されない場合、Firehose は Redshift に接続できません。Firehose コンソールでこれを確認できます。詳細情報は Redshift Logs タブにあります。
また、Redshift の VPC の下のリージョンで Firehose の IP 範囲からの着信接続を許可していることを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加