本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
卖家传输数据源服务
AWS Marketplace 提供数据源作为一种机制,用于将结构化、 up-to-date 产品和客户信息从 AWS Marketplace 系统发送到卖家 Amazon S3 存储桶,以便在卖家拥有的商业智能工具之间提取、转换和加载ETL(提取、转换和加载)。
交易数据以双时态结构传输和附加,因此卖家可以根据两个时间线存储和查询数据,且它们都具有时间戳
-
有效时间:某个事实实际发生的时间(“您所知道的”)
-
系统时间:将该事实记录到数据库的时间(“当您知道时”)。
在前一天的更新包含前一天的 24 小时数据UTC之后,每天午夜传送数据源。更新可以通过客户订阅、向客户开具发票或 AWS 付款来定义。
本部分概述了数据源,并说明了如何访问和使用它们。随后的部分将介绍每个数据源。
数据源的存储和结构
数据源收集以逗号分隔的值 (CSV) 文件并将其传送到您提供的加密 Amazon S3 存储桶。这些CSV文件具有以下特征:
-
它们遵循 4180 标准
。 -
不带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(含)进行回填,并且可以在子文件夹的文件中找到。CSV
year=2010/month=01
您可能会注意到本月的给定数据源文件仅包含列标题,而不包含数据的情况。这意味着该月该源没有新条目。对于更新频率较低的数据源(如产品源),可能会发生这种情况。在这些情况下,在回填文件夹中提供数据。
-
在 Amazon S3 中,您可以创建 Amazon S3 生命周期策略来管理文件在存储桶中的保留时间。
-
您可以将 Amazon 配置SNS为在数据传输到加密的 S3 存储桶时通知您。有关如何配置通知的信息,请参阅《亚马逊简单通知服务开发者指南》SNS中的 “亚马逊入门”。
数据历史记录
每个数据源都包含记录数据历史记录的列。除了 valid_to
之外,这些列对于所有数据源都是通用的。它们作为通用历史记录架构包含在内,并且在查询数据时非常有用。
列名称 | 描述 |
---|---|
valid_from | 主键值相对于其他字段的值有效的第一个日期。 |
valid_to | 此列仅显示在地址数据源中,且始终为空。 |
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
的记录会给出实际的当前记录。
访问数据源
要访问数据源,您需要将环境配置为接收加密的 Amazon S3 存储桶的数据源。您需要遵循多步流程来访问数据源,以下几组步骤说明了如何访问数据源。
分配具有SQL和ETL(提取、转换、加载)经验的商业智能或数据工程师。此人还需要设置经验APIs。
设置 Amazon 简单存储服务存储桶并订阅数据源。使用与您的 Marketplace 商品详情关联的AWS卖家账户编号。为此,您可以观看此 YouTube 视频
或按照以下步骤操作。 该视频和步骤说明了如何使用有助于简化配置的AWS CloudFormation 模板
。 -
打开 Web 浏览器并登录 AWS Marketplace 管理门户
,然后转到设置客户数据存储 。 -
选择 “使用 AWS CloudFormation 模板创建资源”,在 AWS CloudFormation 控制台的另一个窗口中打开模板。
-
在模板中,指定以下内容,然后选择下一步:
-
堆栈名称 – 您将创建的允许访问数据源的资源集合。
-
Amazon S3 存储桶名称 – 用于存储数据源的存储桶。
-
(可选)Amazon SNS 主题名称-用于在向 Amazon S3 存储桶 AWS 传输新数据时接收通知的主题。
-
-
在审核页面上,确认您的条目,然后选择创建堆栈。这将打开一个包含 CloudFormation 状态和详细信息的新页面。
-
在 “资源” 选项卡中,将 CloudFormation 页面中以下资源的亚马逊资源名称 (ARNs) 复制到 AWS Marketplace 设置客户数据存储
页面上的字段中: -
用于存储数据源的 Amazon S3 存储桶
-
AWS KMS 用于加密 Amazon S3 存储桶的密钥
-
(可选)Amazon SNS 主题,用于在向 Amazon S3 存储桶 AWS 传送新数据时接收通知
-
-
在设置客户数据存储页面上,选择提交。
-
(可选)编辑由 CloudFormation 模板创建的策略。有关更多信息,请参阅数据源策略。
您现在已订阅数据源。下次生成数据源时,您可以访问数据。
-
使用ETL(提取、转换、加载)操作将数据源连接到您的数据仓库或关系数据库。
注意
数据工具具有不同的功能。您必须让商业智能工程师或数据工程师参与设置集成,使其与您的工具的功能相匹配。
要运行或创建SQL查询,请将数据馈送配置为在数据工具中强制使用主键和外键。每个数据馈送代表一个唯一的表,您必须使用实体关系在数据架构中设置所有数据馈送。有关表和实体关系的更多信息,请参阅本指南数据源表概述中的。
设置 Amazon 简单通知服务以自动刷新您的数据仓库或关系数据库。您可以将 Amazon SNS 通知配置为在来自每个唯一的 Feed 的数据传输到 S3 存储桶时发送提醒。如果卖家数据工具支持此功能,则当通过数据上传收到新数据时,可以利用这些通知自动刷新卖家数据仓库。请参阅《亚马逊简单通知服务开发者指南》SNS中的 “亚马逊入门”。
示例通知:
{ "mainExecutionId": "
1bc08b11-ab4b-47e1-866a-9c8f38423a98
", "executionId": "52e862a9-42d2-41e0-8010-810af84d39b1
", "subscriptionId": "27ae3961-b13a-44bc-a1a7-365b2dc181fd
", "processedFiles": [], "executionStatus": "SKIPPED
", "errors": [], "feedType": "[data feed name
]" }通知可以有以下
executionStatus
状态:SKIPPED
— 卖家没有当天的新数据。COMPLETED
— 我们提供了包含新数据的 Feed。FAILED
— Feed 交付存在问题。
通过运行SQL查询来验证设置。你可以在 /tree/main/ /queries 上使用本指南中的示例查询,也可以在 https://github.com/aws-samples/aws-marketplace-api-samples/tree/main/ /queries seller-data-feeds
上 GitHub使用查询。 注意
本指南中的示例查询是为 AWS Athena 编写的。您可能需要修改查询才能与您的工具配合使用。
-
确定业务用户想要在何处使用数据。例如,您可以:
从您的数据仓库或SQL数据库中导出.csv 数据。
将您的数据连接到 PowerBI 或 Tableau 等可视化工具。
将数据映射到您的CRMERP、或财务工具,例如 Salesforce、Infor 或 Netsuite。
有关 AWS CloudFormation 模板的更多信息,请参阅《AWS CloudFormation 用户指南》中的使用 AWS CloudFormation 模板。
数据源策略
当 CloudFormation 模板创建您的 Amazon S3 存储桶时,它将为附加到该存储桶、 AWS KMS 密钥和亚马逊SNS主题的访问权限创建策略。这些策略允许 AWS Marketplace 报告服务使用数据源信息写入您的存储桶和SNS主题。每个策略都将包含如下所示的部分(此示例来自 Amazon S3 存储桶)。
{ "Sid": "AwsMarketplaceDataFeedsAccess", "Effect": "Allow", "Principal": { "Service": "reports.marketplace.amazonaws.com" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:GetEncryptionConfiguration", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::
datafeed-bucket
", "arn:aws:s3:::datafeed-bucket
/*" ] },
在本策略中,reports.marketplace.amazonaws.com
是 AWS Marketplace 用于将数据推送到 Amazon S3 存储桶的服务主体。datafeed-bucket
是您在 CloudFormation 模板中指定的存储桶。
当 AWS Marketplace 报告服务调用 Amazon S3 或 Amazon 时SNS,它将提供它打算写入存储桶的数据。 AWS KMS ARN为确保写入存储桶的唯一数据是以您的名义写入的数据,您可以在策略的条件中指定 aws:SourceArn
。在以下示例中,必须替换 account-id
附上你的身份证 AWS 账户。
{ "Sid": "AwsMarketplaceDataFeedsAccess", "Effect": "Allow", "Principal": { "Service": "reports.marketplace.amazonaws.com" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:GetEncryptionConfiguration", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::datafeed-amzn-s3-demo-bucket", "arn:aws:s3:::datafeed-amzn-s3-demo-bucket/*" , "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
", "aws:SourceArn": ["arn:aws:marketplace::account-id
:AWSMarketplace/SellerDataSubscription/DataFeeds_V1", "arn:aws:marketplace::account-id
:AWSMarketplace/SellerDataSubscription/Example-Report
"] } } },
取消订阅数据源
打开网络浏览器并登录 AWSMarketplace 管理门户
使用数据源
当 Amazon S3 存储桶中存在数据时,您可以通过以下方式使用数据源:
-
下载. CSV来自您在中创建的 Amazon S3 存储桶中的文件,访问数据源以便您可以在电子表格中查看数据。
-
使用ETL(提取、转换和加载)、SQL查询、业务分析工具来收集和分析数据。
您可以使用 AWS 服务来收集和分析数据,也可以使用任何可以进行分析的第三方工具。 CSV基于数据集。
示例:使用 AWS 服务收集和分析数据
以下过程假定您已配置环境以将数据源接收到 Amazon S3 存储桶,并且该存储桶包含数据源。
从数据源收集数据并进行分析
-
在 AWS Glue 控制台
中,创建一个爬网程序以连接到存储数据源的 Amazon S3 存储桶、提取所需数据并在 AWS Glue Data Catalog中创建元数据表。 有关的更多信息 AWS Glue,请参阅《AWS Glue 开发人员指南》。
-
在 Athena
控制台中,对中的数据SQL运行查询。 AWS Glue Data Catalog 有关 Athena 的更多信息,请参阅 《Amazon Athena 用户指南》。
-
在 Amazon QuickSight 控制台
中,创建分析,然后创建数据的可视化效果。 有关亚马逊的更多信息 QuickSight,请参阅亚马逊 QuickSight 用户指南。
有关使用 AWS 服务收集和分析数据上传数据的一种方式的详细示例,请参阅博客上的使用卖家数据源配送服务、Amazon Athena 和 QuickSight 亚马逊创建卖家