亚马逊AWS官方博客

全新 — Amazon SageMaker Data Wrangler 支持 SaaS 应用程序作为数据来源



数据为机器学习提供动力。在机器学习中,数据准备是将原始数据转换为适合进一步处理和分析的格式的过程。数据准备的常见过程从收集数据开始,然后进行清理,标记,最后进行验证和可视化。通常,获取高质量数据是一个复杂而耗时的过程。

因此,在 AWS 上构建机器学习 (ML) 工作负载的客户对 Amazon SageMaker Data Wrangler 的能力赞不绝口。使用 SageMaker Data Wrangler,客户可以在单个可视界面上简化数据准备过程并完成数据准备工作流程的必要流程。Amazon SageMaker Data Wrangler 有助于缩短为机器学习聚合和准备数据所需的时间。

但是,由于数据的激增,客户的数据通常会分散到多个系统中,包括外部软件即服务 (SaaS) 应用程序,例如用于制造数据的 SAP OData、用于客户管道的 Salesforce 和用于 Web 应用程序数据的 Google Analytics。要使用机器学习解决业务问题,客户必须将全部数据来源整合在一起。目前,他们必须构建自己的解决方案或使用第三方解决方案将数据提取到 Amazon S3 或 Amazon Redshift 中。这些解决方案的设置可能很复杂,而且性价比不高。

介绍 Amazon SageMaker Data Wrangler 支持 SaaS 应用程序作为数据来源
我很高兴与大家分享,从今天开始,您可以在 Amazon SageMaker Data Wrangler 中聚合机器学习的外部 SaaS 应用程序数据,为机器学习准备数据。通过这个功能,您可以通过 Amazon AppFlow 使用 40 多个 SaaS 应用程序作为数据来源,并在 Amazon SageMaker Data Wrangler 上提供这些数据。在 AppFlow 的 AWS Glue Data Catalog 中注册数据来源后,您就可以使用 Data Wrangler SQL 资源管理器浏览数据来源中的表和架构了。此功能使用 Amazon AppFlow 在 SaaS 应用程序和 SageMaker Data Wrangler 之间提供无缝数据集成。

以下是此新功能的快速预览:

Amazon SageMaker Data Wrangler 的新功能通过与 Amazon AppFlow 的集成运行,Amazon AppFlow 是一项完全托管的集成服务,让您能够在 SaaS 应用程序和 AWS 服务之间安全地交换数据。借助 Amazon AppFlow,您可以在 SaaS 应用程序(例如 Salesforce、SAP 和 Amplitude)以及所有支持的服务之间建立双向数据集成,集成到 Amazon S3 或 Amazon Redshift 中。

然后,采用 Amazon AppFlow,您可以在 AWS Glue Data Catalog 中对数据进行编目。这是一项新功能,您可以使用 Amazon AppFlow 为 Amazon S3 目标连接器创建与 AWS Glue Data Catalog 的集成。通过新的集成,无需运行任何爬网程序,客户点击几下即可直接从 Amazon AppFlow 配置将 SaaS 数据应用程序编录到 AWS Glue Data Catalog 中。

建立流程并将其插入 AWS Glue Data Catalog 后,即可在 Amazon SageMaker Data Wrangler 中使用这些数据。然后,您可以像往常一样进行数据准备。您可以编写 Amazon Athena 查询来预览数据、连接来自多个来源的数据或导入数据准备 ML 模型训练。

有了这个功能,只需几个简单的步骤,就可以通过 Amazon AppFlow 在 SaaS 应用程序与 Amazon SageMaker Data Wrangler 之间进行无缝数据集成。此集成支持 40 多个 SaaS 应用程序,有关支持的应用程序的完整列表,请查看支持的源和目标应用程序文档。

Amazon SageMaker Data Wrangler 支持 Amazon AppFlow 入门
让我们详细看看这个功能的工作原理。在我的场景中,我需要从 Salesforce 获取数据,然后使用 Amazon SageMaker Data Wrangler 进行数据准备。

要开始使用此功能,我需要做的第一件事是在 Amazon AppFlow 中创建一个流程,将数据来源注册到 AWS Glue Data Catalog 中。我已经与 Salesforce 账户建立了连接,现在我所需要的是创建一个流程。

需要注意,重要的一点是,要在 Amazon SageMaker Data Wrangler 中提供 SaaS 应用程序数据,我需要创建一个以 Amazon S3 为目标的流程。然后,我需要在 AWS Glue Data Catalog 设置中启用 Create a Data Catalog(创建数据目录) 表。此选项会自动将我的 Salesforce 数据分类到 AWS Glue Data Catalog 中。

在此页面上,我需要选择一个具有所需的 AWS Glue Data Catalog 权限的用户角色,并定义数据库名称表名前缀。此外,在本节中,我可以定义数据格式首选项( JSON、CSV 或 Apache Parquet 格式),如果我想在文件名部分添加时间戳,还可以定义文件名首选项

要了解更多关于如何在 Amazon AppFlow 和 AWS Glue Data Catalog 中注册 SaaS 数据的信息,可以阅读 Amazon AppFlow 流程文档页面中的数据输出编目。

完成注册 SaaS 数据后,我需要确保 IAM 角色可以在 AppFlow 的 Data Wrangler 中查看数据来源。以下是 IAM 角色中的策略示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "glue:SearchTables",
            "Resource": [
                "arn:aws:glue:*:*:table/*/*",
                "arn:aws:glue:*:*:database/*",
                "arn:aws:glue:*:*:catalog"
            ]
        }
    ]
} 

通过使用 AWS Glue Data Catalog 启用数据编目,从那时起,Amazon SageMaker Data Wrangler 将能够自动发现这个新的数据来源,我可以使用 Data Wrangler SQL Explorer 浏览表和架构。

现在是时候切换到 Amazon SageMaker Data Wrangler 控制面板了,然后选择 Connect to data sources(连接到数据来源)。

在下一页上,我需要 Create connection(创建连接)并选择要导入的数据来源。在本节中,我可以看到所有可用的连接。在这里,我看到我可以使用 Salesforce 连接了。

如果想添加其他数据来源,我会看到可以集成到 Set up new data sources(设置新数据来源)部分的外部 SaaS 应用程序列表。要了解如何将外部 SaaS 应用程序识别为数据来源,我可以通过选择 How to enable access(如何启用访问权限)了解更多信息。

现在我将导入数据集并选择 Salesforce 连接。

在下一页上,我可以定义连接设置并从 Salesforce 导入数据。完成配置后,我选择 Connect(连接)。

在接下来的页面上,我看到了我已经使用 Amazon AppFlow 和 appflowdatasourcedb 的 AWS Glue Data Catalog 配置的 Salesforce 数据。我还可以看到表格预览架构是否是我需要的数据。

然后,通过在 SageMaker Data Wrangler SQL Explorer 中执行 SQL 查询,开始使用这些数据构建我的数据集。然后,选择 Import query(导入查询)。

然后,我为数据集定义一个名称。

此时,我可以开始做数据准备过程了。可以导航到 Analysis(分析)选项卡来运行数据洞察报告。该分析会为我提供一份报告,说明数据质量问题,以及接下来需要使用的转换来根据我想要预测的机器学习问题来解决这些问题。要详细了解如何使用数据分析功能,请参阅 Amazon SageMaker Data Wrangler 博客文章中的利用数据质量和见解加快数据准备工作

就我而言,有几列不需要,我需要删除这些列。我选择 Add step(添加步骤)。

我喜欢的一个功能是,Amazon SageMaker Data Wrangler 提供了许多 ML 数据转换。它可以帮助我简化在一个仪表板中清理、转换和特征工程数据的过程。有关 SageMaker Data Wrangler 为转换数据提供的更多信息,请阅读此转换数据文档页面。

在此列表中,选择 Manage columns(管理列)。

然后,在 Transform(转换)部分中,选择 Drop column(删除列)选项。然后,我选择不需要的列。

完成后,删除不需要的列,我刚才创建的 Drop column(删除列)数据准备步骤将列在 Add step(添加步骤)部分中。

我还可以在 Amazon SageMaker Data Wrangler 中看到数据流的视觉效果。在这个例子中,我的数据流是基本数据。但是,当数据准备过程变得复杂时,通过这种可视化视图,我可以轻松查看所有数据准备步骤。

从现在开始,我可以用 Salesforce 数据做需要做的事情。例如,我可以通过选择 Export to(导出到),然后从 Add destination(添加目标) 菜单中选择 Amazon S3,将数据直接导出到 Amazon S3。在这个用例中,我指定 Data Wrangler 在处理完数据后将数据存储在 Amazon S3 中,方法是选择 Add destination(添加目的地),然后选择 Amazon S3

Amazon SageMaker Data Wrangler 让我能够灵活使用计划任务自动执行相同的数据准备流程。我还可以使用 SageMaker Pipelines(通过 Jupyter Notebook)SageMaker Feature Store(通过 Jupyter Notebook)自动执行特征工程,然后使用 SageMaker 推理管道(通过 Jupyter Notebook)部署到推理端点。

注意事项
相关新闻 — 您可以采用这个功能轻松地使用 Amazon SageMaker Data Wrangler 进行数据汇总和准备。由于此功能与 Amazon AppFlow 和 AWS Glue Data Catalog 集成,因此您可能想了解更多信息 Amazon AppFlow 现在支持 AWS Glue Data Catalog 集成并提供增强的数据准备页面。

可用性 — Amazon SageMaker Data Wrangler 支持 SaaS 应用程序作为数据来源,可在 Amazon AppFlow 目前支持的所有地区使用。

定价 — 在 Amazon SageMaker Data Wrangler 中使用 SaaS 应用程序支持无需支付额外费用,但是运行 Amazon AppFlow 才能在 Amazon SageMaker Data Wrangler 中获取数据需要付费。

访问从软件即服务(SaaS)平台导入数据文档页面,了解有关此功能的更多信息,然后按照入门指南开始使用 Amazon SageMaker Data Wrangler 汇总数据和准备 SaaS 应用程序数据。

祝大家构建顺利!
Donnie