卖家传输数据源服务 - AWS Marketplace

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

卖家传输数据源服务

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_fromupdate_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 存储桶的数据源。您需要遵循多步流程来访问数据源,以下几组步骤说明了如何访问数据源。

  1. 分配具有SQL和ETL(提取、转换、加载)经验的商业智能或数据工程师。此人还需要设置经验APIs。

  2. 设置 Amazon 简单存储服务存储桶并订阅数据源。使用与您的 Marketplace 商品详情关联的AWS卖家账户编号。为此,您可以观看此 YouTube 视频或按照以下步骤操作。

    该视频和步骤说明了如何使用有助于简化配置的AWS CloudFormation 模板

    1. 打开 Web 浏览器并登录 AWS Marketplace 管理门户,然后转到设置客户数据存储

    2. 选择 “使用 AWS CloudFormation 模板创建资源”,在 AWS CloudFormation 控制台的另一个窗口中打开模板。

    3. 在模板中,指定以下内容,然后选择下一步

      • 堆栈名称 – 您将创建的允许访问数据源的资源集合。

      • Amazon S3 存储桶名称 – 用于存储数据源的存储桶。

      • (可选)Amazon SNS 主题名称-用于在向 Amazon S3 存储桶 AWS 传输新数据时接收通知的主题。

    4. 审核页面上,确认您的条目,然后选择创建堆栈。这将打开一个包含 CloudFormation 状态和详细信息的新页面。

    5. 在 “资源” 选项卡中,将 CloudFormation 页面中以下资源的亚马逊资源名称 (ARNs) 复制到 AWS Marketplace 设置客户数据存储页面上的字段中:

      • 用于存储数据源的 Amazon S3 存储桶

      • AWS KMS 用于加密 Amazon S3 存储桶的密钥

      • (可选)Amazon SNS 主题,用于在向 Amazon S3 存储桶 AWS 传送新数据时接收通知

    6. 设置客户数据存储页面上,选择提交

    7. (可选)编辑由 CloudFormation 模板创建的策略。有关更多信息,请参阅数据源策略

      您现在已订阅数据源。下次生成数据源时,您可以访问数据。

  3. 使用ETL(提取、转换、加载)操作将数据源连接到您的数据仓库或关系数据库。

    注意

    数据工具具有不同的功能。您必须让商业智能工程师或数据工程师参与设置集成,使其与您的工具的功能相匹配。

  4. 要运行或创建SQL查询,请将数据馈送配置为在数据工具中强制使用主键和外键。每个数据馈送代表一个唯一的表,您必须使用实体关系在数据架构中设置所有数据馈送。有关表和实体关系的更多信息,请参阅本指南数据源表概述中的。

  5. 设置 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 交付存在问题。

  6. 通过运行SQL查询来验证设置。你可以在 /tree/main/ /queries 上使用本指南中的示例查询,也可以在 https://github.com/aws-samples/aws-marketplace-api-samples/tree/main/ /queries seller-data-feeds 上 GitHub使用查询。

    注意

    本指南中的示例查询是为 AWS Athena 编写的。您可能需要修改查询才能与您的工具配合使用。

  7. 确定业务用户想要在何处使用数据。例如,您可以:

    • 从您的数据仓库或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 管理门户。然后,前往联系我们页面,向 AWS Marketplace 卖家运营团队提交取消订阅请求。取消订阅请求可能需要 10 个工作日来处理。

使用数据源

当 Amazon S3 存储桶中存在数据时,您可以通过以下方式使用数据源:

  • 下载. CSV来自您在中创建的 Amazon S3 存储桶中的文件,访问数据源以便您可以在电子表格中查看数据。

  • 使用ETL(提取、转换和加载)、SQL查询、业务分析工具来收集和分析数据。

    您可以使用 AWS 服务来收集和分析数据,也可以使用任何可以进行分析的第三方工具。 CSV基于数据集。

示例:使用 AWS 服务收集和分析数据

以下过程假定您已配置环境以将数据源接收到 Amazon S3 存储桶,并且该存储桶包含数据源。

从数据源收集数据并进行分析
  1. AWS Glue 控制台 中,创建一个爬网程序以连接到存储数据源的 Amazon S3 存储桶、提取所需数据并在 AWS Glue Data Catalog中创建元数据表。

    有关的更多信息 AWS Glue,请参阅《AWS Glue 开发人员指南》

  2. Athena 控制台中,对中的数据SQL运行查询。 AWS Glue Data Catalog

    有关 Athena 的更多信息,请参阅 《Amazon Athena 用户指南》

  3. Amazon QuickSight 控制台中,创建分析,然后创建数据的可视化效果

    有关亚马逊的更多信息 QuickSight,请参阅亚马逊 QuickSight 用户指南

有关使用 AWS 服务收集和分析数据上传数据的一种方式的详细示例,请参阅博客上的使用卖家数据源配送服务、Amazon Athena 和 QuickSight 亚马逊创建卖家报告。 AWS Marketplace