

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Consultar relatórios de custos e uso com o Amazon Athena
<a name="cur-query-athena"></a>

O Amazon Athena é um serviço de consulta sem servidor que você pode usar para analisar os dados dos seus Relatórios de AWS Custo e Uso (AWS CUR) no Amazon Simple Storage Service (Amazon S3) usando SQL padrão. Isso ajuda você a evitar a necessidade de criar suas próprias soluções de data warehouse para consultar dados AWS CUR.

É altamente recomendável que você crie um novo bucket do Amazon S3 e um novo relatório AWS CUR para usar com o Athena. AWS O CUR suporta somente o formato de compactação Apache Parquet para Athena e substitui automaticamente os relatórios anteriores que são armazenados em seu bucket do S3.

Esta seção descreve como usar o Athena com relatórios de custos e uso. Para obter uma descrição completa do serviço Athena, consulte o [Guia do usuário do Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/).

**Topics**
+ [Configurando o Athena usando modelos CloudFormation](use-athena-cf.md)
+ [Configuração do Athena manualmente](cur-ate-manual.md)
+ [Executando consultas do Amazon Athena](cur-ate-run.md)
+ [Carregar dados do relatório para outros recursos](cur-query-other.md)

Para ver uma demonstração de como consultar relatórios usando o Athena, assista ao vídeo a seguir.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/KEeJEZTYE8E/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/KEeJEZTYE8E)


# Configurando o Athena usando modelos CloudFormation
<a name="use-athena-cf"></a>

**Importante**  
CloudFormation não oferece suporte a recursos entre regiões. Se você planeja usar um CloudFormation modelo, deve criar todos os recursos na mesma AWS região. A região deve ser compatível com os seguintes serviços:  
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
AWS Glue
Amazon Athena

Para simplificar e automatizar a integração de seus relatórios de custo e uso com o Athena, AWS fornece um CloudFormation modelo com vários recursos importantes junto com os relatórios que você configurou para a integração com o Athena. O CloudFormation modelo inclui um AWS Glue rastreador, um AWS Glue banco de dados e um AWS Lambda evento. 

O processo de configuração da integração do Athena usando CloudFormation remove quaisquer eventos do Amazon S3 que seu bucket já tenha. Isso pode afetar negativamente qualquer processo baseado em eventos existente que você tenha para um relatório AWS CUR existente. É altamente recomendável que você crie um novo bucket do Amazon S3 e um novo relatório AWS CUR para usar com o Athena.

Antes de usar um CloudFormation modelo para automatizar a integração com o Athena, faça o seguinte:
+ Crie um bucket do Amazon S3 para seus relatórios. Para obter mais informações, consulte [Como criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) no *Guia do usuário do Amazon S3*. 
+ [Crie um novo relatório](cur-create.md) para usar com o Athena. Durante o processo de configuração, em **Integração de dados do relatório**, escolha **Athena**.
+ Aguarde a entrega do primeiro relatório em seu bucket do Amazon S3. Pode levar até 24 horas AWS para entregar seu primeiro relatório.<a name="use-athena-cf-steps"></a>

**Para usar o modelo Athena CloudFormation**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na lista de compartimentos, escolha o compartimento em que você escolheu receber seu relatório AWS CUR.

1. Escolha o prefixo do caminho do relatório (*your-report-path-prefix/*). Em seguida, escolha o nome do seu relatório (*your-report-name/*).

1. Escolha o arquivo de modelo `.yml`.

1. Escolha **Ações de objeto**, depois escolha **Download como**.

1. Abra o CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Se você nunca usou CloudFormation antes, escolha **Criar nova pilha**. Caso contrário, selecione **Criar pilha**.

1. Em **Preparar modelo**, escolha **O modelo está pronto**.

1. Em **Origem do modelo**, escolha **Fazer upload de um arquivo de modelo**.

1. Escolha **Escolher arquivo**.

1. Escolha o modelo `.yml` obtido por download e escolha **Abrir**.

1. Escolha **Próximo**.

1. Em **Nome da pilha**, insira um nome para o modelo e selecione **Próximo**.

1. Escolha **Próximo**.

1. Na parte inferior da página, selecione **Eu reconheço que isso AWS CloudFormation pode criar recursos do IAM.** 

   Este modelo cria os seguintes recursos:
   + Três perfis do IAM
   + Um AWS Glue banco de dados
   + Um AWS Glue rastreador
   + Duas funções do Lambda
   + Uma notificação do Amazon S3

1. Selecione **Criar pilha**.

**Para atualizar o modelo existente do Athena CloudFormation**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na lista de compartimentos, escolha o compartimento em que você escolheu receber seu relatório AWS CUR.

1. Escolha o prefixo do caminho do relatório (*your-report-path-prefix/*). Em seguida, escolha o nome do seu relatório (*your-report-name/*).

1. Escolha o arquivo de modelo `.yml`.

1. Escolha **Ações de objeto**, depois escolha **Download como**.

1. Abra o CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione a pilha que foi criada anteriormente e escolha **Atualizar**.

1. Em **Preparar modelo**, escolha **Substituir modelo atual**.

1. Em **Origem do modelo**, escolha **Fazer upload de um arquivo de modelo**.

1. Escolha **Escolher arquivo**.

1. Escolha o modelo `.yml` obtido por download e escolha **Abrir**.

1. Escolha **Próximo**.

1. Na página **Especificar detalhes da pilha**, modifique os detalhes e escolha **Próximo**.

1. Escolha **Próximo**.

1. Na parte inferior da página, selecione **Eu reconheço que isso AWS CloudFormation pode criar recursos do IAM.** 

1. Escolha **Atualizar pilha**.

# Configuração do Athena manualmente
<a name="cur-ate-manual"></a>

É altamente recomendável que você use o AWS CloudFormation modelo para criar sua tabela em vez de criá-la você mesmo. A consulta SQL fornecida cria uma tabela que abrange apenas um único mês de dados, mas o AWS CloudFormation modelo cria uma tabela que pode incluir vários meses e que é atualizada automaticamente. Para obter mais informações sobre como configurar o AWS CloudFormation modelo, consulte[Configurando o Athena usando modelos CloudFormation](use-athena-cf.md).

Se você optar por não usar o CloudFormation modelo para configurar sua tabela Athena, siga manualmente as etapas abaixo. Você precisa criar uma tabela antes de executar consultas SQL em seus dados AWS CUR. Você precisará executar essa etapa pelo menos uma vez por mês e a tabela inclui apenas dados do AWS CUR atual.

Como parte do processo de criação da tabela, AWS transforma os nomes das colunas AWS CUR. Para obter mais informações sobre o processo de transformação, consulte [Nomes de colunas](cur-ate-run.md#column-transformations).
+ [Criar uma tabela no Athena](create-manual-table.md)
+ [Criar uma tabela de status dos relatórios de custos e uso](create-manual-cur-table.md)
+ [Fazer upload das partições do relatório](upload-report-partitions.md)

# Criar uma tabela no Athena
<a name="create-manual-table"></a>

AWS inclui o SQL que você precisa executar para criar essa tabela em seu bucket AWS CUR.<a name="create-manual-table-steps"></a>

**Como criar sua tabela do Athena**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Na lista de buckets, selecione o bucket que você escolheu para receber relatórios de custos e uso.

1. Navegue pelo caminho `your-report-prefix-your-report-name-path-to-report`.

   O caminho exato depende se sua AWS CUR está configurada para substituir as versões anteriores. Para obter mais informações, consulte [Cronograma de entrega dos relatórios de custos e uso](understanding-report-versions.md#access-cur-s3-timeline).

1. Abra o arquivo `my-report-name-create-table.sql`.

1. Copie o SQL do arquivo, começando com `CREATE` e terminando com `LOCATION 's3://your-report-prefix/your-report-name/the-rest-of-the=path'`. Anote a primeira linha, pois você precisará do nome do banco de dados e da tabela para criar o banco de dados do Athena.

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. No painel de consulta **Nova consulta 1**, cole o seguinte SQL. Para *`<database name>.<table name>`*, use o banco de dados e o nome da tabela da primeira linha do SQL que você copiou.

   ```
   CREATE DATABASE <database name>
   ```

1. Selecione **Executar consulta**.

1. No menu suspenso, escolha o banco de dados que você acabou de criar.

1. No painel de consulta **Nova consulta 1**, cole o resto do SQL do arquivo SQL.

1. Selecione **Executar consulta**.

Depois de criar a tabela, você deve carregar as partições antes de executar uma consulta. Para obter mais informações, consulte [Fazer upload das partições do relatório](upload-report-partitions.md).

# Criar uma tabela de status dos relatórios de custos e uso
<a name="create-manual-cur-table"></a>

AWS atualiza seu AWS CUR várias vezes ao dia. Não há como o Athena saber quando AWS está atualizando seu relatório, o que pode levar a resultados de consultas com uma combinação de dados antigos e novos. Para mitigar isso, crie uma tabela para monitorar se você AWS está atualizando seus relatórios de custo e uso e consulte essa tabela para ver se AWS está atualizando seus dados. Essa tabela precisa ser criada somente uma vez. Depois disso, AWS mantém a tabela atualizada.<a name="create-refresh-table"></a>

**Para criar sua tabela de atualização**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. No painel de consulta **Nova consulta 1**, cole o seguinte SQL. 

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS cost_and_usage_data_status(
     status STRING)
   ROW FORMAT SERDE
     'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
   WITH SERDEPROPERTIES (
    'serialization.format' = '1'
   )
   LOCATION 's3://{S3_Bucket_Name}/{Report_Key}/cost_and_usage_data_status/'
   ```

1. Selecione **Executar consulta**.

Para verificar se AWS está atualizando seus dados, use o console do Athena para executar a seguinte consulta SQL.

```
select status from cost_and_usage_data_status 
```

# Fazer upload das partições do relatório
<a name="upload-report-partitions"></a>

Para consultar dados nos relatórios de custos e uso, você deve fazer upload dos dados na tabela do Athena. Você deve fazer isso para cada novo relatório AWS CUR que for AWS entregue a você.<a name="upload-partitions"></a>

**Para fazer upload de suas partições mais recentes**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Clique nos três pontos verticais ao lado do nome da tabela.

1. Escolha **Carregar partições**.

Se você não fizer upload de suas partições, o Athena não retornará resultados ou retornará uma mensagem de erro indicando que há dados ausentes.

# Executando consultas do Amazon Athena
<a name="cur-ate-run"></a>

Para executar consultas do Athena em seus dados, primeiro use o console do Athena para verificar se AWS está atualizando seus dados e, em seguida, execute sua consulta no console do Athena. Quando você executar o SQL, certifique-se de que o banco de dados correto esteja selecionado na lista suspensa. Você pode usar o SQL a seguir para verificar o status.

```
select status from cost_and_usage_data_status 
```

Os dois resultados possíveis são `READY` e `UPDATING`. Se o status for `READY`, você pode consultar seu banco de dados do Athena. Se o status for `UPDATING`, então o Athena pode retornar resultados incompletos.

Depois de confirmar que AWS está atualizando seus dados, você pode executar suas próprias consultas. Por exemplo, a consulta a seguir mostra year-to-date os custos por serviço para cada mês no banco de dados de exemplo chamado`mycostandusage_parquet`. A consulta a seguir mostra year-to-date os custos de 2018. Atualize o ano para ver year-to-date os custos atuais.

```
SELECT line_item_product_code,
sum(line_item_blended_cost) AS cost, month
FROM mycostandusage_parquet
WHERE year='2018'
GROUP BY  line_item_product_code, month
HAVING sum(line_item_blended_cost) > 0
ORDER BY  line_item_product_code;
```

## Nomes de colunas
<a name="column-transformations"></a>

As restrições de nomes de coluna do Athena são diferentes das restrições de nomes de coluna dos relatórios de custos e uso. Isso significa que, quando seus dados AWS CUR são carregados em uma tabela do Athena, os nomes das colunas mudam. AWS faz as seguintes alterações:
+ Um sublinhado é adicionado na frente de letras maiúsculas
+ Letras maiúsculas são substituídas por letras minúsculas 
+ Todos os caracteres não alfanuméricos são substituídos por um sublinhado
+ Sublinhados duplicados são removidos
+ Todos os sublinhados iniciais e finais são removidos
+ Se o nome da coluna for maior do que o permitido para o comprimento de nomes de coluna, os sublinhados serão removidos da esquerda para a direita

**nota**  
Depois de aplicar essas regras, algumas das colunas da tag de recursos terão nomes duplicados. AWS mescla colunas quando há mais de uma coluna com o mesmo nome. 

Como exemplos, o nome da coluna `ExampleColumnName` se torna `example_column_name`, e o nome da coluna `Example Column Name` se torna `example_column_name`.

# Carregar dados do relatório para outros recursos
<a name="cur-query-other"></a>

Você pode fazer upload de relatórios de custo e uso no Amazon Redshift e no Amazon Quick para analisar seu AWS custo e uso.

**Topics**
+ [Carregando dados do relatório no Amazon Quick](#cur-query-other-qs)
+ [Carregamento de dados de relatórios para o Amazon Redshift](#cur-query-other-rs)

## Carregando dados do relatório no Amazon Quick
<a name="cur-query-other-qs"></a>

Você pode carregar seus relatórios de custo e uso no Amazon Quick.

Para obter mais informações sobre o upload para o Quick, consulte [Criação de um conjunto de dados usando arquivos do Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) no Guia *rápido do* usuário.

## Carregamento de dados de relatórios para o Amazon Redshift
<a name="cur-query-other-rs"></a>

Esta seção mostra como você pode fazer upload de AWS CUR para o Amazon Redshift para analisar AWS seus custos e uso.

**Importante**  
As colunas do Amazon Redshift diferenciam letras maiúsculas de minúsculas e têm restrições de caracteres mais rigorosas que as tags definidas pelo usuário. Para evitar conflitos entre o Amazon Redshift e as tags definidas pelo usuário, AWS substitua suas tags pelas tags`userTag0`,,, `userTag1` etc. `userTag2` Depois de criar uma tabela do Amazon Redshift e carregar seu relatório nela, você pode criar uma tabela do Amazon Redshift que mapeia as tags definidas para AWS as tags definidas pelo usuário. A tabela de tags permite consultar suas tags originais.  
Por exemplo, se você tem as tags `OWNER` e `Owner`, o Amazon Redshift não permite a criação de uma tabela com duas colunas denominadas "proprietário". Em vez disso, crie uma tabela de relatórios com as colunas `userTag0` e `userTag1`, em vez de `OWNER` e `Owner`, e, em seguida, crie uma tabela com as colunas `remappedUserTag` e `userTag`. A `remappedUserTag` coluna armazena as tags AWS definidas `userTag0` e`userTag1`, e a `userTag` coluna armazena suas tags originais, `OWNER` e `Owner` 

AWS fornece os comandos para criar sua tabela do Amazon Redshift, carregar seu relatório, criar sua tabela de tags e inserir todas as linhas de tags em sua tabela de tags. Os comandos são fornecidos no arquivo armazenado junto com seu `RedshiftCommands.sql` arquivo de manifesto no S3 e no arquivo **auxiliar de arquivo** do **Redshift** no console Billing and Cost Management. AWS também fornece um RedshiftManifest arquivo, que controla quais relatórios os comandos nos carregamentos de RedshiftCommand arquivos. Excluir ou remover o RedshiftManifest arquivo interrompe o comando de cópia no RedshiftCommands arquivo.

**Como encontrar o arquivo `RedshiftCommands.sql` no console do Gerenciamento de Faturamento e Custos**

1. Abra o console de Gerenciamento de Faturamento e Custos em [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. No painel de navegação, em **Páginas legadas**, escolha **Relatórios de Custos e Uso**.

1. Escolha o relatório do qual você deseja fazer upload para o Amazon Redshift.

1. Ao lado de **Você habilitou a visualização de relatórios nos seguintes serviços:**, escolha **Amazon Redshift**.

1. Copie os comandos da caixa de diálogo e cole-os em seu cliente SQL.

O procedimento a seguir pressupõe familiaridade com bancos de dados e Amazon Redshift.

**Como fazer upload de relatórios de custos e uso no Amazon Redshift**

1. Crie um cluster do Amazon Redshift.

   Para obter mais informações, consulte [Criar um cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster) no *Guia de gerenciamento de clusters do Amazon Redshift*.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Navegue até o local do Amazon S3 onde você armazena seu AWS CUR.

1. Abra o arquivo `RedshiftCommands.sql`.

   O arquivo contém comandos personalizados para criar uma tabela do Amazon Redshift, carregar o AWS CUR do Amazon S3 e criar uma tabela de tags que permite que tags definidas pelo usuário sejam importadas para o Amazon Redshift.

1. No `copy` comando, *<AWS\$1ROLE>* substitua pelo ARN de uma função do IAM que tenha permissões para acessar o bucket do Amazon S3 onde você armazena seu CUR. AWS 

1. *<S3\$1BUCKET\$1REGION>*Substitua pela região em que seu bucket do Amazon S3 está. Por exemplo, .`us-east-1`

1. Usar um cliente SQL para se conectar ao cluster.

   Para obter mais informações, consulte [Accessing Amazon Redshift Clusters and Databases](https://docs.aws.amazon.com/redshift/latest/mgmt/using-rs-tools.html) no *Guia de gerenciamento do Amazon Redshift*.

1. Copie os comandos SQL do arquivo `RedshiftCommands.sql` no seu cliente SQL na seguinte ordem:
   + create table: este comando cria uma tabela do Amazon Redshift com um esquema personalizado de acordo com seu relatório.
   + copy - Esse comando usa a função IAM fornecida para carregar os arquivos AWS CUR do S3 para o Amazon Redshift.
   + create tag table: este comando cria uma tabela que permite mapear as tags definidas pela AWS para suas tags definidas pelo usuário.
   + insert – esses comandos inserem as tags definidas pelo usuário na tabela de tags.

1. Depois de copiar todos os dados do seu AWS CUR para o Amazon Redshift, você pode consultar os dados usando SQL. Para obter mais informações sobre o Amazon Redshift, consulte [Amazon Redshift SQL](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html) no *Guia do desenvolvedor do banco de dados do Amazon Redshift*.

**nota**  
O número de colunas nos relatórios de custos e uso pode ser diferente de acordo com o mês, como quando uma nova tag de alocação de custos é criada ou um serviço adiciona um novo atributo de produto. Recomendamos que você copie os dados do seu AWS CUR em uma nova tabela todo mês e, em seguida, copie as colunas que lhe interessam em uma month-by-month tabela separada.