【问题标题】:Redshift Lambda UDF not batching as expectedRedshift Lambda UDF 未按预期进行批处理
【发布时间】:2022-12-13 13:08:50
【问题描述】:

如何配置 redshift lambda UDF 以批处理请求?

在此页面Creating a scalar Lambda UDF - Amazon Redshift,它在注释部分说:

您可以配置对 Lambda 函数的多次调用进行批处理,以提高性能并降低成本。

我正在使用一个简单地返回给定输入的 hello world lambda 进行测试。这是我正在使用的 SQL ddl:

CREATE OR REPLACE EXTERNAL FUNCTION hello_world (varchar)
RETURNS varchar IMMUTABLE
LAMBDA 'redshift_udf_testy'
IAM_ROLE '<redacted>';

我的 UDF 工作正常,但它似乎没有批处理请求。我希望有以下查询:

select hello_world(generate_series(1, 500)::text);

一次将多行传递给 hello_world(因为 lambda UDF JSON api 指定它能够处理参数数组)。但是它对我的 lambda 函数执行了 500 次单独的调用(每个 lambda 调用都传入了一行), 这似乎完全不正确。

知道如何将其配置为批处理吗?文档顺便提到了它,但我找不到任何具体的东西。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-redshift


    【解决方案1】:

    您可以通过配置 MAX_BATCH_ROWS 和 MAX_BATCH_SIZE 来设置 Amazon Redshift 在单个 lambda 调用的单个批处理请求中发送的最大行数,以及 Amazon Redshift 在单个 lambda 调用的单个批处理请求中发送的数据负载的最大大小参数分别。可以在以下位置找到公共文档:https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2011-05-19
      • 2021-05-29
      • 2018-02-10
      • 1970-01-01
      相关资源
      最近更新 更多