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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用Machine Learning (ML) with Amazon Athena (Preview)

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

要使用 ML with Athena (Preview),请用 USING FUNCTION 子句定义一个 ML with Athena (Preview) 函数。该函数指向要使用的 SageMaker 模型终端节点,并指定要传递给模型的变量名称和数据类型。查询中的后续子句引用该函数以将值传递给模型。模型根据查询传递的值运行推理,然后返回推理结果。有关 SageMaker 以及如何 SageMaker 端点工作,请参阅 Amazon SageMaker 开发人员指南.

注意事项和限制

  • 可用地区 – TheThethe Athena ML功能可在 美国东部(弗吉尼亚北部), 亚太地区(孟买), 欧洲(爱尔兰),和 美国西部(俄勒冈) 地区。

  • AmazonAthenaPreviewFunctionality 工作组 – To use this feature in preview, you must create an Athena workgroup named AmazonAthenaPreviewFunctionality and join that workgroup. For more information, see 管理工作组.

  • SageMaker 模型终点必须接受和返回 text/csv – 有关数据格式的更多信息,请参阅 推论的常见数据格式Amazon SageMaker 开发人员指南.

  • SageMaker 终端节点扩展 – 确保引用的 SageMaker 模型终端节点已充分扩展,以便 Athena 调用终端节点。有关详细信息,请参阅 自动化比例 SageMaker 模型Amazon SageMaker 开发人员指南创建端点配置Amazon SageMaker API 参考.

  • IAM 权限 – 要运行指定 ML with Athena (Preview) 函数的查询,必须允许运行该查询的 IAM 委托人,以便为引用的 SageMaker 模型终端节点执行 sagemaker:InvokeEndpoint 操作。有关更多信息,请参阅 允许访问 ML with Athena (Preview)。)

  • ML with Athena (Preview) 功能不能用于 GROUP BY 直接条款

ML with Athena (Preview) 语法

USING FUNCTION 子句指定可由查询中的后续 SELECT 语句引用的 ML with Athena (Preview) 函数或多个函数。您定义函数名称、变量名称以及变量和返回值的数据类型。

Synopsis

以下示例说明了指定 ML with Athena (Preview) 函数的 USING FUNCTION 子句。

USING FUNCTION ML_function_name(variable1 data_type[, variable2 data_type][,...]) RETURNS data_type TYPE SAGEMAKER_INVOKE_ENDPOINT WITH (sagemaker_endpoint= 'my_sagemaker_endpoint')[, FUNCTION...][, ...] SELECT [...] ML_function_name(expression) [...]

Parameters

使用功能 ML_function_name(variable1 data_type[, variable2 data_type][,...])

ML_function_name 定义可在后续查询条款中使用的函数名称。每个 variable data_type 指定具有相应数据类型的命名变量, SageMaker 模型可以接受作为输入。指定 。data_type 作为支持的 Athena 数据类型 SageMaker 模型可以接受作为输入。

RETURNS data_type TYPE

data_type 指定 ML_function_name 作为 SageMaker 模型的输出返回到查询的 SQL 数据类型。

Sagemaker_Invoke_endpointwith(sagemaker_endpoint='my_sagemaker_endpoint')

my_sagemaker_endpoint 指定 SageMaker 模式。

SELECT [...] ML_function_name(expression) [...]

选择将值传递到功能变量和 SageMaker 模型返回结果。ML_function_name 指定查询前面定义的函数,然后是 expression 评估值是否符合值。传递和返回的值必须与 USING FUNCTION 子句中为函数指定的相应数据类型匹配。

Examples

以下示例演示了使用 ML with Athena (Preview) 的查询。

USING FUNCTION predict_customer_registration(age INTEGER) RETURNS DOUBLE TYPE SAGEMAKER_INVOKE_ENDPOINT WITH (sagemaker_endpoint = '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;