CREATE FUNCTION - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

CREATE FUNCTION

Amazon Kinesis Data Analytics 提供了一函数,还允许用户通过用户定义的函数(UDF)扩展其功能。Amazon Kinesis Data Analytics 仅支持在 SQL 中定义的 UDF。

用户定义的函数可以使用完全限定名称调用,也可以仅使用函数名调用。

传递给用户定义函数或转换的值(或从)返回的数据类型必须与相应的参数定义完全相同。换句话说,在向用户定义函数传递参数(或从中返回值)时不允许隐式转换。

用户定义函数 (UDF)

用户定义的函数可以实现复杂的计算,获取零个或多个标量参数并返回标量结果。UDF 的运行方式类似于内置函数,例如 FLOOR () 或 LOWER ()。对于 SQL 语句中每次出现用户定义的函数,每行调用一次 UDF,其标量参数:该行中的常量或列值。

语法

CREATE FUNCTION ''<function_name>'' ( ''<parameter_list>'' )  RETURNS ''<data type>''  LANGUAGE SQL  [ SPECIFIC ''<specific_function_name>''  | [NOT] DETERMINISTIC ]  CONTAINS SQL  [ READS SQL DATA ]  [ MODIFIES SQL DATA ]  [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]    RETURN ''<SQL-defined function body>''

SPECIAL 分配一个在应用程序中是唯一的特定函数名称。请注意,常规函数名称不必是唯一的(两个或多个函数可以共享相同的名称,只要它们可以通过其参数列表进行区分)。

DEFERMINISTIC /NOT DEPERMINISTIC 表示函数是否始终会为一组给定的参数值返回相同的结果。您的应用程序可能会将其用于查询优化。

读取 SQL 数据和修改 SQL 数据分别表示该函数是否可能读取或修改 SQL 数据。如果函数在未指定 READS SQL DATA 的情况下尝试从表或流中读取数据,或者在未指定 MODIFIES SQL DATA 的情况下插入流或修改表,则会引发异常。

在 NULL 输入时返回 NULL 和 NULL INPUT 上调用表示该函数是否被定义为如果其任何参数为空则返回空值。如果未指定,则默认为 NULL INPUT 时调用。

SQL 定义的函数体仅由一个 RETURN 语句组成。

示例

CREATE FUNCTION get_fraction( degrees DOUBLE )    RETURNS DOUBLE    CONTAINS SQL    RETURN degrees - FLOOR(degrees) ;