You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue读取Redshift大数据的性能问题及并行读取优化咨询

关于AWS Glue从Redshift并行读取数据的问题

初始问题

我正尝试通过AWS Glue作业执行查询从Redshift表读取数据。当前读取数据时生成的DataFrame仅含1个分区,读取耗时极长(读取操作基于包含多表关联的复杂查询)。

使用的代码如下:

df = spark.read \
          .format("jdbc") \
          .option("url", url) \
          .option("query", query) \
          .option("numPartitions", 10) \
          .option("fetchsize", "10000") \
          .option("batchsize", "10000") \
          .load()

我已设置numPartitions为10,但仍以单分区读取全部数据,不清楚该参数未生效的原因。恳请帮助分析numPartitions无效的原因,以及如何实现从Redshift读取数据的并行化以提升JDBC读取性能。另外,通过spark.read.jdbc()传入复杂查询是否为读取Redshift数据的最佳方式?

更新内容

我尝试了相关建议,但仍无任何改善。作业始终仅运行2个执行器(1个用于驱动节点,1个用于工作节点)。如何提升读取并行度?我尝试了以下配置但未获改善,希望实现10-20个执行器的读取并行,恳请提供建议。

使用的代码如下:

DF_options  = {
                "connectionName": connection,
                "url": url,
                "sampleQuery": query,
                "user": user,
                "password": pwd,
                "redshiftTmpDir": "s3://bucket/temp/",
                "hashfield": "location",
                "hashexpression": "id",
                "hashpartitions": "5"

        }

DF = glueContext.create_dynamic_frame_from_options(
                 connection_type="redshift", 
                 connection_options=DF_options,
                 transformation_ctx="DF"
     )

内容的提问来源于stack exchange,提问作者Bab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:00:09