

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

Quando você usa o Firehose para entregar dados ao Amazon S3, a configuração padrão grava objetos com chaves semelhantes ao seguinte exemplo:

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

Para criar uma tabela do Athena que encontre as partições automaticamente no momento da consulta, em vez de precisar adicioná-las ao AWS Glue Data Catalog à medida que novos dados chegam, você pode usar a projeção de partições.

O exemplo de `CREATE TABLE` a seguir usa a configuração padrão do 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}/"
)
```

A cláusula `TBLPROPERTIES` na instrução `CREATE TABLE` diz ao Athena o seguinte:
+ Usar projeção de partições ao consultar a tabela
+ A chave de partição `datehour` é do tipo `date` (que inclui um horário opcional)
+ Como as datas são formatadas
+ O intervalo dos períodos de datas. Observe que os valores devem ser separados por uma vírgula, não por um hífen.
+ Onde encontrar os dados no Amazon S3.

Quando você consulta a tabela, o Athena calcula os valores para `datehour` e usa o modelo de local de armazenamento para gerar uma lista de locais de partição.

**Topics**
+ [Como usar o tipo `date`.](partition-projection-kinesis-firehose-example-using-the-date-type.md)
+ [Como escolher chaves de partição](partition-projection-kinesis-firehose-example-choosing-partition-keys.md)
+ [Como usar prefixos personalizados e particionamento dinâmico](partition-projection-kinesis-firehose-example-using-custom-prefixes-and-dynamic-partitioning.md)