

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 为 Amazon Redshift 执行概念验证（POC）。
<a name="proof-of-concept-playbook"></a>

Amazon Redshift 是一种流行的云数据仓库，它提供完全托管的基于云的服务，可与组织的 Amazon Simple Storage Service 数据湖、实时流、机器学习（ML）工作流、事务性工作流等集成。以下各节将指导您完成对 Amazon Redshift 执行概念验证（POC）的过程。此处的信息可帮助您为 POC 设定目标，并利用可自动为 POC 预置和配置服务的工具。

**注意**  
如需 PDF 格式的信息副本，请选择 [Amazon Redshift 资源](https://www.amazonaws.cn/redshift/resources/)页面上的**运行您自己的 Redshift POC** 链接。

执行 Amazon Redshift 的 POC 时，您需要测试、证明和采用各种功能，包括出色的安全功能、弹性扩展、易于集成和摄取以及灵活的去中心化数据架构选项。

![\[显示概念验证流程中各个步骤的描述。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-steps-overview.png)


请遵循以下步骤，以成功执行 POC。

## 步骤 1：确定 POC 的范围
<a name="proof-of-concept-scope"></a>

![\[表明范围步骤是概念验证流程中的当前步骤。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-step1.png)


执行 POC 时，您可以选择使用自己的数据，也可以选择使用基准测试数据集。选择自己的数据时，您可以对数据运行自己的查询。使用基准测试数据时，基准测试中提供了示例查询。如果您尚未准备好使用自己的数据执行 POC，请参阅[使用示例数据集](#use-sample-datasets)了解更多详细信息。

一般来说，我们建议 Amazon Redshift POC 使用两周的数据。

首先执行以下步骤：

1. **确定您的业务和功能需求，**然后进行倒推。常见的示例有：更快的性能、更低的成本、测试新的工作负载或功能，或者将 Amazon Redshift 与其他数据仓库进行比较。

1. **设定具体目标，**这些目标将成为 POC 的成功标准。例如，从*更快的性能*出发，列出您希望加速的前五个流程，并将当前的运行时间和所需的运行时间一并列出。这些可以是报告、查询、ETL 流程、数据摄取，或者您当前的任何棘手问题。

1. **确定运行测试所需的具体范围和构件**。您需要哪些数据集才能迁移或持续摄取到 Amazon Redshift 中，以及需要哪些查询和流程来运行测试以根据成功标准进行衡量？ 有两种方式可执行此操作：

   

**自带数据**
   + 要测试自己的数据，请列出测试成功标准所需的最低可行数据构件清单。例如，如果您当前的数据仓库有 200 个表，但您要测试的报告只需要 20 个表，则仅使用较小的表子集可以更快地运行 POC。

   

**使用示例数据集**
   + 如果您没有准备好自己的数据集，仍可使用行业标准的基准数据集（如 [TPC-DS](https://github.com/awslabs/amazon-redshift-utils/tree/master/src/CloudDataWarehouseBenchmark/Cloud-DWB-Derived-from-TPCDS) 或 [TPC-H](https://github.com/awslabs/amazon-redshift-utils/tree/master/src/CloudDataWarehouseBenchmark/Cloud-DWB-Derived-from-TPCH)）开始对 Amazon Redshift 执行 POC，并运行示例基准测试查询以利用 Amazon Redshift 的强大功能。创建 Amazon Redshift 数据仓库后，可以从其内部访问这些数据集。有关如何访问这些数据集和示例查询的详细说明，请参阅[步骤 2：启动 Amazon Redshift](#proof-of-concept-launch)。

## 步骤 2：启动 Amazon Redshift
<a name="proof-of-concept-launch"></a>

![\[表明 Amazon Redshift 启动步骤是概念验证流程的当前步骤。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-step2.png)


Amazon Redshift 可通过快速、简单且安全的大规模云数据仓库服务，使您更快地获得见解。您可以通过在 [Redshift Serverless 控制台](https://console.amazonaws.cn//redshiftv2/home?#serverless-dashboard)上启动仓库来快速开始工作，在几秒内将数据转化为见解。有了 Redshift Serverless，您就可以专注于交付业务成果，而不必担心管理数据仓库。

### 设置 Amazon Redshift Serverless
<a name="proof-of-concept-setup-serverless"></a>

首次使用 Redshift Serverless 时，控制台会引导您完成启动仓库所需的步骤。您也可能有资格获得账户中的 Redshift Serverless 使用积分。有关选择免费试用的更多信息，请参阅 [Amazon Redshift 免费试用](https://www.amazonaws.cn/redshift/free-trial/)。按照《Amazon Redshift 入门指南》**中的[使用 Redshift Serverless 创建数据仓库](https://docs.amazonaws.cn/redshift/latest/gsg/new-user-serverless.html#serverless-console-resource-creation)中的步骤，使用 Redshift Serverless 创建数据仓库。如果您没有想要加载的数据集，该指南还包含有关如何加载示例数据集的步骤。

如果您之前在自己的账户中启动过 Redshift Serverless，请按照《Amazon Redshift 管理指南》**中的[创建带有命名空间的工作组](https://docs.amazonaws.cn/redshift/latest/mgmt/serverless-console-workgroups-create-workgroup-wizard.html)中的步骤进行操作。仓库可用后，您可以选择加载 Amazon Redshift 中提供的示例数据。有关使用 Amazon Redshift 查询编辑器 v2 以加载数据的信息，请参阅《Amazon Redshift 管理指南》**中的[加载示例数据](https://docs.amazonaws.cn/redshift/latest/mgmt/query-editor-v2-loading.html#query-editor-v2-loading-sample-data)。

如果您自带数据而不是加载示例数据集，请参阅[步骤 3：加载数据](#proof-of-concept-load-data)。

## 步骤 3：加载数据
<a name="proof-of-concept-load-data"></a>

![\[表明加载步骤是概念验证流程中的当前步骤。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-step3.png)


启动 Redshift Serverless 后，下一步是为 POC 加载数据。无论您是上传简单的 CSV 文件、从 S3 中摄取半结构化数据，还是直接流式传输数据，Amazon Redshift 都能灵活地将数据从源位置快速轻松地移动到 Amazon Redshift 表中。

选择以下方法之一以加载数据。

### 上传本地文件
<a name="proof-of-concept-load-data-local-file"></a>

为了快速摄取和分析，您可以使用 [Amazon Redshift 查询编辑器 v2](https://docs.amazonaws.cn/redshift/latest/mgmt/query-editor-v2.html) 轻松从本地桌面加载数据文件。它能够处理各种格式的文件，如 CSV、JSON、AVRO、PARQUET、ORC 等。要让您的用户以管理员身份使用查询编辑器 v2 从本地桌面加载数据，您必须指定一个通用 Amazon S3 存储桶，并且必须为该用户账户[配置适当的权限](https://docs.amazonaws.cn/redshift/latest/mgmt/query-editor-v2-loading.html#query-editor-v2-loading-data-local)。您可以遵循[使用查询编辑器 V2 在 Amazon Redshift 中轻松安全地加载数据](https://www.amazonaws.cn/blogs//big-data/data-load-made-easy-and-secure-in-amazon-redshift-using-query-editor-v2/)，以获取分步指导。

### 加载 Amazon S3 文件
<a name="proof-of-concept-load-data-s3-file"></a>

要将数据从 Amazon S3 存储桶加载到 Amazon Redshift 中，请首先使用 [COPY 命令](https://docs.amazonaws.cn/redshift/latest/dg/t_loading-tables-from-s3.html)，指定源 Amazon S3 位置和目标 Amazon Redshift 表。确保正确配置 IAM 角色和权限，以允许 Amazon Redshift 访问指定的 Amazon S3 存储桶。请遵循[教程：从 Amazon S3 加载数据](https://docs.amazonaws.cn/redshift/latest/dg/tutorial-loading-data.html)，以获取分步指导。您也可以选择查询编辑器 v2 中的**加载数据**选项，直接从 S3 存储桶加载数据。

### 持续数据摄取
<a name="proof-of-concept-load-data-autocopy"></a>

[自动复制（预览版）](https://docs.amazonaws.cn/redshift/latest/dg/loading-data-copy-job.html)是 [COPY 命令](https://docs.amazonaws.cn/redshift/latest/dg/t_loading-tables-from-s3.html)的扩展，可自动从 Amazon S3 存储桶持续加载数据。当您创建 COPY 作业时，Amazon Redshift 会检测何时在指定路径中创建新的 Amazon S3 文件，然后自动加载这些文件，无需您的干预。Amazon Redshift 会跟踪加载的文件，以确认它们只加载一次。有关创建 COPY 作业的说明，请参阅[COPY JOB](r_COPY-JOB.md)

**注意**  
自动复制目前处于预览状态，仅在特定 Amazon Web Services 区域的预置集群中受支持。要创建用于自动复制的预览集群，请参阅[创建 S3 事件集成以自动从 Amazon S3 存储桶复制文件](loading-data-copy-job.md)。

### 加载流数据
<a name="proof-of-concept-load-data-streaming"></a>

串流摄取直接以低延迟、高速度的方式将流数据从 [Amazon Kinesis Data Streams](https://www.amazonaws.cn/kinesis/data-streams/) 和 [Amazon Managed Streaming for Apache Kafka](https://www.amazonaws.cn/msk/) 摄取到 Amazon Redshift 中。Amazon Redshift 串流摄取使用实体化视图，该视图将利用[自动刷新](https://docs.amazonaws.cn/redshift/latest/dg/materialized-view-refresh.html#materialized-view-auto-refresh)功能直接从流中更新。实体化视图映射到流数据来源。在实体化视图定义中，您可以对流数据执行筛选和聚合。有关从流中加载数据的分步指南，请参阅 [Amazon Kinesis Data Streams 入门](https://docs.amazonaws.cn/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started.html)或[开始使用 Amazon Managed Streaming for Apache Kafka 串流摄取](https://docs.amazonaws.cn/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started-MSK.html)。

## 步骤 4：分析数据
<a name="proof-of-concept-analyze"></a>

![\[表明分析步骤是概念验证流程中的当前步骤。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-step4.png)


创建 Redshift Serverless 工作组和命名空间并加载数据后，您可以通过从 [Redshift Serverless 控制台](https://console.amazonaws.cn//redshiftv2/home?#serverless-dashboard)的导航面板打开**查询编辑器 v2** 来立即运行查询。您可以使用查询编辑器 v2 针对自己的数据集测试查询功能或查询性能。

### 使用 Amazon Redshift 查询编辑器 v2 进行查询
<a name="proof-of-concept-setup-analyze-query"></a>

您可以从 Amazon Redshift 控制台访问查询编辑器 v2。有关如何使用查询编辑器 v2 配置、连接和运行查询的完整指南，请参阅[使用 Amazon Redshift 查询编辑器 v2 简化数据分析](https://www.amazonaws.cn/blogs//big-data/simplify-your-data-analysis-with-amazon-redshift-query-editor-v2/)。

或者，如果您想在 POC 中运行负载测试，则可以通过以下步骤来安装和运行 Apache JMeter。

### 使用 Apache JMeter 运行负载测试
<a name="proof-of-concept-setup-analyze-load-test"></a>

要执行负载测试以模拟“N”个用户同时向 Amazon Redshift 提交查询，可以使用基于 Java 的开源工具 [Apache JMeter](https://jmeter.apache.org/)。

要安装和配置 Apache JMeter 以在 Redshift Serverless 工作组中运行，请按照[使用 Amazon 分析自动化工具包自动进行 Amazon Redshift 负载测试](https://www.amazonaws.cn/blogs//big-data/automate-amazon-redshift-load-testing-with-the-aws-analytics-automation-toolkit/)中的说明进行操作。它使用 [Amazon 分析自动化工具包（AAA）](https://github.com/aws-samples/amazon-redshift-infrastructure-automation/tree/main)（一种用于动态部署 Redshift 解决方案的开源工具）来自动启动这些资源。如果您已将自己的数据加载到 Amazon Redshift 中，请务必执行步骤 5 – 自定义 SQL 选项，以确保提供要针对表进行测试的相应 SQL 语句。使用查询编辑器 v2 对每个 SQL 语句进行一次测试，以确保它们运行时没有错误。

完成自定义 SQL 语句并最终确定测试计划后，请进行保存并在 Redshift Serverless 工作组中运行测试计划。要监控测试进度，请打开 [Redshift Serverless 控制台](https://console.amazonaws.cn/redshiftv2/home?#serverless-query-and-database-monitoring)，导航到**查询和数据库监控**，选择**查询历史记录**选项卡，然后查看有关查询的信息。

要查看性能指标，请在 Redshift Serverless 控制台上选择**数据库性能**选项卡，以监控**数据库连接**和 **CPU 利用率**等指标。在这里，您可以查看图表以监控使用的 RPU 容量，并观察在工作组上运行负载测试时 Redshift Serverless 如何自动扩展以满足并发工作负载需求。

![\[显示所用 RPU 平均容量的示例图。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-rpu-capacity-used.png)


数据库连接是在运行负载测试时要监控的另一个有用指标，您可以通过该指标来了解工作组在给定时间如何处理大量并发连接以满足不断增长的工作负载需求。

![\[显示数据库连接的示例图。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-database-connections.png)


## 步骤 5：优化
<a name="proof-of-concept-optimize"></a>

![\[表明优化步骤是概念验证流程中的当前步骤。\]](http://docs.amazonaws.cn/redshift/latest/dg/images/poc-step5.png)


Amazon Redshift 通过提供各种配置和功能来支持各个使用案例，使成千上万的用户能够每天处理 EB 级数据，并为其分析工作负载提供支持。在这些选项之间进行选择时，客户希望寻找可帮助他们确定最优数据仓库配置以支持其 Amazon Redshift 工作负载的工具。

### 试用方案
<a name="proof-of-concept-optimize-test-drive"></a>

您可以使用[试用方案](https://github.com/aws/redshift-test-drive/tree/main)在潜在配置上自动重播现有工作负载，并分析相应的输出，以评估要将工作负载迁移到的最佳目标。有关使用试用方案评估不同 Amazon Redshift 配置的信息，请参阅[使用 Redshift 试用方案查找适合工作负载的 Amazon Redshift 配置](https://www.amazonaws.cn/blogs/big-data/find-the-best-amazon-redshift-configuration-for-your-workload-using-redshift-test-drive/)。