Consultar com funções definidas pelo usuário
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