異なるプロデューサからのキネシスストリームにデータが入っています。データは、そのデータのタイプに応じて、いくつかの異なるテーブルに変換する必要があります。私はKinesisストリームからLambdaを読み込み、データを別のテーブルに変換してから、Kinesis Firehoseを使用してRedshiftにバッチしてコピーします。単一のキネシスストリームからレッドシフトの複数のテーブルにデータをストリーミング
Firehoseは一度に1つのRedhsiftテーブルにしか配信できないため、Redshiftスキーマで使用するテーブルの数と同じ数のFirehoseインスタンスを実行する必要があります。私は地域ごとに20 Firehoseのインスタンスのデフォルトキャップがあることを私は、これが私が達成しようとしているもののための理想的なデータパイプラインかどうか疑問に思っています。
Kinesis Analysticsアプリケーションを使用してストリームの前処理を行い、それを複数のストリームに分割できますか?あなたが目的地ストリームをRedshiftへのKinesis Firehoseにすることができるように見えるhttp://docs.aws.amazon.com/kinesisanalytics/latest/dev/app-tworecordtypes.html – Nathan
@Nathan - 事を提案してくれてありがとう。これは面白いですが、これはKinesis Firehoseの複数のインスタンスを使用する問題を解決するものではありません - 私はスキーマ内のテーブルの数と同じ数のFirehoseインスタンスを必要とします。第2に、私のデータ変換は、サードパーティのライブラリを使用して複雑な変換を行うことができるので、raw SQLと比べてpython/javascriptで書く方が適しています。 –
元のストリームを最初にステージテーブルにロードしてからRedshiftで分割するか、ストリームを分割して1つのストリームを持つことなく、複数のRedshiftテーブルを1つのストリームから読み込む方法はありません表。 Redshiftは必須条件ですか?もしかしたら、アテナは別のものでしょうか? – Nathan