

# Consultar com funções definidas pelo usuário
<a name="querying-udf"></a>

As funções definidas pelo usuário (UDFs) no Amazon Athena permitem criar funções personalizadas para processar registros ou grupos de registros. Uma UDF aceita parâmetros, executa o trabalho e retorna um resultado.

Para usar uma UDF no Athena, escreva uma cláusula `USING EXTERNAL FUNCTION` antes de uma instrução `SELECT` em uma consulta SQL. A instrução `SELECT` faz referência à UDF e define as variáveis que são passadas para a UDF quando a consulta é executada. A consulta SQL invoca uma função do Lambda usando o runtime Java ao chamar a UDF. As UDFs são definidas dentro da função do Lambda como métodos em um pacote de implantação Java. É possível definir várias UDFs no mesmo pacote de implantação Java para uma função do Lambda. Você também especifica o nome da função do Lambda na cláusula `USING EXTERNAL FUNCTION`.

Você tem duas opções para implantar uma função do Lambda para UDFs do Athena. É possível implantar a função diretamente no Lambda ou usar o AWS Serverless Application Repository. Para encontrar as funções do Lambda existentes para UDFs, pesquise no AWS Serverless Application Repository público ou em seu repositório privado e implante-as no Lambda. Você também pode criar ou modificar o código-fonte Java, empacotá-lo em um arquivo JAR e implantá-lo usando o Lambda ou o AWS Serverless Application Repository. Para ver exemplos de código-fonte e pacotes Java para você começar, consulte [Criar e implantar uma UDF com o Lambda](udf-creating-and-deploying.md). Para obter mais informações sobre o Lambda, consulte o [Guia do desenvolvedor do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/). Consulte mais informações sobre o AWS Serverless Application Repository no [Guia do desenvolvedor do AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/).

Para ver um exemplo que usa UDFs com o Athena para traduzir e analisar texto, consulte o artigo no blog do Machine Learning da AWS: [Traduzir e analisar texto usando funções SQL com Amazon Athena, Amazon Translate e Amazon Comprehend](https://aws.amazon.com/blogs/machine-learning/translate-and-analyze-text-using-sql-functions-with-amazon-athena-amazon-translate-and-amazon-comprehend/) (em inglês) ou assista a [video](udf-videos.md#udf-videos-xlate).

Para ver um exemplo de uso de UDFs para estender consultas geoespaciais no Amazon Athena, consulte [Estenda consultas geoespaciais no Amazon Athena com UDFs e AWS Lambda](https://aws.amazon.com/blogs/big-data/extend-geospatial-queries-in-amazon-athena-with-udfs-and-aws-lambda/) no *Blog de Big Data da AWS*.

**Topics**
+ [Vídeos sobre UDFs no Athena](udf-videos.md)
+ [Considerações e limitações](udf-considerations-limitations.md)
+ [Consultar com uso da sintaxe de consulta de UDFs](udf-query-syntax.md)
+ [Criar e implantar uma UDF com o Lambda](udf-creating-and-deploying.md)