本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
與 Amazon OpenSearch 服務零ETL集成
Amazon OpenSearch 服務作為目的地
OpenSearch 與 Amazon DocumentDB 的服務整合可讓您串流完整負載,並將資料事件變更為 OpenSearch 網域。擷取基礎設施以擷取管道形式 OpenSearch 託管,並提供高規模、低延遲機制,以持續從 Amazon DocumentDB 集合串流資料。
在完全負載期間,零ETL整合會先將歷史滿載資料擷取至 OpenSearch 使用擷取管線。擷取滿載資料之後, OpenSearch 擷取管道將開始從 Amazon DocumentDB 變更串流讀取資料,並最終 catch 以維持 Amazon DocumentDB 和. 之間近乎即時的資料一致性 OpenSearch OpenSearch 將文件儲存在索引中。來自 Amazon DocumentDB 集合的傳入資料可以傳送到一個索引,也可以分割成不同的索引。擷取管道會同步 Amazon DocumentDB 集合中的所有建立、更新和刪除事件,做為對應的建立、更新和刪除 OpenSearch 文件,以保持兩個資料系統同步。擷取管線可設定為從一個集合讀取資料並寫入一個索引,或從一個集合讀取資料,並有條件地路由到多個索引。
您可以使用下列方式將擷取管道設定為將資料從 Amazon DocumentDB 串流至 Amazon OpenSearch 服務:
-
僅滿載
-
無需滿載即可從 Amazon DocumentDB 流更改流事件
-
滿負荷,然後從 Amazon DocumentDB 更改流
若要設定擷取管線,請執行下列步驟:
步驟 1:建立 Amazon OpenSearch 服務網域或 OpenSearch 無伺服器集合
需要具有適當權限才能讀取資料的 Amazon OpenSearch 服務集合。請參閱 Amazon OpenSearch 服務開發人員指南中的開始使用 Amazon 服務或 Amazon OpenSearch 無伺 OpenSearch 服器入門以建立系列。請參閱 Amazon OpenSearch 服務開發人員指南中的 Amazon OpenSearch 擷取,以建立具有正確許可的AIM角色,以存取將資料寫入集合或網域。
步驟 2:在 Amazon DocumentDB 叢集上啟用變更串流
確定已在 Amazon DocumentDB 叢集中的所需集合上啟用變更串流。請參閱 搭配 Amazon DocumentDB 使用變更串流,了解詳細資訊。
步驟 3:設定管道角色,具有寫入 Amazon S3 儲存貯體和目的地網域或集合的許可
建立 Amazon DocumentDB 集合並啟用變更串流後,請設定要在管道組態中使用的管道角色,然後在角色中新增下列許可:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowReadAndWriteToS3ForExport", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-bucket/export/*" ] } ] }
為了讓 OpenSearch 管線將資料寫入 OpenSearch 網域,網域必須具有允許 sts_role_arn 管線角色存取該原則的網域層級存取原則。下列範例網域存取原則允許您在上一個步驟中建立的名為pipeline-role
的管線角色將資料寫入名為的網域ingestion-domain
:
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{your-account-id}:role/{pipeline-role}" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:{region}:{your-account-id}:domain/{domain-name}/*" } ] }
步驟 4:添加管道角色所需的權限以創建 X-ENI
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": [ "arn:aws:ec2:*:420497401461:network-interface/*", "arn:aws:ec2:*:420497401461:subnet/*", "arn:aws:ec2:*:420497401461:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/OSISManaged": "true" } } } ] }
步驟 5:建立管道
設定 OpenSearch 擷取管道,將 Amazon DocumentDB 指定為來源。此範例管線組態假設使用變更串流擷取機制。如需詳細資訊,請參 OpenSearch 閱 Amazon OpenSearch 服務開發人員指南中的將擷取管道與 Amazon DocumentDB 搭配使用。
限制
下列限制適用於 Amazon DocumentDB 整 OpenSearch 合:
-
僅支援一個 Amazon DocumentDB 集合做為每個管道的來源。
-
不支援跨區域資料擷取。您的 Amazon DocumentDB 叢集和 OpenSearch 網域必須位於相同 AWS 的區域。
-
不支援跨帳戶資料擷取。您的 Amazon DocumentDB 叢集和 OpenSearch 擷取管道必須位於相同的帳戶中。 AWS
-
不支援 Amazon DocumentDB 彈性叢集。僅支援以 Amazon DocumentDB 執行個體為基礎的叢集。
-
確保 Amazon DocumentDB 叢集已使用密碼啟用 AWS 身份驗證。 AWS 密碼是唯一支援的驗證機制。
-
現有的管線組態無法更新,以擷取來自不同資料庫和/或不同集合的資料。若要更新管線的資料庫和/或集合名稱,您必須建立新的管線。