【问题标题】:Lambda function exclude .csv.metadata files from the outputLambda 函数从输出中排除 .csv.metadata 文件
【发布时间】:2021-07-21 21:42:16
【问题描述】:

我有一个 Lambda 函数,它执行 Athena 查询并将 csv 文件中的输出导出到 S3 存储桶。 现在在我的 S3 存储桶中,我得到了 2 个文件 .csv.csv.metadata

我的问题是如何排除 .csv.metadata 文件?

import boto3


def lambda_handler(event, context):
    query_1 =   "<MY-QUERY-HERE>"
                 
    database = "<MY-DB-HERE>"
    s3_output = "MY-S3-BUCKET"

    client = boto3.client('athena')

    response = client.start_query_execution(QueryString = query_1,
                                        QueryExecutionContext={
                                            'Database': database
                                        },
                                        ResultConfiguration={
                                            'OutputLocation': '<MY-S3-BUCKET>'
                                        }
                                        )
    return response

【问题讨论】:

  • 您打算在运行查询后如何使用 .csv 文件?根据这一点,我可以提供一些建议
  • 是的,我将使用我想要排除的 .csv 文件和 .csv.metadata。
  • 如果您使用的是 Athena,您只需在 lambda 中添加一行,即可重命名以下划线/点 (_/.) 开头的这些 *.metadata 文件。这将从 Athena 隐藏元数据文件。
  • 抱歉,我不明白我需要添加什么以及在哪里添加,是的,我在 Lambda 函数中使用 Athena 查询,正如您在代码中看到的那样。

标签: python amazon-web-services aws-lambda amazon-athena


【解决方案1】:

如果您不需要该文件,可以再添加 1 行以删除 S3 存储桶中的该文件。

编辑:你可以试试这个:

s3 = boto3.resource('s3')

s3.Object('your-bucket', 'your-key').delete()

因为根据文档,我们没有任何选项可以更改结果项:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html#Athena.Client.start_query_execution

【讨论】:

  • 我将此添加到我的代码中,但没有任何改变,元数据文件仍然存在。
  • 你能把代码贴在这里吗?我只是查看 boto3 的文档并使用此功能:boto3.amazonaws.com/v1/documentation/api/latest/reference/… 记得替换存储桶名称和密钥包含路径,以及创建客户端响应的语法 = client.delete_object( Bucket='examplebucket', Key='objectkey .jpg', ) 打印(响应)
  • 所以我需要替换我的“repsone = client.start_query_execution”?
  • 您需要在查询完成后删除文件 在您发布的代码中,您只是开始 查询,您不需要等待它完成。元数据文件是在 Athena 在执行结束时写入结果时写入的。在循环中使用get_query_execution,直到它的状态为SUCCEEDED(或FAILEDCANCELLED)——但请注意,只要查询运行,这将使您的 Lambda 函数运行时间更长且成本更高。
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多