

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

# 使用 Step Functions 和 Amazon Redshift API 运行 ETL/ELT 工作流程
<a name="sample-etl-orchestration"></a>

此示例项目演示了如何使用 Step Functions 和 Amazon Redshift 数据 API 来运行 ETL/ELT 工作流，该工作流可将数据加载到 Amazon Redshift 数据仓库。

在此项目中，Step Functions 使用一个 AWS Lambda 函数和 Amazon Redshift 数据 API 来创建所需的数据库对象并生成一组示例数据，然后并行执行两个任务，用于执行加载维度表，然后执行一个事实数据表。两个维度加载任务成功结束后，Step Functions 将执行事实数据表的加载任务，运行验证作业，然后暂停 Amazon Redshift 集群。

**注意**  
 您可以修改 ETL 逻辑来接收来自其他来源的数据，例如 Amazon S3，后者可以使用 [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) 命令将数据从 Amazon S3 复制到 Amazon Redshift 表。

有关 Amazon Redshift 和 Step Functions 服务集成的更多信息，请参阅以下指南：
+ [将服务与 Step Functions 集成](integrate-services.md)
+  [使用 Amazon Redshift 数据 API](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html) 
+  [Amazon Redshift 数据 API 服务](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds-data.html) 
+  [创建使用 Lambda 的 Step Functions 状态机](tutorial-creating-lambda-state-machine.md) 

有关 Lambda 和 Amazon Redshift 的 IAM 策略的更多信息，请参阅以下指南：
+  [用于呼叫的 IAM 政策 AWS Lambda](connect-lambda.md#lambda-iam) 
+  [授予对 Amazon Redshift 数据 API 的访问权限](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html#data-api-access) 

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [AWS Step Functions 定价](https://aws.amazon.com/step-functions/pricing/)。

## 第 1 步：创建状态机
<a name="sample-etl-orchestration-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-etl-orchestration-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。