Apache Hive 메타스토어에 Athena 연결 - Amazon Athena

Apache Hive 메타스토어에 Athena 연결

Apache Hive 메타스토어에 Athena를 연결하려면 Lambda 함수를 만들고 구성해야 합니다. 기본 구현의 경우 Athena 관리 콘솔에서 시작하는 모든 필수 단계를 수행할 수 있습니다.

참고

다음 절차를 수행하려면 Lambda 함수에 대한 사용자 지정 IAM 역할을 생성할 권한이 있어야 합니다. 사용자 지정 역할을 만들 수 있는 권한이 없는 경우 Athena 참조 구현을 사용하여 Lambda 함수를 별도로 만든 다음 AWS Lambda 콘솔에서 함수에 대한 기존 IAM 역할을 선택합니다. 자세한 내용은 기존 IAM 실행 역할을 사용하여 Athena를 Hive 메타스토어에 연결 단원을 참조하세요.

Hive 메타스토어에 Athena를 연결하려면
  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

  2. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.

    확장 메뉴를 선택합니다.
  3. 데이터 소스 및 카탈로그를 선택합니다.

  4. 콘솔 오른쪽 위에서 데이터 원본 생성(Create data source)을 선택합니다.

  5. 데이터 원본 선택(Choose data sources) 페이지에서 데이터 원본(Data source)에 대해 S3 - Apache Hive 메타스토어(S3 - Apache Hive metastore)를 선택합니다.

  6. Next(다음)를 선택합니다.

  7. 데이터 원본 세부 정보(Data source details) 섹션의 데이터 원본 이름(Data source name)에 Athena에서 데이터 원본을 쿼리할 때 SQL 문에 사용할 이름을 입력합니다. 이름은 127자까지 입력할 수 있으며 계정 내에서 고유해야 합니다. 생성 후에는 변경할 수 없습니다. 유효한 문자는 a-z, A-Z, 0-9, _(밑줄), @(앰퍼샌드) 및 -(하이픈)입니다. awsdatacatalog, hive, jmx, system 이름은 Athena에 예약되어 있으므로 데이터 원본 이름에 사용할 수 없습니다.

  8. Lambda 함수(Lambda function)에서 새 Lambda 함수 생성(Create a new Lambda function)을 선택한 다음AWS Lambda에서 새 Lambda 함수 생성(Create a new Lambda function)을 선택합니다.

    AWS Lambda 콘솔에서 AthenaHiveMetastoreFunction 페이지가 열립니다. 이 페이지에는 커넥터에 대한 자세한 정보가 포함되어 있습니다.

    AWS Lambda 콘솔의 AthenaHiveMetastoreFunction 페이지.
  9. 애플리케이션 설정(Application settings)에서 Lambda 함수에 대한 파라미터를 입력합니다.

    • LambdaFuncName – 함수의 이름을 제공합니다. myHiveMetastore를 예로 들 수 있습니다.

    • SpillLocation – Lambda 함수 응답 크기가 4MB를 초과하는 경우 분산 메타데이터를 보관할 이 계정의 Amazon S3 위치를 지정합니다.

    • HMSUris – 포트 9083에서 Thrift 프로토콜을 사용하는 Hive 메타스토어 호스트의 URI를 입력합니다. thrift://<host_name>:9083 구문을 사용합니다.

    • LambdaMemory - 128MB ~ 3008MB 사이의 값을 지정합니다. Lambda 함수는 사용자가 구성하는 메모리 양에 비례하여 할당된 CPU 주기입니다. 기본값은 1024입니다.

    • LambdaTimeout – 허용되는 최대 Lambda 호출 실행 시간을 1초 단위로 1~900초 범위에서 지정합니다(900초는 15분). 기본값은 300초(5분)입니다.

    • VPCSecurityGroupIds – Hive 메타스토어에 대한 VPC 보안 그룹 ID 목록을 입력합니다(쉼표로 구분).

    • VPCSubnetIds – Hive 메타스토어에 대한 VPC 서브넷 ID 목록을 입력합니다(쉼표로 구분).

  10. 이 앱은 사용자 지정 IAM 역할을 생성한다는 데 동의합니다(I acknowledge that this app creates custom IAM roles)를 선택하고 배포(Deploy)를 선택합니다.

    AWS Lambda 콘솔에서 Lambda 함수 앱 배포.

    배포가 완료되면 함수가 Lambda 애플리케이션 목록에 나타납니다. 이제 Hive 메타스토어 기능이 계정에 배포되었으므로 이를 사용하도록 Athena를 구성할 수 있습니다.

  11. <shared id="ATE"/> 콘솔의 데이터 원본 입력(Enter data sources) 페이지로 돌아갑니다.

  12. Lambda 함수 섹션에서 Lambda 검색 상자 옆에 있는 새로 고침 아이콘을 선택합니다. 사용 가능한 함수 목록을 새로 고치면 새로 만든 함수가 목록에 나타납니다.

  13. Lambda 콘솔에서 방금 생성한 함수의 이름을 선택합니다. Lambda 함수의 ARN이 표시됩니다.

  14. (선택 사항) 태그(Tags)에 대해 이 데이터 원본과 연결할 키-값 페어를 추가합니다. 태그에 대한 자세한 내용은 Athena 리소스 태깅 섹션을 참조하세요.

  15. Next(다음)를 선택합니다.

  16. 검토 및 생성 페이지에서 데이터 원본 세부 정보를 검토한 다음 데이터 원본 생성을 선택합니다.

  17. 데이터 원본 페이지의 데이터 원본 세부 정보 섹션에는 새 커넥터에 대한 정보가 표시됩니다.

    이제 지정한 데이터 원본 이름(Data source name)을 사용하여 <shared id="ATE"/> SQL 쿼리에서 Hive 메타스토어를 참조할 수 있습니다. SQL 쿼리에서 다음 예제 구문을 사용하여 hms-catalog-1을 앞에서 지정한 카탈로그 이름으로 바꿉니다.

    SELECT * FROM hms-catalog-1.CustomerData.customers
  18. 생성한 데이터 원본 보기, 편집 또는 삭제에 대한 자세한 내용은 데이터 소스 관리 섹션을 참조하세요.