AWS Athena
안녕하세요
오늘은 AWS Athena에 대하여 알려드리려고 합니다~
Amazon Athena는 표준 SQL을 사용하여 Amazon S3 에 있는 데이터를 직접 간편하게 분석할 수 있는 대화형 쿼리 서비스입니다.
Amazon S3에 저장된 데이터를 지정하고 표준 SQL을 사용하여 임시 쿼리를 실행하여 몇 초 안에 결과를 얻을 수 있습니다.
서버리스 서비스이므로 설정하거나 관리할 인프라가 없으며 실행한 쿼리에 대해서만 비용을 지불하면 됩니다.
자동으로 확장되어 쿼리를 병렬로 실행하여 대규모 데이터 집합과 복잡한 쿼리에서도 빠르게 결과를 얻을 수 있습니다.
Amazon S3에 저장된 비정형, 반정형 및 정형 데이터를 분석하는 데 도움을 줍니다.
예를 들면 CSV, JSON 또는 컬럼 방식 데이터 형식(예: Apache Parquet 및 Apache ORC)이 해당됩니다.
데이터를 집계하거나 Athena로 로드할 필요 없이 ANSI SQL을 사용한 임의 쿼리를 실행할 수 있습니다.
간편한 데이터 시각화를 위해 Amazon QuickSight와 통합되었습니다.
Athena를 사용하여 보고서를 생성하거나 JDBC 또는 ODBC 드라이버를 통해 연결된 비즈니스 인텔리전스 도구 또는 SQL 클라이언트로 데이터를 탐색할 수 있습니다.
Amazon S3에서 데이터에 대한 지속적 메타데이터 스토어를 제공하는 AWS Glue Data Catalog와 통합됩니다.
이렇게 하면 Amazon Web Services 계정 전체에서 사용할 수 있는 중앙 메타데이터 스토어를 기반으로 Athena에서 테이블과 쿼리 데이터를 생성하고 AWS Glue의 ETL 및 데이터 검색 기능을 통합할 수 있습니다.
데이터를 포맷하거나 인프라를 관리할 필요 없이 Amazon S3 직접 데이터에 대해 대화형 쿼리를 쉽게 실행할 수 있습니다.
인프라 또는 클러스터를 관리할 필요 없이 Amazon S3의 데이터에 대해 대화형 임시 SQL 쿼리를 실행하려면 Amazon Athena를 사용해야 합니다.
서버를 설정하거나 관리할 필요 없이 Amazon S3 데이터에 대한 임시 쿼리를 실행할 수 있는 가장 쉬운 방법을 제공합니다.
Amazon EMR
Amazon EMR을 사용하면 온프레미스 배포와 비교할 때 Hadoop, Spark 및 Presto와 같이 고도로 분산된 처리 프레임워크를 간단하고 비용 효율적으로 실행할 수 있습니다.
사용자 지정 애플리케이션과 코드를 실행하고 특정 컴퓨팅, 메모리, 스토리지 및 애플리케이션 파라미터를 정의하여 분석 요구 사항을 최적화할 수 있습니다.
SQL 쿼리를 실행하는 것 외에도 기계 학습, 그래프 분석, 데이터 변환, 데이터 스트리밍 및 사실상 코딩 가능한 거의 모든 업무의 애플리케이션을 위한 다양한 확장 데이터 처리 작업을 실행할 수 있습니다.
사용자 지정 코드를 사용하여 Spark, Hadoop, Presto 또는 Hbase 등의 최신 빅 데이터 처리 프레임워크를 사용하여 매우 큰 데이터 세트를 처리하고 분석하는 경우 Amazon EMR을 사용해야 합니다.
클러스터와 클러스터에 설치된 소프트웨어의 구성을 완벽하게 제어할 수 있습니다.
Amazon EMR을 사용하여 처리하는 데이터를 쿼리할 수 있습니다.
Athena의 데이터 카탈로그는 Hive 메타스토어와 호환됩니다.
EMR을 사용하고 이미 Hive 메타스토어가 있는 경우, Amazon Athena에서 DDL 문을 실행하고 Amazon EMR 작업에 영향을 주지 않고 즉시 데이터를 쿼리할 수 있습니다.
Amazon Redshift
Amazon Redshift와 같은 데이터 웨어하우스는 인벤토리 시스템, 금융 시스템, 소매 판매 시스템 등 다양한 소스의 데이터를 공통 형식으로 가져와서 장기간 저장해야 할 때 가장 좋은 선택입니다.
다수의 매우 큰 테이블의 조인이 필요한 고도로 구조화된 데이터에 대해 쿼리를 실행해야 하는 경우 Amazon Redshift Redshift를 선택하는 것이 좋습니다.
Athena에서 테이블과 데이터베이스는 기본 소스 데이터에 대한 스키마를 정의하는 메타데이터 정의를 위한 컨테이너입니다.
각 데이터 집합에 대한 테이블이 Athena에 있어야 합니다.
테이블의 메타데이터는 Amazon S3의 데이터 위치를 Athena에 알려주고, 데이터의 구조(예: 열 이름, 데이터 유형 및 테이블 이름)를 지정합니다. 데이터베이스는 테이블의 논리적 그룹이며 데이터 세트에 대한 메타데이터와 스키마 정보만 보유합니다.
쿼리하려는 각 데이터 세트에 대해 쿼리 결과를 얻고 반환하는 데 사용할 기본 테이블이 Athena에 있어야 합니다. 따라서 데이터를 쿼리하기 전에 테이블이 Athena에 등록되어 있어야 합니다. 자동 또는 수동으로 테이블을 만들면 등록이 이루어집니다.
테이블 생성 방법에 관계없이 테이블 생성 프로세스는 Athena를 통해 데이터 세트를 등록합니다. AWS Glue Data Catalog에서 이 등록이 이루어지며, 등록하면 Athena가 데이터에 대해 쿼리를 실행할 수 있게 됩니다.
AWS Glue는 테이블을 생성할 때 자신의 AWS Glue 데이터 카탈로그에 해당 테이블을 등록합니다. Athena는 AWS Glue 데이터 카탈로그를 사용하여 이 메타데이터를 저장하고 검색하며, 기본 데이터 세트를 분석하기 위해 쿼리를 실행할 때 사용합니다.
테이블을 만든 후에는 SQL SELECT 문을 사용하여 테이블을 쿼리해서 원본 데이터의 특정 파일 위치 가져오기 등을 수행할 수 있습니다.
쿼리 결과는 Amazon S3의 지정된 쿼리 결과 위치에 저장됩니다.
AWS Glue 데이터 카탈로그는 Amazon Web Services 계정 전반에서 액세스할 수 있습니다.
다른 AWS 서비스도 AWS Glue 데이터 카탈로그를 공유할 수 있으므로 Athena를 사용하여 조직 전체에서 생성된 데이터베이스와 테이블을 볼 수 있으며 그 반대의 경우도 마찬가지입니다.
또한 AWS Glue를 사용하면 자동으로 데이터 스키마를 찾고 데이터를 추출, 변환 및 로드(ETL)할 수 있습니다.
테이블 및 데이터베이스를 수동으로 생성하는 경우 Athena는 내부적으로 CREATE TABLE, CREATE DATABASE, DROP TABLE 등의 HiveQL 데이터 정의 언어(DDL) 문을 사용하여 AWS Glue Data Catalog에 테이블과 데이터베이스를 생성합니다.