19

Kinesis Firehose で Redshift テーブルにデータをプッシュしようとしています。

firehose ストリームが機能し、S3 にデータを入れています。

しかし、Redshift の宛先テーブルには何も到着しません。

  • メトリクスで DeliveryToRedshift 成功は 0 (DeliveryToRedshift レコードは空)
  • 負荷ログ (redshift Web コンソール) と STL_LOAD_ERRORS テーブルが空です。
  • Firehose が Redshift に接続できることを確認しました (STL_CONNECTION_LOG に接続が表示されます)

これをトラブルシューティングするにはどうすればよいですか?

4

4 に答える 4

41

最後に、Firehose ストリームを削除して再作成することで機能するようにしました :-/ おそらく、Web コンソールを介して編集を繰り返したため、動作が不安定になったのでしょう。

ただし、トラブルシューティングのガイドラインは次のとおりです。

  • 良い出発点は次の手順です: http://docs.aws.amazon.com/firehose/latest/dev/troubleshooting.html
  • S3にデータが届いていることを確認する
  • この時点で、Firehose モニタリングの「DeliveryToS3 Success」メトリックはゼロ以外になるはずです。
  • Redshift クラスターはパブリックにアクセスできる必要があります (クラスター Web コンソールを参照してください)。
  • クラスターのセキュリティ グループは、Firehose IP アドレスからのインバウンド トラフィックを許可する必要があります。Firehose は現在、利用可能な AWS リージョンごとに 1 つの CIDR ブロックを使用しています。
    • 米国東部 (バージニア北部) の場合は 52.70.63.192/27
    • 米国西部 (オレゴン) の場合は 52.89.255.224/27
    • EU (アイルランド) の場合は 52.19.239.192/27
  • Firehose に指定した redshift ユーザー/パスワードを再確認します
  • この時点で、Redshift ログで接続試行を確認できるはずです。

    select * from stl_connection_log where remotehost like '52%' order by recordtime desc;  
    
  • Firehose で使用される Redshift ユーザーがターゲット テーブルに対して十分な権限を持っていることを確認します。

    select tablename, 
       HAS_TABLE_PRIVILEGE(tablename, 'select') as select,
       HAS_TABLE_PRIVILEGE(tablename, 'insert') as insert,
       HAS_TABLE_PRIVILEGE(tablename, 'update') as update,
       HAS_TABLE_PRIVILEGE(tablename, 'delete') as delete, 
       HAS_TABLE_PRIVILEGE(tablename, 'references') as references 
    from pg_tables where schemaname='public' order by tablename;
    
  • 次に、COPY コマンドが実行されているかどうかを確認できます。

    select * from stl_query order by endtime desc limit 10;
    
  • 次に、ロード エラーまたはサーバー エラーを確認します。

    select * from stl_load_errors  order by starttime desc;
    select * from stl_error where userid!=0 order by recordtime desc;
    
  • データまたは COPY オプションにフォーマットの問題がある場合、またはデータとターゲット列の間に不一致がある場合は、少なくとも COPY 試行といくつかの読み込みエラーが表示されるはずです。

  • これらのログ テーブルに何も表示されずにまだ立ち往生している場合は、web コンソールに関連するバグがある可能性があるため、firehose ストリーム全体を削除して再作成してみてください。(このステップは私にとってはうまくいきました)

于 2015-12-11T10:56:14.190 に答える
7

firehose_delivery_roleKinesis Firehose のセットアップ中に自動作成された IAM ロール ( ) に移動し、次のロールがアタッチされていることを確認します。

AmazonS3FullAccess
AmazonRedshiftFullAccess
AmazonKinesisFullAccess
AmazonKinesisFirehoseFullAccess

IAM で S3 資格情報が省略され、Kinesis セットアップが機能しないというバグがあります。

また、実際にデータ ファイルが S3 に蓄積されていることを確認します。

于 2015-12-10T18:21:11.983 に答える
1

Kinesis Firehos のセットアップ中に、Redshiftmasteruser認証情報を使用します。他のユーザーは機能しません。

于 2015-12-10T20:56:02.660 に答える