2

S3 に寄木細工のファイルがあり、日付でパーティション分割されたバケットがあります。

次のクエリを使用します。

select
    count(1)
from logs.logs_prod
where partition_1 = '2019' and partition_2 = '03'

そのクエリを Athena で直接実行すると、10 秒未満で実行されます。しかし、Redshift で同じクエリを実行すると、3 分以上かかります。どちらも同じ正しい値を返します。この場合、そのパーティション内の行数は 80,000 未満です。

Athena と Redshift の両方のメタデータ ストアとして AWS Glue を使用しています。

Redshift のクエリ プランは次のとおりです。

QUERY PLAN
XN Limit  (cost=250000037.51..250000037.51 rows=1 width=8)
  ->  XN Aggregate  (cost=250000037.51..250000037.51 rows=1 width=8)
        ->  XN Partition Loop  (cost=250000000.00..250000035.00 rows=1000 width=8)
              ->  XN Seq Scan PartitionInfo of logs.logs_prod  (cost=0.00..15.00 rows=1 width=0)
                    Filter: (((partition_1)::text = '2019'::text) AND ((partition_2)::text = '03'::text))
              ->  XN S3 Query Scan logs_prod  (cost=125000000.00..125000010.00 rows=1000 width=8)
                    ->  S3 Aggregate  (cost=125000000.00..125000000.00 rows=1000 width=0)
                          ->  S3 Seq Scan logs.logs_prod location:"s3://logs-prod/" format:PARQUET  (cost=0.00..100000000.00 rows=10000000000 width=0)

これは Redshift Spectrum の構成の問題ですか? Redshift のクエリが Athena の近くで実行されない可能性はありますか?

4

1 に答える 1