次の構成で s3 にデータを配置するAWS Kinesis Firehose ストリームがあります。
S3 buffer size (MB)* 2
S3 buffer interval (sec)* 60
すべて正常に動作します。唯一の問題は、Firehose がデータのチャンクごとに 1 つの s3 ファイルを作成することです。(私の場合、スクリーンショットのように、毎分 1 つのファイルです)。時間の経過とともに、これは大量のファイルになります。1 日あたり 1440 ファイル、1 年あたり 525,000 ファイルです。
これは管理が困難です (たとえば、バケットを別のバケットにコピーする場合、すべてのファイルを 1 つずつコピーする必要があり、これには時間がかかります)。
2 つの質問:
- Kinesis に古いファイルをグループ化/連結するように指示する方法はありますか? (たとえば、24 時間以上経過したファイルは、1 日 1 回のチャンクにグループ化されます)。
- COPY redshift
COPY
のパフォーマンスは、多数の s3 ファイルから ing する場合と少数の s3 ファイルから行う場合にどのように影響しますか? これを正確に測定したことはありませんが、私の経験では、小さなファイルがたくさんある場合のパフォーマンスはかなり悪くなります。私が思い出す限り、大きなファイルを使用する場合、約 2M 行の COPY は約 1 分です。200 万行に多数の小さなファイル (~11k ファイル) が含まれる場合、最大 30 分かかります。
私の主な懸念事項は次の 2 つです。
- redshift COPY パフォーマンスの向上 (s3 から)
- 全体的な s3 ファイル管理の容易化 (バックアップ、あらゆる種類の操作)