【问题标题】:How to invoke athena triggered automatically by lambda when objects are updated in the s3 bucket?如何在 s3 存储桶中更新对象时调用 lambda 自动触发的雅典娜?
【发布时间】:2019-02-14 15:55:30
【问题描述】:

我有以下 2 个用例适用于此

案例 1. 我需要单独调用 lambda 来调用 athena 来对 s3 数据执行查询?问题:如何通过api单独调用lambda?

案例 2。每当文件复制到已映射到 athena 的同一个 s3 存储桶时,我需要 lambda 函数来调用 athena?

我正在参考以下链接来执行相同的操作以在 athena 上执行 Lambda 操作

链接: https://dev.classmethod.jp/cloud/run-amazon-athenas-query-with-aws-lambda/

案例2:以下是例如想要整合:

s3-1 中的文件是 sales.csv - 我会通过从其他 s3-2 复制数据来更新销售详细信息。 s3-1 数据中定义的模式/列将保持不变。 所以当我将一些文件复制到映射到 athena 的相同 s3 数据时,lambda 应该调用 athena 来执行查询

是否可以提供更好的方法来实现上述情况?

谢谢

【问题讨论】:

  • 欢迎来到 StackOverflow! “自定义列表中的任何事件”是什么意思?您如何调用 Lambda 函数?它似乎正在从传入的事件中检索name,并在 Athena 查询中使用它。你到底想达到什么目的?
  • 嗨@JohnRotenstein 我想要实现的是,如果我们更新已经映射到 athena 数据库的同一个 s3 buck 中的数据,如何使用 lambda 自动调用 athena 上的查询?如果我的用例在这种情况下无法应用,请纠正我
  • 因此,您的用例似乎是:将文件添加到 Amazon S3 存储桶时,使用 Amazon S3 事件触发 Lambda 函数。然后 Lambda 函数将调用 Athena 以对上传的数据文件执行查询。那是对的吗?问题:文件将始终是同一个文件,还是可能有不同的名称?我这样问是因为 Athena 在运行查询之前需要一个CREATE TABLE。此外,它只会查询一个文件,还是会查询一个目录中的多个文件?随时编辑您的问题以提供更多详细信息。
  • @JohnRotenstein 我已经编辑了问题,提出了我想要实现的 2 个案例。请让我知道是否清楚提供解决方案?谢谢

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


【解决方案1】:

案例 1

可以通过 invoke() 命令直接调用 AWS Lambda。这可以通过AWS Command-Line Interface (CLI) 或使用 AWS 开发工具包的编程语言来完成。

案例 2

可以在存储桶上配置 Amazon S3 事件,以便在上传文件时自动触发 AWS Lambda 函数。该事件向 Lambda 函数提供存储桶名称和文件名(对象名称)。

Lambda 函数可以从 event 记录中提取这些详细信息,然后可以在 Amazon Athena 命令中使用该信息。

请注意,如果文件名每次都不同,则需要CREATE TABLE命令才能通过SELECT命令查询数据。

一般评论

Lambda 函数最多可以运行 15 分钟,因此请确保 Athena 查询不会超过此时间。这不是对 AWS Lambda 函数的特别有效使用,因为它将在函数调用期间计费,即使它只是在等待 Athena 完成。

另一个选项是让 Lambda 函数直接处理文件,假设查询不是特别复杂。例如,Lambda 函数可以将文件下载到临时存储(最大 500MB),通读文件,进行一些计算(例如,将某些列的总和相加),然后将结果存储在某个地方。

【讨论】:

    【解决方案2】:

    下一步是为您的 lambda 创建一个端点,您可以使用 aws-apigateway 来实现。

    另一方面,使用亚马逊控制台或亚马逊 cli,您可以调用 lambda 进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2019-10-24
      • 2019-10-26
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      相关资源
      最近更新 更多