数据是机器学习(ML)算法的基础。存储大量数据的最常见格式之一是Apache Parquet,因为它具有紧凑和高效的格式。这意味着想要从数据仓库中提取大量数据的业务分析师必须经常使用存储在Parquet中的数据。
为了简化对Parquet文件的访问,Amazon SageMaker Canvas添加了从40多个数据源(包括支持Apache Parquet的Amazon Athena)的数据导入功能。
Canvas提供了连接到AWS数据源(如Amazon Simple Storage Service(Amazon S3)、Athena和Amazon Redshift)的功能。在本文中,我们描述了如何使用AWS Lake Formation查询Athena中的Parquet文件,并使用输出Canvas来训练模型。
解决方案概述
Athena是一种基于开源框架构建的无服务器交互式分析服务,支持开放表格和文件格式。许多团队正在转向Athena,以使其能够在相应的数据存储中进行交互式查询和分析,而不需要创建多个数据副本。
Athena允许应用程序使用标准SQL在S3数据湖中查询大量数据。 Athena支持各种数据格式,包括:
- CSV
- TSV
- JSON
- 文本文件
- 开源列格式,如ORC和Parquet
- Snappy,Zlib,LZO和GZIP格式的压缩数据
Parquet文件将数据组织成列,并使用高效的数据压缩和编码方案进行快速数据存储和检索。您可以通过使用Parquet文件进行大量数据导入并使用特定列,从而减少在Canvas中的导入时间。
Lake Formation是一种集成的数据湖服务,可使您轻松地摄取、清理、编目、转换和保护数据,并使其可用于分析和ML。 Lake Formation通过使用包括AWS Glue、Athena、Amazon Redshift、Amazon QuickSight和Amazon EMR的Zeppelin笔记本电脑与Apache Spark来自动管理对Amazon S3中注册数据的访问,以确保符合您定义的策略。
在本文中,我们向您展示如何从Athena将Parquet数据导入Canvas,其中Lake Formation使数据治理成为可能。
为了说明,我们使用了消费电子业务的操作数据。我们创建一个模型,使用它们的历史时间序列数据来估计电子产品的需求。
此解决方案分为三个步骤:
- 设置Lake Formation。
- 授予Lake Formation访问权限以使用Canvas。
- 使用Athena将Parquet数据导入Canvas。
- 使用导入的Parquet数据在Canvas中构建ML模型。
以下图表说明了解决方案架构。
设置Lake Formation数据库
这里列出的步骤是一次性设置,以向您展示数据湖托管的Parquet数据,分析师可以使用Canvas消费这些数据以获得洞察力。云工程师或管理员可以最好地执行这些先决条件。分析师可以直接转到Canvas并从Athena导入数据。
本文中使用的数据包括从Amazon S3获取的两个数据集。这些数据集是为本文合成生成的。
- 消费电子目标时间序列(TTS) – 要预测的数量的历史数据称为目标时间序列(TTS)。在这种情况下,它是对某个项目的需求。
- 消费电子相关时间序列(RTS) – 与每笔销售交易时间完全相同的其他历史数据称为相关时间序列(RTS)。在我们的用例中,它是一个项目的价格。RTS数据集包括未包含在TTS数据集中的时间序列数据,可能会提高您的预测器的准确性。
- 从这两个文件夹中上传数据到Amazon S3作为Parquet文件:
- ce-rts – 包含消费电子相关时间序列(RTS)。
- ce-tts – 包含消费电子目标时间序列(TTS)。
- 使用Lake Formation创建数据湖。
- 在Lake Formation控制台上创建名为
consumer-electronics
的数据库。
- 使用S3桶中的数据创建名为
ce-rts-Parquet
和ce-tts-Parquet
的两个消费电子数据集表。
我们在后续步骤中使用此步骤中创建的数据库,通过Athena将Parquet数据导入Canvas。
向Canvas授予Lake Formation访问权限
这是由云工程师或管理员执行的一次性设置。
- 授予数据湖访问Canvas以访问消费电子Parquet数据的权限。
- 在SageMaker Studio域中,查看Canvas用户的详细信息。
- 复制执行角色名称。
- 确保执行角色具有足够的权限,以访问以下服务:
- Canvas。
- 存储Parquet数据的S3桶。
- 从Canvas连接到Athena。
- AWS Glue使用Athena连接器访问Parquet数据。
- 在Lake Formation中,选择导航窗格中的数据湖权限。
- 选择授予。
- 对于原则,选择IAM用户和角色,以提供Canvas访问您的数据工件的权限。
- 指定SageMaker Studio域用户的执行角色。
- 指定数据库和表。
- 选择授予。
您可以授予表、列和数据的细粒度操作。此选项通过定义的角色分离您的敏感数据,提供粒度化的访问配置。
在为Canvas和Athena集成设置所需的环境后,继续执行下一步,使用Athena将数据导入Canvas。
使用Athena导入数据
完成以下步骤导入由Lake Formation管理的Parquet文件:
- 在Canvas中,在导航窗格中选择数据集。
- 选择+导入以导入由Lake Formation管理的Parquet数据集。
- 选择数据源为Athena。
- 从菜单中选择Athena数据目录和表细节中的
consumer-electronics
Parquet数据集。 - 导入这两个数据集。拖放数据源以选择第一个。
当您拖放数据集时,数据预览将出现在页面的底部框架中。
- 选择导入数据。
- 将
consumer-electronics-rts
输入为要导入的数据集的名称。
数据导入需要根据数据大小而花费时间。此示例中的数据集很小,因此导入需要几秒钟。当数据导入完成时,状态从处理中变为已准备就绪。
- 重复第二个数据集(
ce-tts
)的导入过程。
当导入ce-tts
Parquet数据时,数据集页面会显示两个数据集。
导入的数据集包含有针对性和相关的时间序列数据。RTS数据集可以帮助深度学习模型提高预测准确性。
让我们将数据集连接起来以准备进行分析。
- 选择数据集。
- 选择连接数据。
- 选择并拖动两个数据集到中心窗格,应用内部连接。
- 选择连接图标以查看连接条件是否应用正确,并确保正确列已连接。
- 选择保存并关闭以应用连接条件。
- 为加入的数据集提供一个名称。
- 选择导入数据。
加入的数据已导入并创建为新数据集。加入的数据集来源显示为Join。
使用Parquet数据在Canvas上构建ML模型
来自Lake Formation的Parquet数据现在可在Canvas上使用。现在您可以在数据上运行ML分析。
- 在成功导入数据后,在Canvas的Ready-to-use models中选择创建自定义模型。
- 输入模型名称。
- 选择问题类型(对于本文,为预测分析)。
- 选择创建。
- 选择
consumer-electronic-joined
数据集来训练模型以预测电子产品的需求。
- 选择需求作为目标列,以预测对消费电子产品的需求。
根据提供给Canvas的数据,模型类型自动派生为时间序列预测,并提供配置时间序列模型选项。
- 选择配置时间序列模型链接以提供时间序列模型选项。
- 按照以下屏幕截图中显示的方式输入预测配置。
- 排除组列,因为未对数据集执行逻辑分组。
对于构建模型,Canvas提供两种构建选项。根据您的喜好选择选项。快速构建通常需要约15-20分钟,而标准构建需要约4小时。
-
- 快速构建 – 在与标准构建相比的一小部分时间内构建模型;可能会以速度换取潜在准确性。
- 标准构建 – 通过AutoML提供的优化过程构建最佳模型;速度以准确性为代价。
- 对于本文,我们选择快速构建以说明目的。
当快速构建完成后,模型评估指标将在Analyze部分呈现。
- 选择Predict以运行单个预测或批量预测。
清理
注销Canvas以避免未来的费用。
结论
企业在数据湖中以各种格式拥有数据,包括高效的Parquet格式。Canvas推出了40多个数据源,包括Athena,您可以轻松地从数据湖中以各种格式获取数据。要了解更多信息,请参阅使用Amazon SageMaker Canvas从40多个数据源导入数据进行无代码机器学习。
在本文中,我们使用Athena将Lake Formation管理的Parquet文件导入Canvas。Canvas ML模型使用历史需求和价格数据预测了消费电子产品的需求。由于用户友好的界面和生动的可视化效果,我们在不编写任何代码的情况下完成了这个过程。Canvas现在允许业务分析师使用数据工程团队的Parquet文件构建ML模型、进行分析和提取洞察,而不依赖于数据科学团队。
要了解有关Canvas的更多信息,请参阅使用Canvas进行无代码机器学习预测机器故障类型。有关使用无代码解决方案创建ML模型的更多信息,请参阅Amazon SageMaker Canvas——为业务分析师提供可视化、无代码机器学习能力的发布。