

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

# 使用變更資料擷取 (CDC) 遷移資料
<a name="migration-hybrid-cdc"></a>

如果您已經熟悉使用 [Debezium](https://debezium.io/) 設定變更資料擷取 (CDC) 管道，您可以使用此選項將資料遷移到 Amazon Keyspaces，作為使用 CQLReplicator 的替代方案。Debezium 是 CDC 的開放原始碼分散式平台，旨在監控資料庫並可靠地擷取資料列層級的變更。

[Apache Cassandra 的 Debezium 連接器](https://debezium.io/documentation/reference/stable/connectors/cassandra.html)會將變更上傳至 Amazon Managed Streaming for Apache Kafka (Amazon MSK)，讓下游消費者可以取用和處理這些變更，進而將資料寫入 Amazon Keyspaces。如需詳細資訊，請參閱[從 Apache Cassandra 到 Amazon Keyspaces 的持續資料遷移指南](https://aws.amazon.com/solutions/guidance/continuous-data-migration-from-apache-cassandra-to-amazon-keyspaces/)。

若要解決任何潛在的資料一致性問題，您可以使用 Amazon MSK 實作程序，其中取用者會將 Cassandra 中的金鑰或分割區與 Amazon Keyspaces 中的金鑰或分割區進行比較。

若要成功實作此解決方案，建議您考慮下列事項。
+ 如何剖析 CDC 遞交日誌，例如如何移除重複的事件。
+ 如何維護 CDC 目錄，例如如何刪除舊日誌。
+ 如何處理 Apache Cassandra 中的部分故障，例如，如果寫入在三個複本中只有一個成功。
+ 如何處理資源配置，例如增加執行個體的大小，以考量節點上 CDC 程序的額外 CPU、記憶體、DIK 和 IO 需求。

此模式會將來自 Cassandra 的變更視為「提示」，表示金鑰可能已從先前的狀態變更。若要判斷是否有變更要傳播到目的地資料庫，您必須先使用 `LOCAL_QUORUM`操作從來源 Cassandra 叢集讀取，以接收最新的記錄，然後將其寫入 Amazon Keyspaces。

在範圍刪除或範圍更新的情況下，您可能需要對整個分割區執行比較，以判斷哪些寫入或更新事件需要寫入目的地資料庫。

如果寫入不等冪，您也需要在寫入 Amazon Keyspaces 之前，將寫入與目的地資料庫中已存在的寫入進行比較。

下圖顯示使用 Debezium 和 Amazon MSK 的 CDC 管道典型架構。

![\[使用變更資料擷取管道，將資料從 Apache Cassandra 遷移至 Amazon Keyspaces。\]](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/migration/hybrid-migration-CDC.png)
