

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

# 在 C SageMaker anvas 中自动准备数据
<a name="canvas-data-export"></a>

在数据流中转换数据后，您可以将转换结果导出到机器学习工作流中。当你导出变换时， SageMaker Canvas 会创建一个 Jupyter 笔记本。您必须在 Amazon SageMaker Studio Classic 中运行笔记本电脑。有关开始使用 Studio Classic 的信息，请联系您的管理员。

## 使用 Pipelines 自动完成数据准备
<a name="canvas-data-export-pipelines"></a>

当你想要构建和部署大规模机器学习 (ML) 工作流程时，你可以使用 Pipelines 来创建管理和部署 SageMaker AI 作业的工作流程。借助 Pipelines，您可以构建工作流程来管理 SageMaker AI 数据准备、模型训练和模型部署作业。你可以使用 Pipelines 来使用 SageMaker AI 提供的第一方算法。有关管道的更多信息，请参阅[SageMaker 管道](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html)。

当您将数据流中的一个或多个步骤导出到 Pipelines 时，Data Wrangler 会创建一个可用于定义、实例化、运行和管理管道的 Jupyter Notebook。

### 使用 Jupyter 笔记本创建管道
<a name="canvas-pipelines-notebook"></a>

使用以下步骤创建 Jupyter Notebook，将您的 Data Wrangler 流导出到 Pipelines。

使用以下步骤生成 Jupyter Notebook 并运行，将您的 Data Wrangler 流导出到 Pipelines。

1. 选择要导出的节点旁边的 **\+**。

1. 选择**导出数据流**。

1. 选择 **Pipelines（通过 Jupyter Notebook）**。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

您可以使用 Data Wrangler 生成的 Jupyter 笔记本来定义管道。管道包括由 Data Wrangler 流定义的数据处理步骤。

通过将步骤添加到笔记本的以下代码中的 `steps` 列表，您可以向管道添加其他步骤：

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

有关定义管道的更多信息，请参阅[定义 SageMaker AI 管道](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html)。

## 使用推理端点自动完成数据准备
<a name="canvas-data-export-inference"></a>

在 Data Wrangler 流程中创建 SageMaker AI 串行推理管道，在推理时使用 Data Wrangler 流程处理数据。推理管道是一系列步骤，可用于生成对新数据进行预测的经过训练的模型。Data Wrangler 中的串行推理管道可转换原始数据，并将数据提供给机器学习模型进行预测。在 Studio Classic 中，您可以通过 Jupyter Notebook 创建、运行和管理推理管道。有关访问笔记本的更多信息，请参阅[使用 Jupyter Notebook 创建推理端点](#canvas-inference-notebook)。

在笔记本中，您可以训练机器学习模型，也可以指定已训练的模型。你可以使用 Amazon A SageMaker utopilot 或 XGBoost 使用你在 Data Wrangler 流程中转换的数据来训练模型。

利用管道，您可以执行批量或实时推理。您也可以将 Data Wrangler 流程添加到 “ SageMaker 模型注册表”。有关托管模型的更多信息，请参阅[Multi-model 端点](multi-model-endpoints.md)。

**重要**  
如果 Data Wrangler 流具有以下转换，则无法将该流导出到推理端点：  
联接
串联
分组依据
如果必须使用上述转换来准备您的数据，请使用以下过程。  
创建 Data Wrangler 流。
应用前面的不受支持的转换。
将数据导出到 Amazon S3 存储桶。
创建单独的 Data Wrangler 流。
导入您在前面的流中导出的数据。
应用其余的转换。
使用我们提供的 Jupyter 笔记本创建串行推理管道。
有关将数据导出到 Amazon S3 存储桶的信息，请参阅[导出数据](canvas-export-data.md)。有关打开用于创建串行推理管道的 Jupyter 笔记本的信息，请参阅[使用 Jupyter Notebook 创建推理端点](#canvas-inference-notebook)。

Data Wrangler 会忽略那些在推理时删除数据的转换。例如，如果您使用**删除缺失项**配置，Data Wrangler 会忽略[处理缺失值](canvas-transform.md#canvas-transform-handle-missing)转换。

如果您重新拟合整个数据集的转换，则转换会延续到您的推理管道。例如，如果使用了中位数来估算缺失值，则重新拟合转换所得的中位数将应用于您的推理请求。在使用 Jupyter Notebook 或将数据导出到推理管道时，可以重新拟合 Data Wrangler 流中的转换。

串行推理管道支持以下数据类型的输入和输出字符串。每个数据类型都有一组要求。

**支持的数据类型**
+ `text/csv` – CSV 字符串的数据类型
  + 字符串不能具有标头。
  + 用于推理管道的特征必须与训练数据集内的特征顺序相同。
  + 特征之间必须有一个逗号分隔符。
  + 记录必须使用一个换行符分隔。

  下面是可在推理请求中提供的有效格式的 CSV 字符串示例。

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json` – JSON 字符串的数据类型
  + 数据集内用于推理管道的特征的顺序必须与训练数据集内的特征顺序相同。
  + 数据必须具有特定架构。可以将架构定义为具有一组 `features` 的单个 `instances` 对象。每个 `features` 对象都表示一个观测值。

  下面是可在推理请求中提供的有效格式的 JSON 字符串示例。

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### 使用 Jupyter Notebook 创建推理端点
<a name="canvas-inference-notebook"></a>

按照以下过程操作，导出您的 Data Wrangler 流以创建推理管道。

要使用 Jupyter 笔记本创建推理管道，请执行以下操作。

1. 选择要导出的节点旁边的 **\+**。

1. 选择**导出数据流**。

1. 选择 **SageMaker AI 推理管道（通过 Jupyter** 笔记本）。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

当您运行 Jupyter 笔记本时，会创建一个推理流构件。推理流构件是一个 Data Wrangler 流文件，其中包含用于创建串行推理管道的附加元数据。您正导出的节点包含来自前面节点的所有转换。

**重要**  
Data Wrangler 需要推理流构件来运行推理管道。您不能将自己的流文件用作构件。您必须使用前面的步骤创建构件。

## 使用 Python Code 自动完成数据准备
<a name="canvas-data-export-python-code"></a>

要将数据流中的所有步骤导出到可手动集成到任何数据处理工作流的 Python 文件，请使用以下步骤。

使用以下过程生成 Jupyter Notebook 并运行，将您的 Data Wrangler 流导出到 Python Code。

1. 选择要导出的节点旁边的 **\+**。

1. 选择**导出数据流**。

1. 选择 **Python 代码**。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

您可能需要配置 Python 脚本才能在管道中运行。例如，如果您运行的是 Spark 环境，请确保在有权访问 AWS 资源的环境中运行脚本。