使用 Amazon OpenSearch 擷取在網域和集合之間移轉資料 - Amazon OpenSearch 服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon OpenSearch 擷取在網域和集合之間移轉資料

您可以使用 OpenSearch 擷取管道在 Amazon OpenSearch 服務網域或 OpenSearch 無伺服器 VPC 集合之間移轉資料。若要這麼做,您必須設定管線,在其中將一個網域或集合設定為來源,並將另一個網域或集合設定為接收器。這可以有效地將您的資料從一個網域或集合遷移到另一個網域或集合。

若要移轉資料,您必須具備下列資源:

  • 來源 OpenSearch 服務網域或 OpenSearch 無伺服器 VPC 集合。此網域或集合包含您要移轉的資料。如果您使用的是網域,該網域必須執行 1.0 或更新 OpenSearch 版本,或是版本 7.4 或更新版本。網域也必須具有授與管線角色適當權限的存取原則。

  • 您要將資料移轉至的個別網域或 VPC 集合。此網域或集合將充當管線接收

  • OpenSearch 擷取將用來讀取和寫入您的集合或網域的管線角色。您可以在管道組態中包含此角色的 Amazon 資源名稱 (ARN)。如需詳細資訊,請參閱下列資源:

限制

當您將 OpenSearch 服務網域或 OpenSearch 無伺服器集合指定為接收器時,會套用下列限制:

  • 管線無法寫入多個 VPC 網域。

  • 您只能在使用 VPC 存取的 OpenSearch 無伺服器集合之間移轉資料,或從中移轉資料。不支援公開收藏。

  • 您無法在單一管線組態中指定 VPC 和公用網域的組合。

  • 在單一配管組態中,您最多可以有 20 個非管線接收器。

  • 您可以在單一配管組態中指定最多三 AWS 區域 個不同的接收器。

  • 如果任何接收器關閉時間過長,或者沒有佈建足夠的容量來接收傳入資料,則具有多個接收器的管線可能會隨著時間的推移而降低處理速度。

OpenSearch 服務作為來源

您指定為來源的網域或集合,就是資料移轉源的地方。

在 IAM 中建立管道角色

若要建立 OpenSearch 擷取管道,您必須先建立管線角色,以授與網域或集合之間的讀取和寫入存取權限。若要這麼做,請執行下列步驟:

  1. 在 IAM 中建立新的許可政策以附加到管道角色。確保您允許從源讀取並寫入接收器的權限。如需為 OpenSearch 服務網域設定 IAM 管道許可的詳細資訊,請參閱授予 Amazon OpenSearch 擷取管道對網域的存取權授與 Amazon OpenSearch 擷取管道對集合的存取權

  2. 在管線角色中指定下列要從來源讀取的權限:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"es:ESHttpGet", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_cat/indices", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search" ] }, { "Effect":"Allow", "Action":"es:ESHttpPost", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/scroll" ] }, { "Effect":"Allow", "Action":"es:ESHttpDelete", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll" ] } ] }

建立管線

將原則連結至管線角色後,請使用AWSOpenSearchDataMigrationPipeline移轉藍圖建立管線。此藍圖包括用於在 OpenSearch 服務網域或集合之間移轉資料的預設組態。如需詳細資訊,請參閱 使用藍圖建立管道

注意

OpenSearch 擷取會使用您的來源網域版本和散佈來決定要使用哪種機制進行移轉。某些版本支持該point_in_time選項。 OpenSearch 無伺服器會使用search_after此選項,因為它不支援point_in_timescroll.

新索引可能正在遷移過程中建立,或者在移轉進行中時,文件可能正在更新。因此,您可能需要對網域索引資料執行單次掃描或多次掃描,以取得新的或更新的資料。

透過interval在管線組態中配置index_read_count和來指定要執行的掃描數。下列範例顯示如何執行多個掃描:

scheduling: interval: "PT2H" index_read_count: 3 start_time: "2023-06-02T22:01:30.00Z"

OpenSearch 擷取會使用下列組態來確保將資料寫入相同的索引,並維護相同的文件 ID:

index: "${getMetadata(\"opensearch-index\")}" document_id: "${getMetadata(\"opensearch-document_id\")}"

指定多個 OpenSearch 服務網域接收器

您可以指定多個公用 OpenSearch 服務網域做為資料的目的地。您可以使用此功能執行條件式路由,或將傳入資料複製到多個 OpenSearch Service 網域中。您最多可以指定 10 個不同的公用 OpenSearch 服務網域做為接收器。

在下列範例中,傳入資料會有條件地路由到不同的 OpenSearch Service 網域:

... route: - 2xx_status: "/response >= 200 and /response < 300" - 5xx_status: "/response >= 500 and /response < 600" sink: - opensearch: hosts: [ "https://search-response-2xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-2xx" routes: - 2xx_status - opensearch: hosts: [ "https://search-response-5xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-5xx" routes: - 5xx_status

將資料移轉至 OpenSearch 無伺服器 VPC 集合

您可以使用 OpenSearch 擷取將資料從來源 OpenSearch 服務網域或 OpenSearch 無伺服器集合移轉至 VPC 收集接收器。您必須在管線組態中提供網路存取原則。如需將資料擷取至 OpenSearch 無伺服器 VPC 集合的詳細資訊,請參閱。教學課程:使用 Amazon OpenSearch 擷取將資料擷取到集合

若要將資料移轉至 VPC 集合
  1. 建立 OpenSearch 無伺服器集合。如需說明,請參閱教學課程:使用 Amazon OpenSearch 擷取將資料擷取到集合

  2. 為集合建立網路原則,以指定對集合端點和儀表板端點的 VPC 存取權。如需說明,請參閱Amazon OpenSearch 無伺服器的網路存取

  3. 如果您還沒有管線角色,請建立管線角色。如需說明,請參閱管線角色

  4. 建立管線。如需說明,請參閱 使用藍圖建立管道