

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

# 访问数据源


借助 AWS Marketplace，您可以将数据源用作一种机制，将最新的结构化产品和客户信息从 AWS Marketplace 系统发送到 Amazon S3 存储桶，以便在卖家所有的商业智能工具之间进行 ETL（提取、转换和加载）。您需要对环境进行配置，以将数据源接收到加密的 Amazon S3 存储桶中。本主题将向您介绍如何访问和取消订阅数据源。

**Topics**
+ [

## 访问数据源
](#data-feed-accessing-procedure)
+ [

## 数据源策略
](#data-feed-policies)
+ [

## 取消订阅数据源
](#data-feed-unsubscribing)

## 访问数据源


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

1. 设置 Amazon Simple Storage Service 存储桶并订阅数据源。使用与您的 Marketplace 产品列表关联的 AWS 卖家账户 ID。为此，您可以[观看此 YouTube 视频](https://www.youtube.com/watch?v=heCsZdOT-hw)或按照以下步骤操作。

   该视频和步骤说明了如何使用有助于简化配置的 [CloudFormation 模板](https://s3.amazonaws.com/aws-marketplace-reports-resources/DataFeedsResources.yaml)。

   1. 打开 Web 浏览器并登录 [AWS Marketplace 管理门户](https://aws.amazon.com/marketplace/management/)，然后转到[设置客户数据存储](https://aws.amazon.com/marketplace/management/reports/data-feed-configuration)。

   1. 选择**使用 CloudFormation 模板创建资源**，在 CloudFormation 控制台的另一个窗口中打开模板。

   1. 在模板中，指定以下内容，然后选择**下一步**：
      + 堆栈名称 – 您将创建的允许访问数据源的资源集合。
      + Amazon S3 存储桶名称 – 用于存储数据源的存储桶。
      + （可选）Amazon SNS 主题名称 – 在 Amazon Simple Storage Service 存储桶发生相关事件时接收通知的主题。

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

   1. 从**资源**选项卡中，将 CloudFormation 页面上的以下资源的 Amazon 资源名称 (ARN) 复制到 AWS Marketplace [设置客户数据存储](https://aws.amazon.com/marketplace/management/reports/data-feed-configuration)页面上的字段中：
      + 用于存储数据源的 Amazon S3 存储桶
      + 用于加密 Amazon S3 存储桶的 AWS KMS 密钥
      + （可选）AWS 将新数据传送到 Amazon S3 存储桶时接收通知的 Amazon SNS 主题

   1. 在**设置客户数据存储**页面上，选择**提交**。

   1. （可选）编辑由 CloudFormation 模板创建的策略。有关更多信息，请参阅[数据源策略](#data-feed-policies)。

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

1. 使用 ETL（提取、转换、加载）操作将数据源连接到您的数据仓库或关系数据库。
**注意**  
数据工具功能各异。您必须让商业智能工程师或数据工程师参与设置集成，以便与您工具的功能相匹配。

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

1. 设置 Amazon Simple Notification Service 以自动刷新您的数据仓库或关系数据库。您可以配置 Amazon SNS 通知，在来自每个唯一源的数据传送到 Amazon S3 存储桶时发送提醒。通过数据源接收新数据时，可以利用这些通知来自动刷新卖家数据仓库（如果卖家数据工具支持此功能）。请参阅《Amazon Simple Notification Service 开发人员指南》**中的 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

   示例通知：

   ```
   {
           "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` – 我们传输了包含新数据的源。
   + `FAILED` – 源传输存在问题。

1. 通过运行 SQL 查询来验证设置。您可以使用[本指南中的示例查询](https://docs.aws.amazon.com/marketplace/latest/userguide/data-feed-full-examples.html)，也可以使用 GitHub 上的查询，网址为 [https://github.com/aws-samples/aws-marketplace-api-samples/tree/main/seller-data-feeds/queries](https://github.com/aws-samples/aws-marketplace-api-samples/tree/main/seller-data-feeds/queries)。
**注意**  
本指南中的示例查询是为 AWS Athena 编写的。您可能需要修改查询才能与您的工具配合使用。

1. 确定业务用户想要在哪里使用数据。例如，您可以：
   + 从您的数据仓库或 SQL 数据库中导出 .csv 数据。
   + 将您的数据连接到 PowerBI 或 Tableau 等可视化工具。
   + 将数据映射到您的 CRM、ERP 或财务工具，例如 Salesforce、Infor 或 Netsuite。

有关使用 CloudFormation 模板的更多信息，请参阅《AWS CloudFormation 用户指南》**中的[使用 CloudFormation 模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)。

## 数据源策略


当使用 CloudFormation 模板创建 Amazon S3 存储桶时，它将为附加到该存储桶、AWS KMS 密钥和 Amazon 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:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
```

在本策略中，AWS Marketplace 使用 `reports.marketplace.amazonaws.com` 服务主体将数据推送到 Amazon S3 存储桶。您在 CloudFormation 模板中指定了 *amzn-s3-demo-bucket*。

当 AWS Marketplace 报告服务调用 Amazon S3、AWS KMS 或 Amazon SNS 时，它将提供意图写入存储桶的数据的 ARN。为确保写入存储桶的唯一数据是以您的名义写入的数据，您可以在策略的条件中指定 `aws:SourceArn`。在以下示例中，您必须将 *account-id* 替换为自己的 AWS 账户 ID。

```
        {
           "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:::amzn-s3-demo-bucket",
                "arn:aws:s3:::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"]
                        }
                }
        },
```

## 取消订阅数据源


打开 Web 浏览器并登录 [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/)。然后，转到[联系我们页面](https://aws.amazon.com/marketplace/management/contact-us/)，向 AWS Marketplace 卖家运营团队提交取消订阅请求。取消订阅请求可能需要 10 个工作日来处理。