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. Para obter mais informações sobre o Lambda, consulte o Guia do desenvolvedor do AWS Lambda. Para ter mais informações sobre o AWS Serverless Application Repository, consulte o Guia do desenvolvedor do AWS Serverless Application Repository.
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
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