View a markdown version of this page

Noções básicas sobre entrega de exportação - Exportações de dados da AWS

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á.

Noções básicas sobre entrega de exportação

Nas seções a seguir, você encontrará informações sobre a entrega da exportação.

  • Estrutura do diretório principal do S3 da exportação: como os dados de exportação são estruturados no diretório do S3 para o qual sua exportação é entregue.

  • Atualização da exportação: com que frequência a exportação é atualizada no diretório do S3.

  • Substituição da exportação e criação de outra exportação: como a entrega da exportação muda com a substituição e cria preferências de entrega.

  • Exportar nomes e partes dos arquivos de dados: como os arquivos de exportação (gzip/csv ou Parquet) são nomeados.

Estrutura do diretório principal do S3 de exportação

Cada exportação entrega os dados da consulta para o S3 (como um gzip/csv ou mais arquivos Parquet) e um arquivo de Manifest.json metadados contendo informações sobre a definição de exportação no momento em que a exportação foi executada.

Dados

Os dados resultantes da consulta de exportação são armazenados no seguinte caminho de arquivo do S3:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/

A partição corresponde à tabela que está sendo consultada. Para o CUR 2.0, a partição corresponde ao “período de cobrança” de uma exportação específica do CUR 2.0.

prefix: o prefixo do arquivo do S3 atribuído à exportação.

export-name: o nome atribuído à exportação.

partition: a partição descreve como uma única tabela é particionada em tabelas separadas para entrega. Para o CUR 2.0, a partição corresponde ao “período de cobrança” no formato BILLING_PERIOD=YYYY-MM. Por exemplo, a partição para novembro de 2023 é 2023-11.

Veja a seguir um exemplo de caminho de arquivo do S3:

s3://my-data-export-s3-bucket/my-cur-files/business_group_a_cur/data/BILLING_PERIOD=2023-11

Metadados

O arquivo de metadados Manifest.json da consulta é armazenado no seguinte caminho de arquivo do S3:

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<export-name>-Manifest.json

O arquivo Manifest.json é atualizado sempre que a exportação é atualizada. Um novo arquivo Manifest.json é criado para cada partição criada pela exportação. Para o CUR 2.0, isso significa que um novo arquivo Manifest.json é gerado quando um novo período de cobrança é iniciado.

Arquivos de manifesto contêm as seguintes informações:

  • Todas as colunas incluídas na exportação.

  • Uma lista dos arquivos de exportação e o caminho do arquivos. Recomendamos identificar quais arquivos ingerir lendo programaticamente essa lista.

  • O período coberto pela exportação.

  • Uma seção chamada additionalOutputFiles essa lista os arquivos adicionais que são entregues se você tiver a integração com o Athena ou o Amazon Redshift.

O Manifest.json é entregue somente quando todos os arquivos de dados de exportação são entregues ao S3.

Atualização da exportação

As exportações de dados atualizam as exportações sempre que os dados de origem são atualizados. Para o CUR 2.0, isso ocorre pelo menos uma vez por dia. O período de cobrança atual (partição) é atualizado até o término do período de cobrança, momento em que as entregas do próximo período de cobrança começam. As entregas do próximo período de cobrança contêm apenas os encargos e os dados de cobrança do período em questão. Após o término do período de cobrança, AWS pode atualizar a entrega de exportação do período de cobrança anterior nas primeiras duas semanas após o término.

Substituição da exportação e criação de outra exportação

Ao criar uma exportação, é possível optar por criar arquivos de exportação ou substituir os arquivos existentes a cada atualização.

Criar outra exportação

A criação de arquivos de exportação usa mais armazenamento do S3 porque todas as atualizações de exportação são mantidas. A substituição dos arquivos de exportação anteriores usa menos armazenamento do S3 porque somente a versão mais recente de cada atualização do período de cobrança é mantida.

Quando no modo “criar outra exportação”, os arquivos de exportação são entregues ao seguinte caminho do S3:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>

O timestamp é a data e a hora em que a exportação foi executada. O execution-id é o ID exclusivo atribuído à execução.

Para “criar outra exportação”, dois arquivos Manifest.json são entregues com cada execução de exportação. Um é armazenado no diretório metadata/<partition>/<timestamp>-<execution-id> e o outro é substituído no diretório metadata/<partition>. O manifesto no diretório metadata/<partition> sempre representa a atualização mais recente e os dados são usados para identificar a localização dos arquivos de exportação atualizados mais recentemente.

Substituir.

A substituição só se aplica às atualizações da mesma partição (ou seja, período de cobrança). Quando um novo período de cobrança começa, a exportação cria um diretório do S3 com um nome baseado na partição ou no período de cobrança mais recente e começa a entregar a nova partição de exportação. A exportação da partição anterior não é substituída, a menos que os dados dessa partição específica sejam atualizados.

Quando no modo “substituir”, os arquivos de exportação são entregues ao seguinte caminho do S3:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/

Os arquivos de exportação nesse diretório de arquivos são substituídos a cada entrega da mesma partição (ou seja, período de cobrança).

Os arquivos de exportação são entregues em vários “blocos” (arquivos separados gzip/csv ou em Parquet) quando a exportação se torna suficientemente grande. Se o tamanho da exportação diminuir durante o mês (devido a uma alteração na consulta ou uma correção nos dados), talvez sejam necessários menos fragmentos para entregar a atualização da exportação. Nesse caso, o Data Exports substitui todos os fragmentos extras da última atualização por dados vazios.

Para substituir, um arquivo Manifest.json é entregue com cada execução de exportação. Ele é armazenado no diretório metadata/<partition> e é substituído a cada atualização.

Nomes e fragmentos de arquivos de dados de exportação

As exportações fornecem os resultados de uma execução como um arquivo (gzip/csv ou Parquet) ou em vários “blocos” (arquivos separados gzip/csv ou em Parquet) quando a exportação se torna suficientemente grande.

As exportações são nomeadas da seguinte forma para o formato gzip/csv do arquivo:

<export-name>-<chunk-number>.csv.gz

As exportações são nomeadas da seguinte forma para o formato Parquet:

<export-name>-<chunk-number>.snappy.parquet

Os números de fragmentos sempre têm cinco dígitos. Os números dos fragmentos são enumerados começando com 00001.

nota

Se você escolheu a opção de integração de relatórios do Athena ou do Redshift ao criar o CUR 2.0, a seção abaixo sobre as integrações do Redshift e do Athena pode ser relevante para você.

Integração com o Amazon Redshift

Se você escolheu a opção de integração com o Amazon Redshift, AWS também cria e entrega um arquivo com os comandos SQL necessários para carregar seu relatório no Amazon Redshift. Para fazer o upload de uma exportação de dados para o Amazon Redshift, conclua as etapas a seguir.

Para fazer upload de uma exportação de dados para o Amazon Redshift
  1. Crie um cluster do Amazon Redshift. Para obter mais informações, consulte Criar um cluster no Guia de gerenciamento de clusters do Amazon Redshift.

  2. Faça login no AWS Management Console e abra o console do Amazon S3 em. https://console.aws.amazon.com/s3/

  3. Navegue até o local do Amazon S3 onde você armazena sua exportação de AWS dados.

  4. Faça o download do RedshiftCommands.sql arquivo que está armazenado junto com seu arquivo de manifesto no S3 e do arquivo auxiliar do Redshift em:

    <bucket>/<prefix>/<export-name>/metadata/<partition>/<export-name>-RedshiftCommands.sql

  5. No copy comando, <AWS_ROLE> substitua pelo ARN de uma função do IAM que tenha permissões para acessar o bucket do Amazon S3 onde você armazena AWS sua exportação de dados.

  6. <S3_BUCKET_REGION>Substitua pela região em que seu bucket do Amazon S3 está. Por exemplo, .us-east-1

  7. Usar um cliente SQL para se conectar ao cluster. Para obter mais informações, consulte Accessing Amazon Redshift Clusters and Databases no Guia de gerenciamento do Amazon Redshift.

  8. Copie os comandos SQL do arquivo RedshiftCommands.sql no seu cliente SQL na seguinte ordem:

    1. criar tabela — Cria uma tabela do Amazon Redshift com um esquema personalizado para corresponder ao seu relatório.

    2. copy — Usa a função do IAM fornecida para carregar os arquivos de exportação de AWS dados do S3 para o Amazon Redshift.

    3. criar tabela de tags — Cria uma tabela que permite mapear tags AWS definidas para suas tags definidas pelo usuário.

    4. insert — Insere as tags definidas pelo usuário na tabela de tags.

  9. Depois de copiar todos os dados da sua exportação de AWS dados para o Amazon Redshift, você pode consultar os dados usando SQL. Para obter mais informações, consulte Amazon Redshift SQL no Amazon Redshift Database Developer Guide.

Integração com o Amazon Athena

Se você escolheu a opção de integração com o Amazon Athena, AWS também cria e entrega vários arquivos para ajudar a configurar todos os recursos de que você precisa. AWS fornece um CloudFormation modelo, um arquivo SQL para criar sua tabela Athena manualmente e uma pasta de status para verificar o status de atualização da exportação. Esses arquivos usam as seguintes convenções de nomenclatura.

CloudFormation modelo para configurar os recursos do Athena:

<prefix>/<export-name>/crawler-cfn.yml

Arquivo SQL para criar sua tabela Athena manualmente:

<prefix>/<export-name>/metadata/<partition>/<export-name>-create-table.sql

Exportar pasta de status de atualização:

<prefix>/<export-name>/execution_status/

Configurando o Athena usando modelos CloudFormation

Para usar o modelo Athena CloudFormation
  1. Navegue até o crawler-cfn.yml arquivo em seu bucket do S3 e selecione o botão Copiar ao lado da URL do objeto.

  2. Abra o CloudFormation console em https://console.aws.amazon.com/cloudformation/.

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

  4. Em Preparar modelo, selecione Escolher um modelo existente.

  5. Em Especificar modelo, em Fonte do modelo, escolha URL do Amazon S3.

  6. Cole a URL do objeto S3 na caixa URL do Amazon S3.

  7. Escolha Próximo.

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

  9. Na parte inferior da página, selecione Reconheço que o AWS CloudFormation pode criar recursos do IAM.

  10. Escolha Próximo e Enviar.

Para atualizar o modelo existente do Athena CloudFormation
  1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista de compartimentos, escolha o intervalo em que você escolheu receber sua exportação de AWS dados.

  3. Escolha o prefixo do caminho do relatório (your-report-path-prefix/) e, em seguida, escolha o nome do relatório (your-report-name/).

  4. Escolha o arquivo .yml de modelo e selecione o botão Copiar ao lado da URL do objeto.

  5. Abra o CloudFormation console em https://console.aws.amazon.com/cloudformation/.

  6. Selecione a pilha que foi criada anteriormente e escolha Atualizar pilha > Fazer uma atualização direta.

  7. Em Preparar modelo, escolha Substituir modelo existente.

  8. Em Fonte do modelo, escolha URL do Amazon S3.

  9. Cole a URL do objeto S3 na caixa URL do Amazon S3.

  10. Escolha Próximo.

  11. Na página Especificar detalhes da pilha, modifique todos os detalhes e escolha Avançar.

  12. Na parte inferior da página, selecione Reconheço que o AWS CloudFormation pode criar recursos do IAM.

  13. Escolha Próximo e Enviar.

Configuração do Athena manualmente

Se não quiser usar o CloudFormation modelo, você pode criar sua tabela Athena manualmente usando o arquivo SQL fornecido.

Para criar uma tabela Athena manualmente
  1. O create-table.sql arquivo para sua exportação está localizado em:

    <bucket>/<prefix>/<export-name>/metadata/BILLING_PERIOD=YYYY-MM/<export-name>-create-table.sql

  2. No painel de consulta Nova consulta 1, cole o SQL do arquivo. Para<database name>.<table name>, use o nome do banco de dados e da tabela da primeira linha do SQL.

  3. Execute o seguinte para criar o banco de dados:

    CREATE DATABASE <database name>

Para carregar uma nova partição de relatório, execute o seguinte SQL:

ALTER TABLE `<database name>`.<table name> ADD PARTITION (billing_period='YYYY-MM') LOCATION 's3://<bucket>/<prefix>/<export-name>/data/BILLING_PERIOD=YYYY-MM/';onde YYYY-MM é o período de cobrança expresso como ano de 4 dígitos e mês de 2 dígitos. Por exemplo, 2026-05.

Para obter mais informações, consulte Consultar relatórios de custo e uso usando o Amazon Athena.

Resumo

Nomes de arquivos de dados de exportação com diretório para criar outra exportação

Parquet:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.snappy.parquet

gzip/csv:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.csv.gz

Nomes de arquivos de dados de exportação com diretório para substituir

Parquet:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.snappy.parquet

gzip/csv:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.csv.gz

Nomes de arquivos de manifesto com diretório para criar outra exportação

O modo “criar outra exportação” entrega o Manifest.json a dois locais.

O primeiro local está em uma pasta que representa uma execução específica de uma exportação (denominada timestamp e execution-id). Esse Manifesto corresponde a essa execução específica. O caminho de arquivo é o seguinte:

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<timestamp>-<execution-id>

O segundo local está em uma pasta de partições que contém todas as execuções. Esse manifesto é o mesmo arquivo da execução mais recente da exportação. É possível ler esse Manifesto para identificar os caminhos exatos de todos os arquivos de exportação recentes. O caminho de arquivo é o seguinte:

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/Manifest.json

Nomes de arquivos de manifesto com diretório para substituir

O modo “substituir” entrega Manifest.json a um local.

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>

O manifesto nesse diretório é substituído com cada atualização de uma partição específica (ou seja, período de cobrança).