

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解您的报告版本
<a name="understanding-report-versions"></a>

AWS 在您的费用最终确定之前，每天至少更新一次成本和使用情况报告。在创建报告时，您可以选择创建新的报告版本，或者在每次更新时覆盖现有的报告版本。

您的报告文件包括一个 .csv 文件或一组 .csv 文件和一个清单文件。您的报告还可以包含支持您的数据与亚马逊 Athena、Amazon Redshift 或 Quick 集成的任何其他文件。

以下几节根据您选择的报告版本控制介绍文件组织结构和命名约定。

## 成本和使用情况报告交付时间表
<a name="access-cur-s3-timeline"></a>

在报告期间， AWS 每次 AWS 更新报告时都会提交一份新报告和一个新的清单文件。 AWS 以先前的报告为基础，直到账单周期结束。在报告账单周期结束后， AWS 生成一份新报告，其中不包含上一份报告中的任何信息。

## 创建新的成本和使用情况报告版本
<a name="keeping-previous-cur"></a>

当您选择保留之前的成本和使用情况报告时，您的 AWS CUR 将使用以下 Amazon S3 组织和命名约定。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-<file-number>.csv.<zip|gz>
```
+ `report-prefix` = 您为报告分配的前缀。
+ `report-name`= 您为报告分配的名称。
+ `yyyymmdd-yyyymmdd` = 报告覆盖的日期范围。报告将于日期范围的末尾最终确定。
+ `assemblyId`= 每次更新报告时 AWS 创建的 ID。
+ `file-number`= 如果更新包含一个大文件，则 AWS 可能会将其拆分为多个文件。`file-number` 跟踪一个更新中的不同文件。
+ `csv` = 报告文件的格式。
+ `zip` 或 `gz` = 应用于报告文件的压缩的类型。

例如，您的报告可能作为以下文件的集合进行传输。

```
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<1>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<2>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<3>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/20160101-20160131/<example-report-name>-Manifest.json
```

AWS 将报告日期范围内的所有报告传送到同一个`report-prefix/report-name/yyyymmdd-yyyymmdd`文件夹。 AWS 为每个报告提供一个唯一的 ID，并将其传送到日期范围`assemblyId`文件夹中的子文件夹。如果报告作为单个文件过大，则会被拆分成多个文件并传输到相同的 `assemblyId` 文件夹。

有关保留先前报告时的清单文件的更多信息，请参阅[成本和使用情况报告清单文件](#manifest-cur-files)

## 覆盖以前的成本和使用情况报告
<a name="overwrite-previous-cur"></a>

当您选择覆盖之前的成本和使用情况报告时，您的 AWS CUR 将使用以下 Amazon S3 组织和命名约定。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<file-number>.csv.<zip|gz>
```
+ `report-prefix` = 您为报告分配的前缀。
+ `report-name`= 您为报告分配的名称。
+ `yyyymmdd-yyyymmdd` = 报告覆盖的日期范围。 AWS 在日期范围结束时完成报告。
+ 
+ `file-number`= 如果更新包含一个大文件，则 AWS 可能会将其拆分为多个文件。`file-number` 跟踪一个更新中的不同文件。
+ `csv` = 报告文件的格式。
+ `zip` 或 `gz` = 应用于报告文件的压缩的类型。

例如，您的报告可能作为以下文件的集合进行传输。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<1>.csv.<zip>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<2>.csv.<zip><example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<3>.csv.<zip>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
```

### Athena 规范
<a name="overwrite-athena"></a>

如果您在创建 AWS CUR 时选择了 Athena 支持，则除了格式和压缩之外，文件命名约定与您选择覆盖 AWS CUR 时的命名约定相同。Ath AWS ena CUR 文件改用。`.parquet`例如，您的报告可能作为以下文件的集合进行传输。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>.parquet
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<cost_and_usage_data_status>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-create-table.sql
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/crawler-cfn.yml
```

### CloudFormation 规格
<a name="overwrite-cloudformation"></a>

除了 AWS CUR 文件外， AWS 还提供了一个 CloudFormation 模板，您可以使用该模板来设置 CloudFormation 堆栈，使您能够使用 Athena 查询 Amazon S3 数据。如果您不想使用该 CloudFormation 模板，则可以使用提供的 SQL 创建自己的 Athena 表。有关更多信息，请参阅 [使用 Amazon Athena 查询成本和使用情况报告](cur-query-athena.md)。

## 成本和使用情况报告清单文件
<a name="manifest-cur-files"></a>

 AWS 更新 AWS CUR 时， AWS 还会创建和交付清单文件，供亚马逊 Athena、Amazon Redshift 或 Quick 使用。

清单文件使用命名约定，并列出以下内容：
+ 迄今为止报告中包含的所有详细信息列
+ 报表文件的列表（如果报表被拆分为多个文件）
+ 报告所涵盖的时间段以及其他信息。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/<example-report-name>/year=2018/month=12/<example-report-name>-Manifest.json
```

### 创建新的成本和使用情况报告版本
<a name="manifest-cur-keeping"></a>

在您保留以前的成本和使用情况报告时，清单文件将传送到日期范围文件夹和 `assemblyId` 文件夹。每次为日期范围 AWS 创建新的 AWS CUR 时，它都会用更新的清单文件覆盖存储在日期范围文件夹中的清单文件。 AWS 将相同的更新清单文件以及该更新的文件传送到该文件`assemblyId`夹。`assemblyId` 文件夹中的清单文件不会被覆盖。

### 覆盖以前的成本和使用情况报告
<a name="manifest-cur-overwrite"></a>

当您覆盖之前的 AWS CUR 时，清单文件将传送到该`month=mm`文件夹。清单文件与报表文件一起被覆盖。

### Amazon Redshift 规范
<a name="manifest-cur-RS"></a>

如果您在 AWS CUR 中选择了 Amazon Redshift 支持选项，则 AWS 还会创建并提交一个包含将报告上传到 Amazon Redshift 所需的 SQL 命令的文件。您可以使用普通文本编辑器打开 SQL 文件。SQL 文件使用以下命名约定。

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-RedshiftCommands.sql
```

如果您使用了 `RedshiftCommands` 文件中的命令，则不需要打开 `RedshiftManifest` 文件。

**重要**  
`manifest` 文件决定了 `copy` 文件中的 `RedshiftCommands` 命令上传的报告文件。删除或移除 `manifest` 文件将破坏 `RedshiftCommands` 文件中的复制命令。

### Amazon Athena 规范
<a name="manifest-cur-Athena"></a>

如果您在 CUR 中选择了 Amazon Athena 支持选项 AWS ，则还会创建并交付多个文件以帮助设置所需的所有资源。 AWS AWS 提供了一个 CloudFormation 模板、一个包含用于手动创建 Athena 表的 SQL 文件和一个用于检查 CUR 刷新状态的 SQL 文件，以及一个包含用于检查 CUR 刷新状态的 SQL AWS 文件。这些文件使用以下命名约定。

```
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/crawler-cfn.yml
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-create-table.sql
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/<cost_and_usage_data_status>
```