将机器学习(ML)与 Amazon Athena 结合使用 - Amazon Athena

将机器学习(ML)与 Amazon Athena 结合使用

通过将机器学习(ML)与 Amazon Athena 结合使用,您可以借助 Athena 编写将使用 Amazon SageMaker AI 运行机器学习(ML)推理的 SQL 语句。此功能简化了对 ML 模型的访问以进行数据分析,无需使用复杂的编程方法来运行推理。

要将机器学习(ML)与 Athena 结合使用,您可以使用 USING EXTERNAL FUNCTION 子句定义将机器学习(ML)与 Athena 结合的函数。该函数指向要使用的 SageMaker AI 模型端点,并指定要传递给模型的变量名称和数据类型。查询中的后续子句引用该函数以将值传递给模型。模型根据查询传递的值运行推理,然后返回推理结果。有关 SageMaker AI 以及 SageMaker AI 端点工作原理的信息,请参阅 Amazon SageMaker AI 开发人员指南

有关将 ML 与 Athena 和 SageMaker AI 推理结果结合使用来检测结果集中异常值的示例,请参阅 AWS 大数据博客文章:Detecting anomalous values by invoking the Amazon Athena machine learning inference function

注意事项和限制

  • 可用区域 – Athena ML 功能在支持 Athena 引擎版本 2 或更高版本的 AWS 区域 中可用。

  • SageMaker AI 模型端点必须接受并返回 text/csv – 有关数据格式的更多信息,请参阅《Amazon SageMaker 开发人员指南》中的 Common data formats for inference

  • Athena 不发送 CSV 标头 – 如果您的 SageMaker AI 端点是 text/csv,则您的输入处理程序不应假设输入的第一行是 CSV 标头。由于 Athena 不发送 CSV 标头,因此返回给 Athena 的输出将比 Athena 预期的少一行,从而导致错误。

  • SageMaker AI 端点扩展 – 确保引用的 SageMaker AI 模型端点已充分纵向扩展,以便 Athena 调用该端点。有关更多信息,请参阅《Amazon SageMaker AI 开发人员指南》中的 Automatically scale SageMaker AI models 和《Amazon SageMaker AI API 参考》中的 CreateEndpointConfig

  • IAM 权限 – 要运行指定将 ML 与 Athena 相结合的函数的查询,必须允许运行该查询的 IAM 主体为引用的 SageMaker AI 模型端点执行 sagemaker:InvokeEndpoint 操作。有关更多信息,请参阅 允许使用 Athena 访问机器学习

  • 机器学习与 Athena 相结合的函数不能直接在 GROUP BY 子句中使用