将 Machine Learning (ML) 与 Amazon Athena 结合使用 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Machine Learning (ML) 与 Amazon Athena 结合使用

Amazon Athena 的 Machine Learning (ML) 让您可以使用 Athena 编写使用 Amazon SageMaker 运行 Machine Learning (ML) 推理的 SQL 语句。此功能简化了对 ML 模型的访问以进行数据分析,无需使用复杂的编程方法来运行推理。

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

有关使用 ML 与 Athena 和 SageMaker 推理结果集中的异常值的示例,请参阅Amazon大数据博客文章通过调用 Amazon Athena 机器学习推理函数来检测异常值

注意事项和限制

  • 可用区— Athena ML 功能是在支持 Athena 引擎版本 2 的区域中可用的功能。有关列表Amazon支持 Athena 引擎版本 2 的地区,请参阅Athena 引擎版本 2

  • SageMaker 模型终端节点必须接受并返回text/csv— 有关数据格式的更多信息,请参阅用于推理的常见数据格式中的Amazon SageMaker 开发人员指南

  • SageMaker 终端节点扩展— 确保引用的 SageMaker 模型终端节点已充分扩展,以便调用 Athena 终端节点。有关更多信息,请参阅 。自动扩展 SageMaker 模型中的Amazon SageMaker 开发人员指南CreateEndpointConfig中的Amazon SageMaker API 参考

  • IAM 权限— 要运行使用 Athena 函数指定 ML 的查询,必须允许运行该查询的 IAM 委托人,以便执行sagemaker:InvokeEndpoint操 SageMaker。有关更多信息,请参阅 允许访问 Athena 的 ML

  • HAVINAthena 函数的 ML 不能在GROUP BY直接子句

ML 与 Athena 语法

这些区域有:USING EXTERNAL FUNCTION子句指定了 Athena 函数或多个可由后续SELECT语句。您定义函数名称、变量名称以及变量和返回值的数据类型。

Synopsis

以下语法显示了USING EXTERNAL FUNCTION子句,该子句指定带有 Athena 函数的 ML。

USING EXTERNAL FUNCTION ml_function_name (variable1 data_type[, variable2 data_type][,...]) RETURNS data_type SAGEMAKER 'sagemaker_endpoint' SELECT ml_function_name()

Parameters

使用外部函数ml_功能名称(变量 1 data_type[,变量 2 data_type] [,...])

ml_功能名称定义函数名称,可以在后续查询子句中使用该函数名称。EACH变量数据类型指定了一个命名变量及其相应的数据类型,SageMaker 模型接受该变量作为输入。指定的数据类型必须是支持的 Athena 数据类型。

RETURNS data_type

data_type指定 SQL 数据类型ml_功能名称作为 SageMaker 模型的输出返回到查询。

SAGEMAKER名称制造者端点'

名称制造者端点指定 SageMaker 模型的终端节点。

选择 [...]ml_功能名称(expression) [...]

将值传递给函数变量和 SageMaker 模型以返回结果的 SELECT 查询。ml_功能名称指定前面在查询中定义的函数,后跟expression,被评估为传递值。传递和返回的值必须与 USING EXTERNAL FUNCTION 子句中为函数指定的相应数据类型匹配。

Example

以下示例演示了使用 ML 与 Athena 的查询。

USING EXTERNAL FUNCTION predict_customer_registration(age INTEGER) RETURNS DOUBLE SAGEMAKER 'xgboost-2019-09-20-04-49-29-303' SELECT predict_customer_registration(age) AS probability_of_enrolling, customer_id FROM "sampledb"."ml_test_dataset" WHERE predict_customer_registration(age) < 0.5;

客户使用示例

以下视频使用 Amazon Athena 的预览版 Machine Learning (ML),展示了您可以在 Athena 中使用 SageMaker 的方式。

预测客户流失

以下视频展示了如何将 Athena 与 Amazon SageMaker 的机器学习功能相结合,以预测客户流失。

检测僵尸网

以下视频展示了一家公司如何使用 Amazon Athena 和 Amazon SageMaker 来检测僵尸网络。