사용자 정의 함수를 사용한 쿼리
Amazon Athena의 사용자 정의 함수(UDF)를 사용하면 사용자 지정 함수를 만들어 레코드 또는 레코드 그룹을 처리할 수 있습니다. UDF는 파라미터를 수락하고 작업을 수행한 다음 결과를 반환합니다.
Athena에서 UDF를 사용하려면 SQL 쿼리의 SELECT
문 앞에 USING EXTERNAL FUNCTION
절을 작성합니다. SELECT
문은 UDF를 참조하고 쿼리가 실행될 때 UDF에 전달되는 변수를 정의합니다. SQL 쿼리는 UDF를 호출할 때 Java 런타임을 사용하여 Lambda 함수를 호출합니다. UDF는 Lambda 함수 내에 Java 배포 패키지의 메서드로 정의됩니다. Lambda 함수에 대해 동일한 Java 배포 패키지에 여러 UDF를 정의할 수 있습니다. 또한 USING EXTERNAL FUNCTION
절에 Lambda 함수의 이름을 지정합니다.
Athena UDF에 대한 Lambda 함수를 배포하는 데는 두 가지 옵션이 있습니다. Lambda를 사용하여 함수를 직접 배포하거나 AWS Serverless Application Repository을 사용할 수 있습니다. UDF에 대한 기존 Lambda 함수를 찾으려면 퍼블릭 AWS Serverless Application Repository 또는 프라이빗 리포지토리를 검색한 다음 Lambda에 배포하면 됩니다. 또한 Java 소스 코드를 생성 또는 수정하거나, JAR 파일로 패키지하거나, Lambda 또는 AWS Serverless Application Repository을 사용하여 배포할 수 있습니다. 시작하기 위한 Java 소스 코드 및 패키지 예제는 Lambda를 사용하여 UDF 생성 및 배포 단원을 참조하세요. Lambda에 대한 자세한 내용은 AWS Lambda 개발자 안내서를 참조하세요. AWS Serverless Application Repository에 대한 자세한 내용은 AWS Serverless Application Repository개발자 안내서 단원을 참조하세요.
Athena에서 UDF를 사용하여 텍스트를 번역하고 분석하는 예제는 AWS 기계 학습 블로그 항목 Translate and analyze text using SQL functions with Amazon Athena, Amazon Translate, and Amazon Comprehend
Amazon Athena에서 UDF를 사용하여 지리 공간 쿼리를 확장하는 예제는 AWS 빅 데이터 블로그의 Extend geospatial queries in Amazon Athena with UDFs and AWS Lambda