

# Amazon Data Firehose 예제
<a name="partition-projection-kinesis-firehose-example"></a>

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에 다음을 알려줍니다.
+ 테이블을 쿼리할 때 파티션 프로젝션 사용
+ 파티션 키 `datehour`는 `date` 형식입니다(선택적 시간 포함).
+ 날짜 형식 지정 방법
+ 날짜 시간 범위입니다. 값을 하이픈이 아닌 쉼표로 구분해야 합니다.
+ Amazon S3에 대한 데이터를 찾을 수 있는 위치

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

**Topics**
+ [`date` 형식을 사용하는 방법](partition-projection-kinesis-firehose-example-using-the-date-type.md)
+ [파티션 키를 선택하는 방법](partition-projection-kinesis-firehose-example-choosing-partition-keys.md)
+ [사용자 지정 접두사 및 동적 파티셔닝을 사용하는 방법](partition-projection-kinesis-firehose-example-using-custom-prefixes-and-dynamic-partitioning.md)