

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# Amazon Redshift 中用户定义的函数
<a name="user-defined-functions"></a>

您可以使用 SQL SELECT 子句或 Python 程序创建自定义标量用户定义函数 (UDF)。新函数存储在数据库中，可供任何具有足够权限的用户运行。您运行自定义标量 UDF 的方式与运行现有 Amazon Redshift 函数的方式大致相同。

对于 Python UDF，除了使用标准 Python 功能外，您还可以导入您自己的自定义 Python 模块。有关更多信息，请参阅 [适用于 UDF 的 Python 语言支持](udf-python-language-support.md)。请注意，Python 3 不适用于 Python UDF。要获得 Python 3 对 Amazon Redshift UDF 的支持，请改用 [标量 Lambda UDF](udf-creating-a-lambda-sql-udf.md)。

您还可以创建 AWS Lambda UDF 以将 Lambda 中定义的自定义函数用作 SQL 查询的一部分。Lambda UDF 使您能够编写复杂的 UDF 并与第三方组件集成。它们还可以帮助您克服当前 Python 和 SQL UDF 的一些局限性。例如，它们可以帮助您访问网络和存储资源，并编写更多完整的 SQL 语句。您可以使用 Lambda 支持的任何编程语言创建 Lambda UDF，如 Java、Go、PowerShell、Node.js、C\$1、Python 和 Ruby。或者您可以使用自定义运行时。

预设情况下，所有用户都可以执行 UDF。有关权限的更多信息，请参阅 [UDF 安全性和权限](udf-security-and-privileges.md)。

**Topics**
+ [UDF 安全性和权限](udf-security-and-privileges.md)
+ [防止 UDF 命名冲突](udf-naming-udfs.md)
+ [标量 SQL UDF](udf-creating-a-scalar-sql-udf.md)
+ [标量 Python UDF](udf-creating-a-scalar-udf.md)
+ [标量 Lambda UDF](udf-creating-a-lambda-sql-udf.md)
+ [用户定义函数（UDF）的应用场景示例](udf-example-uses.md)