如何从Lambda执行多行ATHENA查询

时间:2018-04-18 07:59:50

标签: lambda

我有Athena设置,我想安排一个lambda函数来触发Athena查询并将结果存储在S3中,但是,我在lambda中遇到语法错误

响应:

{
  "errorMessage": "Syntax error in module 'lambda_function'"
}

但同样适用于Athena Query编辑器。

以下是我正在尝试的内容:

def lambda_handler(event, context):
    query_1 ="Select REGEXP_EXTRACT(data,'[a-z]*[0-9]') as datacenter,
    .
    .
    FROM DATABASE.DATATABLE
    WHERE pool_id like 'POOL_ID%';"

    database = "DATABASE"
    s3_output = "s3://resultlocation/"

    client = boto3.client('athena')

    response = client.start_query_execution(QueryString = query_1,
                                        QueryExecutionContext={
                                            'Database': database
                                        },
                                        ResultConfiguration={
                                            'OutputLocation': s3_output
                                        }
                                        )
    return response

当我使用单行查询时,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

我修复了这个问题,在每一行的末尾添加了一个“\”。