使用glueContext python从AWS dynamoDB获取记录的优化

问题描述 投票:0回答:1

我编写了以下代码来从 DynamoDB 获取记录并对列部门应用过滤器。但这里的问题是,在获取所有记录时,它会扫描整个 AWS DynamoDB 表,这会带来成本开销。我想对此进行优化,以仅获取具有列 department 的记录。 有人可以帮我解决这个问题吗?更好的优化方法也值得赞赏。

def fetch_data(table_name):
    df = glueContext.create_dynamic_frame_from_options(
          connection_type="dynamodb"
          connection_options = {
              "dynamodb.input.tableName" : table_name,
              "dynamodb.throughput.read.percent":"1.0"
          }
      ).toDF()
     return df.filter(df.department == "Finance") if df.count() > 0 else df
python amazon-web-services amazon-dynamodb aws-glue
1个回答
0
投票

department
列上添加 GSI,并使用分页查询 GSI,然后创建 Spark 数据帧。这样做将解决您在数据库上扫描的问题

© www.soinside.com 2019 - 2024. All rights reserved.