選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 DynamoDB ETL零整合 OpenSearch 與服務的最佳實務

焦點模式
使用 DynamoDB ETL零整合 OpenSearch 與服務的最佳實務 - Amazon DynamoDB

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

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

DynamoDB 與 Amazon Service 有 DynamoDB ETL零整合。 OpenSearch 如需詳細資訊,請參閱 DynamoDB OpenSearch 擷取外掛程式Amazon OpenSearch Service 的特定最佳實務

組態

  • 只有您需要執行搜尋的索引資料。一律使用映射範本 (template_type: index_templatetemplate_content) 和 include_keys來實作。

  • 監控日誌是否有與類型衝突相關的錯誤。 OpenSearch Service 預期指定金鑰的所有值都具有相同的類型。如果不相符,則會產生例外狀況。如果您遇到其中一個錯誤,您可以新增處理器,以擷取指定金鑰永遠是相同的值。

  • 通常使用 值的primary_key中繼資料document_id值。在 OpenSearch Service 中,文件 ID 等同於 DynamoDB 中的主要金鑰。使用主索引鍵可讓您輕鬆尋找文件,並確保更新一致地複寫至其中,不會發生衝突。

    您可以使用協助程式函數getMetadata取得您的主金鑰 (例如 document_id: "${getMetadata('primary_key')}")。如果您使用的是複合主索引鍵,協助程式函數會為您將它們串連在一起。

  • 一般而言,請使用 action設定的opensearch_action中繼資料值。這將確保以 OpenSearch 服務中的資料符合 DynamoDB 中最新狀態的方式複寫更新。

    您可以使用協助程式函數getMetadata取得您的主金鑰 (例如 action: "${getMetadata('opensearch_action')}")。您也可以透過 取得串流事件類型dynamodb_event_name,以用於篩選等使用案例。不過,您通常不應該將其用於 action設定。

可觀測性

  • 一律在 OpenSearch 接收器上使用無效字母佇列 (DLQ) 來處理捨棄事件。DynamoDB 的結構通常比 OpenSearch Service 低,而且總是可能發生非預期的情況。使用無效字母佇列,您可以復原個別事件,甚至自動化復原程序。這可協助您避免需要重建整個索引。

  • 一律設定複寫延遲未超過預期數量的提醒。假設一分鐘不會產生太多噪音,通常是安全的。這可能會根據寫入流量的激增程度和管道上的 OpenSearch 運算單位 (OCU) 設定而有所不同。

    如果您的複寫延遲超過 24 小時,您的串流會開始捨棄事件,而且除非您從頭開始完整重建索引,否則會有準確性問題。

擴展

  • 使用管道的自動擴展,協助擴展或縮減 OCUs,以最適合工作負載。

  • 對於沒有自動擴展的佈建輸送量資料表,我們建議您OCUs根據寫入容量單位 (WCUs) 除以 1000 進行設定。將最小值設定為OCU低於該金額 1 (但至少為 1),並將最大值設定為OCU高於該金額至少 1。

    • 公式:

      OCU_minimum = GREATEST((table_WCU / 1000) - 1, 1) OCU_maximum = (table_WCU / 1000) + 1
    • 範例:您的資料表已WCUs佈建 25000 個。管道的 OCUs應設定為至少 24 (25000/1000 - 1) 且最多至少 26 (25000/1000 + 1)。

  • 對於具有自動擴展的佈建輸送量資料表,我們建議您OCUs根據最小和最大 進行設定WCUs,除以 1000。將 DynamoDB 的最小值設為OCU低於最小值的 1,並將最大值設為至少OCU高於 DynamoDB 的最大值的 1。

    • 公式:

      OCU_minimum = GREATEST((table_minimum_WCU / 1000) - 1, 1) OCU_maximum = (table_maximum_WCU / 1000) + 1
    • 範例:您的 資料表具有 自動擴展政策,最小值為 8000,最大值為 14000。管道的 OCUs應設定為至少 7 (8000/1000 - 1),最多 15 (14000/1000 + 1)。

  • 對於隨需輸送量資料表,我們建議您OCUs根據每秒寫入請求單位的典型峰值和谷值進行設定。您可能需要在較長的期間內進行平均,這取決於您可用的彙總。將 DynamoDB 的最小值設為OCU低於最小值的 1,並將最大值設為 DynamoDB 的最大值至少OCU高於最大值的 1。

    • 公式:

      # Assuming we have writes aggregated at the minute level OCU_minimum = GREATEST((min(table_writes_1min) / (60 * 1000)) - 1, 1) OCU_maximum = (max(table_writes_1min) / (60 * 1000)) + 1
    • 範例:您的資料表的平均 谷值為每秒 300 個寫入請求單位,平均峰值為 4300 個。您的管道的 OCUs應設定為至少 1 (300/1000 - 1,但至少 1),最多 5 (4300/1000 + 1)。

  • 遵循擴展目的地 OpenSearch 服務索引的最佳實務。如果您的索引規模過小,則會減慢從 DynamoDB 擷取的速度,並可能導致延遲。

注意

GREATEST 是一個SQL函數,指定一組引數,會傳回具有最大值的引數。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。