Amazon Data Firehose 예제 - Amazon Athena

Amazon Data Firehose 예제

Firehose를 사용하여 데이터를 Amazon S3로 전송하는 경우 기본 구성은 다음 예제와 같은 키를 사용하여 객체를 작성합니다.

s3://amzn-s3-demo-bucket/prefix/yyyy/MM/dd/HH/file.extension

새 데이터가 수신될 때 AWS Glue Data Catalog에 추가하는 대신에 쿼리할 때 파티션을 자동으로 찾는 Athena 테이블을 생성하려면 파티션 프로젝션을 사용할 수 있습니다.

다음 CREATE TABLE 예제에서는 기본 Firehose 구성을 사용합니다.

CREATE EXTERNAL TABLE my_ingested_data ( ... ) ... PARTITIONED BY ( datehour STRING ) LOCATION "s3://amzn-s3-demo-bucket/prefix/" TBLPROPERTIES ( "projection.enabled" = "true", "projection.datehour.type" = "date", "projection.datehour.format" = "yyyy/MM/dd/HH", "projection.datehour.range" = "2021/01/01/00,NOW", "projection.datehour.interval" = "1", "projection.datehour.interval.unit" = "HOURS", "storage.location.template" = "s3://amzn-s3-demo-bucket/prefix/${datehour}/" )

CREATE TABLE 문의 TBLPROPERTIES 절은 Athena에 다음을 알려줍니다.

  • 테이블을 쿼리할 때 파티션 프로젝션 사용

  • 파티션 키 datehourdate 형식입니다(선택적 시간 포함).

  • 날짜 형식 지정 방법

  • 날짜 시간 범위입니다. 값을 하이픈이 아닌 쉼표로 구분해야 합니다.

  • Amazon S3에 대한 데이터를 찾을 수 있는 위치

테이블을 쿼리할 때 Athena는 datehour에 대한 값을 계산하고 스토리지 위치 템플릿을 사용하여 파티션 위치 목록을 생성합니다.