

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

# AWS Marketplace 数据源的存储和结构
<a name="data-feed-details"></a>

AWS Marketplace 将数据源作为一种机制提供，用于将最新的结构化产品和客户信息从 AWS Marketplace 系统发送到卖家 Amazon S3 存储桶，以便在卖家所有的商业智能工具之间进行 ETL（提取、转换和加载）。本主题将提供有关数据源的结构和存储的更多信息。

数据源收集逗号分隔值 (CSV) 文件并将其传送到您提供的已加密 Amazon S3 存储桶。CSV 文件具有以下特征：
+ 它们遵循 [4180 标准](https://tools.ietf.org/html/rfc4180)。
+ 字符编码是无 BOM 的 UTF-8。
+ 使用逗号作为值之间的分隔符。
+ 字段由双引号进行转义。
+ `\n` 是换行符。
+ 日期按 UTC 时区进行报告，采用 ISO 8601 日期和时间格式，并精确到 1 秒。
+ 所有 `*_period_start_date` 和 `*_period_end_date` 值都包括在内，这意味着 `23:59:59` 是任何一天的最后一个可能的时间戳。
+ 所有货币字段前面都有币种字段。
+ 货币字段使用句点 (`.`) 字符作为小数分隔符，不使用逗号 (,) 作为千位分隔符。

数据源的生成和存储方式如下：
+ 数据源在一天内生成，包含前一天 24 小时的数据。
+ 在 Amazon S3 存储桶中，数据源使用以下格式按月进行组织：

  `{{bucket-name}}/{{data-feed-name_version}}/year={{YYYY}}/month={{MM}}/data.csv`
+ 生成每个每日数据源时，它将附加到该月的现有 CSV 文件中。当新月份开始时，将为每个数据源生成一个新的 CSV 文件。
+ 数据源中的信息从 2010/01/01 到 2020/04/30（含）进行回填，并且可以在 `year=2010/month=01` 子文件夹的 [CSV 文件](#data-feed-details)中找到。

  您可能会注意到本月的给定数据源文件仅包含列标题，而不包含数据的情况。这意味着该月该源没有新条目。对于更新频率较低的数据源（如产品源），可能会发生这种情况。在这些情况下，在回填文件夹中提供数据。
+ 在 Amazon S3 中，您可以创建 [Amazon S3 生命周期策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-lifecycle.html)来管理文件在存储桶中的保留时间。
+ 您可以配置 Amazon SNS 以在数据传送到已加密的 Amazon S3 存储桶时向您发送通知。有关配置通知的更多信息，请参阅《Amazon Simple Notification Service 开发人员指南》**中的 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

## 数据历史记录
<a name="data-feed-historization"></a>

每个数据源都包含记录数据历史记录的列。除了 `valid_to` 之外，这些列对于所有数据源都是通用的。它们作为通用历史记录架构包含在内，并且在查询数据时非常有用。


| 列名称  | 描述  | 
| --- | --- | 
| valid\_from | 主键值相对于其他字段的值有效的第一个日期。 | 
| valid\_to | 此列仅显示在[地址](data-feed-address.md)数据源中，且始终为空。 | 
| insert\_date | 将记录插入数据源中的日期。 | 
| update\_date | 上次更新记录的日期。 | 
| delete\_date | 该列始终为空。 | 

下面显示了这些列的示例。


|  valid\_from  |  valid\_to  |  insert\_date  |  update\_date  |  delete\_date  | 
| --- | --- | --- | --- | --- | 
|  2018-12-12T02:00:00Z  |   |  2018-12-12T02:00:00Z  |  2018-12-12T02:00:00Z  |   | 
|  2019-03-29T03:00:00Z  |   |  2019-03-29T03:00:00Z  |  2019-03-29T03:00:00Z  |   | 
|  2019-03-29T03:00:00Z  |   |  2019-03-29T03:00:00Z  |  2019-04-28T03:00:00Z  |   | 

`valid_from` 和 `update_date` 字段共同构成了*双时态数据模型*。`valid_from` 字段的名字会表明该项目何时有效。如果项目已被编辑，源中可以有多条记录，每条记录都有不同 `update_date` 和相同的 `valid_from` 日期。例如，要查找某项的当前值，可以从具有最新 `valid_from` 日期的记录列表中查找具有最新 `update_date` 的记录。

在上面的示例中，该记录最初创建于 2018-12-12。然后在 2019-03-29 进行了更改（例如，记录中的地址发生了变更）。后来，在 2019-04-28，地址变更得到了更正（所以 `valid_from` 没有改变，但 `update_date` 变了）。更正地址（罕见事件）会追溯更改原始 `valid_from` 日期的记录，因此该字段不会更改。查找最新 `valid_from` 的查询将返回两条记录，具有最新 `update_date` 的记录会给出实际的当前记录。