

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

# 数据流
<a name="data-flow"></a>

数据流重点领域包括以下三个区域：
+ 数据摄取
+ 数据留存
+ 数据迁移方法

## 数据摄取
<a name="data-ingestion"></a>

数据摄取侧重于如何将数据导入您的亚马逊 OpenSearch 服务域。在为其选择正确的摄取框架时，透彻了解数据源和格式至关重要。 OpenSearch

创建或现代化摄取设计的方法有很多种。有许多开源工具可用于构建自我管理的摄取管道。 OpenSearch [服务支持与 [Fluentd](https://www.fluentd.org/)、[Logstash](https://github.com/opensearch-project/logstash-output-opensearch) 或 Data Prepper 集成。OpenSearch ](https://docs.opensearch.org/latest/data-prepper/)这些工具在大多数日志分析解决方案开发者中都很受欢迎。您可以在 Amazon EC2 实例上、Amazon Elastic Kubernetes Service（Amazon EKS）上或本地部署这些工具。Logstash 和 Fluentd 都支持将 OpenSearch 亚马逊服务域作为输出目标。但是，这将要求您维护、修补、测试并保持 Fluentd 或 Logstash 软件版本为最新版本。

为了减少运营开销，您可以使用支持与 Amazon Service 集成的 AWS 托管 OpenSearch 服务之一。例如，[Amazon OpenSearch Ingestion](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ingestion.html) 是一个完全托管的无服务器数据收集器，可向亚马逊 OpenSearch 服务域提供实时日志、指标和跟踪数据。借助 OpenSearch Ingestion，您不再需要使用 Logstash 或 [Jaeger](https://www.jaegertracing.io/) 等第三方解决方案将数据提取到您的服务域中。 OpenSearch 您可以将数据生成器配置为向 OpenSearch Ingestion 发送数据。然后，它会自动将数据传输到您指定的域或集合。您还可以将 OpenSearch Ingestion 配置为在交付数据之前对其进行转换。

另一种选项是 [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)，这是一项完全托管式服务，可帮助构建无服务器摄取管线。Firehose 提供了一种安全的方式来提取、转换[流数据并将其传输到亚马逊 OpenSearch ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/integrations.html)服务域名。它可自动扩展以满足数据吞吐量要求，并且无需进行日常管理。Firehose 还可以在将数据加载到您的 OpenSearch 服务域之前，通过使用 AWS Lambda、压缩和批处理数据来转换传入的记录。

使用托管服务，您可以停用现有的数据摄取管线，也可以增强当前设置以减少运营开销。

迁移规划是评测您当前摄取管线是否满足当前和未来使用案例需求的好时机。如果您要从自行管理的 Elasticsearch 或 OpenSearch 集群迁移，则您的摄取管道应支持将终端节点从当前集群交换到 Amazon S OpenSearch ervice 域，而客户端库更新最少。

## 数据留存
<a name="data-retention"></a>

在规划数据摄取和存储时，务必规划并商定数据留存。对于日志分析使用案例，在域内创建正确的策略以停用历史数据至关重要。从现有的本地和基于云虚拟机的架构迁移时，您可能会为所有数据节点使用特定类型的实例。数据节点具有相同的 CPU、内存和存储配置文件。大多数客户会配置高吞吐量存储以满足高速编制索引要求。这种单一存储配置文件架构称为*纯热节点*架构或纯热架构。纯热架构将存储与计算耦合，这意味着如果存储要求增加，则需要添加计算节点。

为了将存储与计算分离，Amazon OpenSearch 服务提供了 UltraWarm 存储层。 UltraWarm 通过提供可容纳比传统数据节点更大的数据量的节点，提供了一种经济实惠的在 Amazon S OpenSearch ervice 上存储只读数据的方式。

在规划期间，决定数据留存和处理要求。要降低现有解决方案的成本，请利用该 UltraWarm 等级。确定数据的留存要求。然后创建*索引状态管理策略*，以将数据从热状态迁移到暖状态或在不需要时自动从域中删除数据。这还有助于确保您的域不会耗尽存储空间。

## 数据迁移方法
<a name="data-migration-approaches"></a>

在规划阶段，决定特定的数据迁移方法至关重要。您的数据迁移方法决定了如何将当前数据存储中的数据无缝迁移到目标存储。这些方法的具体细节在[第 4 阶段 – 数据迁移](stage-4-data-migration.md)（也就是您实施方法的时候）部分中介绍。

本节介绍可用于将 Elasticsearch 或 OpenSearch 集群迁移到亚马逊 OpenSearch 服务的不同方式和模式。选择模式时，考虑以下因素列表（并非详尽无遗）：
+ 无论您是要从现有自行管理的集群中复制数据，还是要从原始数据来源（日志文件、产品目录数据库）进行重建
+ 源 Elasticsearch 或 OpenSearch 集群与目标亚马逊 OpenSearch 服务域的版本兼容性
+ 依赖于 Elasticsearch 或集群的应用程序和服务 OpenSearch
+ 迁移的可用窗口
+ 现有环境中已编入索引的数据量

**通过快照构建**

快照是从自我管理的 Elasticsearch 集群迁移到亚马逊服务的最常用方式。 OpenSearch 快照提供了一种使用诸如 Amazon S3 之类的耐用存储服务来备份您的 OpenSearch 或 Elasticsearch 数据的方法。使用这种方法，您可以拍摄当前 Elasticsearch 或 OpenSearch 环境的快照，然后将其恢复到目标亚马逊 OpenSearch 服务环境中。恢复快照后，您可以将应用程序指向新环境。在以下情况下，这是一个更快的解决方案：
+ 您的源和目标兼容。
+ 现有集群包含大量编入索引的数据，重新编制索引可能非常耗时。
+ 您的源数据无法重新编制索引。

有关其他注意事项，请参阅[第 4 阶段 – 数据迁移](stage-4-data-migration.md)部分中的*快照注意事项*。

**通过来源构建**

这种方法意味着您不会从当前的 Elasticsearch 或 OpenSearch 集群中移动数据。相反，您可以直接将数据从日志或产品目录源重新加载到目标 Amazon S OpenSearch ervice 域中。这通常是通过对现有数据摄取管线进行细微更改来完成的。在日志分析用例中，从源代码构建可能还需要将历史日志从来源重新加载到新的 OpenSearch 服务环境。对于搜索用例，可能需要您将完整的产品目录和内容重新加载到新的亚马逊 OpenSearch 服务域中。此方法在以下情况下效果很好：
+ 您的源环境和目标环境版本不兼容，无法进行快照恢复。
+ 作为迁移的一部分，您想在目标环境中更改数据模型。
+ 您想跳转到最新版本的 Amazon Serv OpenSearch ice 以避免滚动升级，并且您想一次性解决重大更改。如果您要自行管理相对较旧的 Elasticsearch 版本（5.x 或更早版本），这可能是一个好主意。
+ 您可能需要更改编制索引策略。例如，在新环境中，您可以每月滚动一次，而不是每天滚动。

有关通过来源构建的选项的信息，请参阅 *2. 通过来源构建*（在[第 4 阶段 – 数据迁移](stage-4-data-migration.md)部分中）。

**从现有的 Elasticsearch 或环境中远程重新编制索引 OpenSearch **

此方法使用来自亚马逊 OpenSearch 服务的[远程重新索引 API](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/remote-reindex.html)。使用远程重新索引，您可以将数据直接从现有的本地或基于云的 Elasticsearch 或 OpenSearch 集群复制到您的亚马逊 OpenSearch 服务域中。您可以构建自动化，使两个环境位置之间的数据保持同步，直到割接到目标环境为止。

**使用开源数据迁移工具**

有多种开源工具可用于将数据从现有 Elasticsearch 环境迁移到目标亚马逊 OpenSearch 环境。Logstash 实用程序就是一个这样的例子。您可以使用 Logstash 实用工具从 Elasticsearch 或 OpenSearch 集群中提取数据，然后将其复制到亚马逊服务域中。 OpenSearch 

我们建议您评估所有选项，然后选择最适合的选项。为确保所选方法万无一失，请在 PoC 阶段测试所有工具和自动化。有关如何实施这些方法的详细信息和 step-by-step指导，请参阅第 [4 阶段 — 数据迁移](stage-4-data-migration.md)部分。