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

将机器学习(ML)与 Athena 结合使用的语法

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

摘要

下面的语法显示了 USING EXTERNAL FUNCTION 子句,该子句指定了机器学习(ML)与 Athena 相结合的函数。

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

参数

USING EXTERNAL FUNCTION ml_function_name (variable1data_type[, variable2data_type][,...])

ml_function_name 定义函数名称,可以在后续查询子句中使用该函数名称。每个 variable data_type 都指定一个命名变量,且其相应的数据类型应可为 SageMaker AI 模型接受为输入。指定的数据类型必须是支持的 Athena 数据类型。

RETURNS data_type

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

SAGEMAKER 'sagemaker_endpoint'

sagemaker_endpoint 指定 SageMaker AI 模型的端点。

SELECT [...]ml_function_name(expression) [...]

将值传递给函数变量和 SageMaker AI 模型以返回结果的 SELECT 查询。ml_function_name 指定之前在查询中定义的函数,后跟进行计算以传递值的表达式。传递和返回的值必须与 USING EXTERNAL FUNCTION 子句中为函数指定的相应数据类型匹配。

示例

以下示例演示了使用机器学习(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;