Consulta con funciones definidas por el usuario
Las funciones definidas por el usuario (UDF) en Amazon Athena le permiten crear funciones personalizadas para procesar registros o grupos de registros. Una UDF acepta parámetros, realiza el trabajo y, a continuación, devuelve un resultado.
Para utilizar una UDF en Athena, escriba una cláusula USING EXTERNAL FUNCTION
antes de una instrucción SELECT
en una consulta SQL. La instrucción SELECT
hace referencia a la UDF y define las variables que se pasan a la UDF cuando se ejecuta la consulta. La consulta SQL invoca una función de Lambda mediante el tiempo de ejecución de Java cuando llama a la UDF. Las UDF se definen dentro de la función de Lambda como métodos en un paquete de implementación de Java. Se pueden definir varias UDF en el mismo paquete de implementación de Java para una función de Lambda. También se especifica el nombre de la función de Lambda en la cláusula USING EXTERNAL FUNCTION
.
Tiene dos opciones para implementar una función de Lambda para UDF de Athena. Puede implementar la función directamente mediante Lambda, o puede usar AWS Serverless Application Repository. Para buscar funciones de Lambda existentes para UDF, puede buscar en el repositorio público AWS Serverless Application Repository o su repositorio privado y, a continuación, realizar la implementación en Lambda. También puede crear o modificar el código fuente Java, empaquetarlo en un archivo JAR e implementarlo mediante Lambda o AWS Serverless Application Repository. Para ver un ejemplo de código fuente Java y paquetes para empezar, consulte Creación e implementación de una UDF mediante Lambda. Para obtener más información acerca de Lambda, consulte la Guía para desarrolladores de AWS Lambda. Para obtener más información sobre AWS Serverless Application Repository, consulte la Guía para desarrolladores de AWS Serverless Application Repository.
Para ver un ejemplo que utiliza UDF con Athena para traducir y analizar texto, consulte el artículo del blog de Machine Learning de AWS Traducir y analizar texto mediante funciones SQL con Amazon Athena, Amazon Translate y Amazon Comprehend
Para ver un ejemplo del uso de UDF a fin de ampliar las consultas geoespaciales en Amazon Athena, consulte Extend geospatial queries in Amazon Athena with UDFs and AWS Lambda