외부 하이브 메타 스토어에 Athena 데이터 커넥터 사용 - Amazon Athena

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

외부 하이브 메타 스토어에 Athena 데이터 커넥터 사용

외부 Hive 메타스토어에 Amazon Athena 데이터 커넥터를 사용하여 Amazon S3 Apache Hive 메타스토어를 사용하는 데이터 세트를 쿼리할 수 있습니다. AWS Glue e의 데이터 카탈로그로 메타데이터를 마이그레이션할 필요가 없습니다. Athena 관리 콘솔에서 프라이빗 VPC 있는 Hive 메타스토어와 통신하는 Lambda 함수를 구성한 다음 메타스토어에 연결합니다. Lambda 에서 Hive 메타스토어로의 연결은 프라이빗 Amazon VPC 채널로 보호되며 퍼블릭 인터넷을 사용하지 않습니다. 자체 Lambda 함수 코드를 제공하거나 외부 Hive 메타스토어에 Athena 데이터 커넥터의 기본 구현을 사용할 수 있습니다.

기능 개요

외부 Hive 메타스토어에 대한 Athena 데이터 커넥터를 사용하여 다음 작업을 수행할 수 있습니다.

  • Athena 콘솔을 사용하여 사용자 지정 카탈로그를 등록하고 사용자 지정 카탈로그를 사용하여 쿼리를 실행합니다.

  • 다른 외부 Hive 메타스토어에 Lambda 함수를 정의하고 Athena 쿼리에서 조인합니다.

  • 동일한 Athena 쿼리에서 AWS Glue e의 데이터 카탈로그와 외부 Hive 메타스토어를 사용합니다.

  • 쿼리 실행 컨텍스트의 카탈로그를 현재 기본 카탈로그로 지정합니다. 이렇게 하면 쿼리의 데이터베이스 이름에 카탈로그 이름을 접두사로 붙일 필요가 없습니다. catalog.database.table 구문을 사용하는 대신 database.table을 사용할 수 있습니다.

  • 다양한 도구를 사용하여 외부 Hive 메타스토어를 참조하는 쿼리를 실행합니다. Athena 콘솔, AWS CLI, AWS SDK, Athena API, 업데이트된 Athena JDBC 및 ODBC 드라이버를 사용할 수 있습니다. 업데이트된 드라이버는 사용자 지정 카탈로그를 지원합니다.

API 지원

Athena 데이터 커넥터는 카탈로그 등록 API 작업 및 메타데이터 API 작업에 대한 지원이 포함되어 있습니다.

  • 카탈로그 등록— 외부 Hive 메타스토어에 대한 사용자 지정 카탈로그를 등록하고페더레이션 데이터 원본를 선택합니다.

  • Metadata— 메타데이터 API를 사용하여 AWS Glue b와 Athena 에 등록한 모든 카탈로그에 대한 데이터베이스 및 테이블 정보를 제공합니다.

  • Athena 자바 SDK 클라이언트— 카탈로그 등록 API, 메타데이터 API 및 카탈로그 지원을 사용하려면StartQueryExecution업데이트 된 Athena 자바 SDK 클라이언트에서 작업.

참조 구현

Athena 외부 Hive 메타스토어에 연결하는 Lambda 함수에 대한 참조 구현을 제공합니다. 참조 구현은 Athena Hive 메타스토어의 오픈 소스 프로젝트로 GitHub에서 제공됩니다.

참조 구현은 AWS SAR (서버리스 애플리케이션 리포지토리) 에서 다음 두 AWS SAM 애플리케이션으로 사용할 수 있습니다. SAR에서 이러한 애플리케이션 중 하나를 사용하여 Lambda 함수를 직접 만들 수 있습니다.

  • AthenaHiveMetastoreFunction— Uber Lambda 함수.jar파일을 사용합니다. “uber”JAR (종속성이있는 뚱뚱한 JAR 또는 JAR이라고도 함) 은.jar단일 파일에 Java 프로그램과 해당 종속성을 모두 포함하는 파일.

  • AthenaHiveMetastoreFunctionWithLayer— Lambda 레이어와 얇은 Lambda 함수.jar파일을 사용합니다.

Workflow

다음 다이어그램은 Athena 외부 Hive 메타스토어와 상호 작용하는 방법을 보여줍니다.


                Athena 외부 Hive 메타스토어와 상호 작용하는 방법.

이 워크플로우에서는 데이터베이스에 연결된 Hive 메타스토어가 VPC 내에 있습니다. Hive CLI를 사용하는 Hive 메타스토어를 관리하는 데 Hive Server2를 사용합니다.

Athena 나에서 외부 Hive 메타스토어를 사용하는 워크플로에는 다음 단계가 포함되어 있습니다.

  1. Athena 를 VPC 내에 있는 Hive 메타스토어에 연결하는 Lambda 함수를 생성합니다.

  2. Hive 메타스토어에 고유한 카탈로그 이름과 계정에 해당 함수 이름을 등록합니다.

  3. Athena DML 또는 카탈로그 이름을 사용하는 DDL 쿼리를 실행할 때 Athena 쿼리 엔진은 카탈로그 이름과 연결된 Lambda 함수 이름을 호출합니다.

  4. AWS PrivateLink 를 사용하여 Lambda 함수는 VPC 외부 Hive 메타스토어와 통신하고 메타데이터 요청에 대한 응답을 수신합니다. Athena 기본 AWS Glue le 데이터 카탈로그의 메타데이터를 사용하는 것처럼 외부 Hive 메타스토어의 메타데이터를 사용합니다.

고려 사항 및 제한

외부 Hive 메타스토어에 대한 Athena 데이터 커넥터를 사용하는 경우 다음 사항을 고려하십시오.

  • 외부 Hive 메타스토어에 대한 DDL 지원은 다음 문으로 제한됩니다.

    • DESCRIBE TABLE

    • SHOW COLUMNS

    • SHOW TABLES

    • SHOW SCHEMAS

    • SHOW CREATE TABLE

    • SHOW TBLPROPERTIES

    • SHOW PARTITIONS

  • 보유할 수 있는 등록된 카탈로그의 최대 수는 1,000개입니다.

  • 다음을 수행할 수 있습니다.CTAS를 사용하여 외부 Hive 메타스토어의 쿼리에서 AWS Glue le 테이블을 생성할 수 있지만 외부 Hive 메타스토어에 테이블을 생성할 수는 없습니다.

  • INSERT INTO를 사용하여 외부 Hive 메타스토어의 쿼리에서 AWS Glue le 테이블에 데이터를 삽입할 수 있지만 외부 Hive 메타스토어에 데이터를 삽입할 수는 없습니다.

  • Hive 뷰는 Athena 뷰와 호환되지 않으며 지원되지 않습니다.

  • Hive 메타스토어에 대한 Kerberos 인증은 지원되지 않습니다.

  • 외부 하이브 메타 스토어와 함께 JDBC 드라이버를 사용하거나연합된 쿼리를 포함하며,MetadataRetrievalMethod=ProxyAPIJDBC 연결 문자열에 를 추가합니다. JDBC 드라이버에 대한 자세한 내용은Athena 를 JDBC 드라이버와 함께 사용를 선택합니다.

Permissions

사전 구축된 사용자 지정 데이터 커넥터가 올바르게 작동하려면 다음 리소스에 액세스해야 할 수 있습니다. 사용하는 커넥터의 정보를 확인하여 VPC를 올바르게 구성했는지 확인합니다. Athena 쿼리를 실행하고 데이터 원본 커넥터를 만드는 데 필요한 IAM 권한에 대한 자세한 내용은 단원을 참조하십시오.외부 하이브 메타 스토어에 대한 Athena 데이터 커넥터에 대한 액세스 허용외부 Hive 메타스토어에 대한 Lambda 함수 액세스 허용를 선택합니다.

  • Amazon S3— Amazon S3의 Athena 쿼리 결과 위치에 쿼리 결과를 작성하는 것 외에도 데이터 커넥터는 Amazon S3 S3의 유출 버킷에 작성합니다. Amazon S3 위치에 대한 연결 및 권한이 필요합니다. 자세한 내용은 이 주제의 후반부에서 Amazon S3 에서 유출 위치 확인 단원을 참조하십시오.

  • Athena— 쿼리 상태를 확인하고 오버스캔을 방지하려면 액세스가 필요합니다.

  • AWS Glue— 커넥터가 보충 또는 기본 메타데이터에 AWS Glue e를 사용하는 경우 액세스가 필요합니다.

  • AWS Key Management Service

  • 정책— Hive 메타스토어, Athena 쿼리 연동 및 UDF에는AmazonAthenaFullAccess 관리형 정책를 선택합니다. 자세한 내용은 Athena 나의 Identity and Access Management 단원을 참조하세요.

Amazon S3 에서 유출 위치 확인

때문에limit를 사용하면 임계값보다 큰 응답이 Lambda 함수를 만들 때 지정한 Amazon S3 위치로 유출됩니다. Athena Amazon S3 에서이 응답을 직접 읽습니다.

참고

Athena Amazon S3 에서 응답 파일을 제거하지 않습니다. 응답 파일을 자동으로 삭제하도록 보존 정책을 설정하는 것이 좋습니다.