Amazon Athena 페더레이션 쿼리 사용 - Amazon Athena

Amazon Athena 페더레이션 쿼리 사용

Amazon S3 외의 원본에 데이터가 있는 경우 Athena 연합 쿼리를 사용하여 데이터를 제자리에 쿼리하거나 여러 데이터 원본에서 데이터를 추출하여 Amazon S3에 저장하는 파이프라인을 구축할 수 있습니다. Athena 연합 쿼리를 사용하면 관계형, 비관계형, 객체 및 사용자 지정 데이터 원본에 저장된 데이터에 대해 SQL 쿼리를 실행할 수 있습니다.

Athena는 연합 쿼리를 실행하기 위해 AWS Lambda에서 실행되는 데이터 원본 커넥터를 사용합니다. 데이터 원본 커넥터는 대상 데이터 원본과 Athena 간에 변환할 수 있는 코드입니다. 커넥터는 Athena의 쿼리 엔진 확장으로 생각할 수 있습니다. 사전 구축된 Athena 데이터 원본 커넥터는 Amazon CloudWatch Logs, Amazon DynamoDB, Amazon DocumentDB, Amazon RDS, JDBC 호환 관계형 데이터베이스(Apache 2.0 라이선스에 따른 MySQL, PostgreSQL 등)와 같은 데이터 원본을 위한 것입니다. Athena Query Federation SDK를 사용하여 사용자 지정 커넥터를 작성할 수도 있습니다. 데이터 원본 커넥터를 선택 및 구성하여 계정에 배포하려면 Athena 및 Lambda 콘솔 또는 AWS Serverless Application Repository을 사용할 수 있습니다. 데이터 원본 커넥터를 배포한 후 커넥터는 SQL 쿼리에서 지정할 수 있는 카탈로그와 연결됩니다. 여러 카탈로그의 SQL 문을 결합하고 단일 쿼리로 여러 데이터 원본에 적용할 수 있습니다.

데이터 원본에 대해 쿼리가 제출되면, Athena는 해당 커넥터를 호출하여 읽어야 하는 테이블의 일부를 식별하고, 병렬화를 관리하며, 필터 조건자를 푸시다운합니다. 쿼리를 제출하는 사용자를 기반으로 커넥터는 특정 데이터 요소에 대한 액세스를 제공하거나 제한할 수 있습니다. 커넥터는 쿼리에서 요청한 데이터를 반환하기 위한 형식으로 Apache Arrow를 사용합니다. 이렇게 하면 커넥터가 C, C++, Java, Python, Rust 같은 언어로 구현될 수 있습니다. 커넥터는 Lambda에서 처리되므로 Lambda에서 액세스할 수 있는 클라우드 또는 온프레미스의 모든 데이터 원본에서 데이터에 액세스하는 데 사용할 수 있습니다.

사용자 고유의 데이터 원본 커넥터를 작성하려면 Athena Query Federation SDK를 사용하여 Amazon Athena가 제공 및 유지 관리하는 사전 구축된 커넥터 중 하나를 사용자 지정할 수 있습니다. GitHub 리포지토리에서 소스 코드의 복사본을 수정한 다음 Connector publish tool(커넥터 게시 도구)를 사용하여 자체 AWS Serverless Application Repository 패키지를 만들 수 있습니다.

참고

타사 개발자가 Athena Query Federation SDK를 사용하여 데이터 원본 커넥터를 작성한 경우도 있을 수 있습니다. 이러한 데이터 원본 커넥터와 관련한 지원 또는 라이선스 문제는 커넥터 공급업체에 문의하세요. 이러한 커넥터는 AWS에서 테스트 또는 지원되지 않습니다.

Athena에서 작성 및 테스트한 데이터 원본 커넥터 목록은 사용 가능한 데이터 소스 커넥터 섹션을 참조하세요.

사용자 고유의 데이터 원본 커넥터 작성에 대한 자세한 내용은 GitHub의 Athena 커넥터 예제를 참조하세요.

고려 사항 및 제한

  • 엔진 버전 - Athena 페더레이션 쿼리는 Athena 엔진 버전 2 이상에서만 지원됩니다. Athena 엔진 버전에 대한 자세한 내용은 Athena 엔진 버전 관리 단원을 참조하세요.

  • 보기 - 페더레이션된 데이터 소스에서 보기를 생성하고 쿼리할 수 있습니다. 페더레이션된 보기는 기본 데이터 소스가 아닌 AWS Glue에 저장됩니다. 자세한 내용은 페더레이션 뷰 쿼리 단원을 참조하십시오.

  • 구분 식별자 - 구분 식별자(인용 식별자로도 불림)는 큰 따옴표(")로 시작해서 끝납니다. 현재 Athena의 페더레이션 쿼리에는 구분된 식별자가 지원되지 않습니다.

  • 쓰기 작업 - INSERT INTO 같은 쓰기 작업은 지원되지 않습니다. 이를 실행하려고 하면 이 작업은 현재 외부 카탈로그에서 지원되지 않습니다(This operation is currently not supported for external catalogs)라는 오류 메시지가 표시될 수 있습니다.

  • 요금 – 요금 정보는 Amazon Athena 요금을 참조하세요.

  • JDBC 드라이버 - JDBC 드라이버와 함께 연합 쿼리나 외부 Hive 메타스토어를 사용하려면 JDBC 연결 문자열에 MetadataRetrievalMethod=ProxyAPI를 포함해야 합니다. JDBC 드라이버에 대한 자세한 내용은 JDBC로 Amazon Athena에 연결 섹션을 참조하세요.

  • Secrets Manager – AWS Secrets Manager에서 Athena 연합 쿼리 기능을 사용하려면 Secrets Manager에 대해 Amazon VPC 프라이빗 엔드포인트를 구성해야 합니다. 자세한 내용은 AWS Secrets Manager 사용 설명서Secrets Manager VPC 프라이빗 엔드포인트 생성을 참조하세요.

필요한 권한

데이터 원본 커넥터가 올바르게 작동하려면 다음 리소스에 액세스해야 할 수 있습니다. 사전 구축된 커넥터를 사용하는 경우 커넥터의 정보를 확인하여 VPC를 올바르게 구성했는지 확인합니다. 또한 쿼리를 실행하고 커넥터를 만드는 IAM 보안 주체에게 필요한 작업에 대한 권한이 있는지 확인합니다. 자세한 내용은 Athena 페더레이션 쿼리에 대한 액세스 허용: 정책 예제 단원을 참조하세요.

  • Amazon S3 – 쿼리 결과를 Amazon S3의 Athena 쿼리 결과 위치에 작성하는 것 외에도 데이터 커넥터는 Amazon S3의 유출 버킷에 작성합니다. 이 Amazon S3 위치에 대한 연결 및 권한이 필요합니다. 각 커넥터 및 S3 수명 주기 구성에 대해 디스크로 유출 암호화를 사용하여 더 이상 필요하지 않은 유출된 데이터를 만료시키는 것이 좋습니다.

  • Athena – 데이터 원본은 쿼리 상태를 확인하고 오버스캔을 방지하기 위해 Athena와 양방향으로 연결해야 합니다.

  • AWS Glue Data Catalog – 커넥터가 보충 또는 기본 메타데이터에 데이터 카탈로그를 사용하는 경우 연결 및 권한이 필요합니다.

  • Amazon ECR – 데이터 소스 커넥터 Lambda 함수는 Amazon ECR 리포지토리의 Amazon ECR 이미지를 사용합니다. 커넥터를 배포하는 사용자는 ecr:BatchGetImageecr:GetDownloadUrlForLayer 권한이 있어야 합니다. 자세한 내용은 AWS Lambda 개발자 안내서Amazon ECR 권한 섹션을 참조하세요.

비디오

Athena 연합 쿼리 사용에 대해 자세히 알아보려면 다음 동영상을 시청하세요.

동영상: Amazon QuickSight에서 Amazon Athena의 연합 쿼리 결과 분석

다음 동영상은 Amazon QuickSight에서 Athena 연합 쿼리의 결과를 분석하는 방법을 보여 줍니다.

동영상: 게임 분석 파이프라인

다음 동영상은 Amazon Athena 연합 쿼리를 사용하여 게임 및 서비스의 원격 측정 데이터를 수집, 저장, 분석하기 위해 확장형 서버리스 데이터 파이프라인을 배포하는 방법을 보여줍니다.