Athena: ファイルサイズは 100MB〜1GB が扱いやすい
S3 上の分析用ファイルは、小さすぎても大きすぎても Athena の効率が落ちる。実測の目安として 100MB〜1GB がちょうどいい領域。
どんなときに使う?
- データレイク/分析基盤のパーティションや出力ファイルサイズを決めるとき
- 「小さいファイルが大量」または「巨大な単一ファイル」でクエリが重いとき
- ETL(Glue・Spark 等)の出力設定を見直すとき
やり方
- Athena で読むオブジェクトのサイズ分布を確認する(小さすぎる/大きすぎる偏りがないか)
- 書き出し側でターゲットを おおむね 100MB〜1GB に寄せる
- 小さすぎる: オブジェクト数・メタデータ・計画コストが増える
- 大きすぎる: 並列度が落ち、1 ファイル失敗の影響も大きい
- 圧縮・列指向(Parquet 等)と合わせて、スキャン量とファイル数のバランスを取る
詳細な測定記録は @dkfj の『AWSの薄い本Ⅴ データ分析基盤を作ってみよう 性能測定編』(1KB〜10GB まで並べて測った記録)を参照。
注意点
- 「大きいほど良い」ではない。最適域はワークロードとファイル形式でずれる
- パーティション過多も別問題。ファイルサイズとパーティション設計はセットで見る
- 目安であり、本番は自データの EXPLAIN/スキャン量で検証する