

# 流日志文件
<a name="flow-logs-s3-path"></a>

 VPC 流日志将进出您的 VPC 的 IP 流量的相关数据收集到日志记录，并将这些记录聚合到日志文件，然后每隔 5 分钟将日志文件发布到 Amazon S3 存储桶。可能会发布多个文件，并且每个日志文件可能包含在上一个 5 分钟内记录的 IP 流量的部分或全部流日志记录。

在 Amazon S3 中，流日志文件的 **Last modified**（上次修改时间）字段指示文件上传到 Amazon S3 存储桶的日期和时间。此时间要晚于文件名中的时间戳，并且不同于将文件上传到 Amazon S3 存储桶所花费的时间。

**日志文件格式**

您可为日志文件指定下列格式之一。每个文件都被压缩为单个 Gzip 文件。
+ **Text** – 纯文本。这是默认格式。
+ **Parquet** – Apache Pparquet 是一种列式数据格式。与对纯文本数据的查询相比，对 Passic 格式的数据进行查询速度快 10 到 100 倍。使用 Gzip 压缩的 Parquet 格式的数据比 Gzip 压缩的纯文本格式的数据占用的存储空间少 20％。

**注意**  
如果采用 Gzip 压缩的 Parquet 格式的数据在每个聚合周期内小于 100 KB，则由于 Parquet 文件内存要求，以 Parquet 格式存储数据可能比采用 Gzip 压缩的纯文本占用更多的空间。

**日志文件选项**

您也可以指定以下选项。
+ **Hive 兼容的 S3 前缀** – 启用 Hive兼容的前缀，而不是将分区导入 Hive 兼容工具中。请先使用 **MSCK REPAIR TABLE** 命令，然后再运行查询。
+ **每小时分区** – 如果您有大量日志并且通常将查询定位到特定小时，则可以通过每小时对日志进行分区来获得更快的结果并节省查询成本。

**日志文件 S3 存储桶结构**  
日志文件将保存到指定的 Amazon S3 存储桶，并使用由流日志的 ID、区域、创建日期及目标选项决定的文件夹结构。

默认情况下，文件传送到以下位置。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/
```

如果启用 Hive 兼容的 S3 前缀，则文件将传送到以下位置。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/
```

如果启用每小时分区，则文件将传送到以下位置。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/
```

如果启用 Hive 兼容的分区并每小时对流日志进行分区，则文件将传送到以下位置。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/aws-service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
```

**日志文件名称**  
日志文件的文件名基于流日志 ID、区域以及创建日期和时间。文件名使用以下格式。

```
aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz
```

下面显示了一个流日志的日志文件的示例，该流日志由 Amazon 账户 123456789012 创建，用于 us-east-1 区域中的资源，创建时间为 June 20, 2018 16:20 UTC。该文件包含结束时间介于 16:20:00 和 16:24:59 之间的流日志记录。

```
123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz
```