使用 Arcion 將資料從 Cassandra 移轉至 Azure Cosmos DB for Apache Cassandra 帳戶

適用於: Cassandra

因為多種原因,Azure Cosmos DB 中的 API for Cassandra 現已成為在 Apache Cassandra 上執行的企業工作負載的絕佳選擇,例如:

  • 沒有管理和監視額外負荷:可消除跨作業系統、JVM 和 yaml 檔案和其互動的無數種管理和監視設定額外負荷。

  • 可大幅節省成本:您可以使用 Azure Cosmos DB 來節省成本,包括 VM、頻寬和任何適用授權的成本。 此外,您也不需要管理資料中心、伺服器、SSD 儲存體、網路和電力的成本。

  • 可使用現有的程式碼和工具:Azure Cosmos DB 提供與現有 Cassandra SDK 和工具相容的有線通訊協定層級。 此相容性可確保您可以透過 Azure Cosmos DB for Apache Cassandra 使用現有程式碼基底執行瑣碎的變更。

如要將資料庫工作負載從某個平台移轉至另一個平台,有多種方式。 Arcion 是一款安全且可靠的工具,可執行從其他資料庫至 Azure Cosmos DB 的零停機移轉。 本文描述使用 Arcion 將資料從 Apache Cassandra 資料庫移轉至 Azure Cosmos DB for Apache Cassandra 所需的步驟。

注意

來自 Arcion 的服務目前為搶鮮版 (Beta)。 如需詳細資訊,請透過 Arcion 支援連絡他們

使用 Arcion 執行移轉的優點

Arcion 的移轉解決方案是遵循逐步執行方法,以移轉複雜的作業工作負載。 以下是 Arcion 零停機時間移轉計劃的一些重要層面:

  • 提供將商務邏輯 (資料表、索引、檢視) 從 Apache Cassandra 資料庫自動移轉至 Azure Cosmos DB 的服務。 您不需要手動建立結構描述。

  • Arcion 提供大量以及平行的資料庫複寫。 並可讓來源和目標平台在移轉期間,使用名為異動資料擷取 (CDC) 的技術,進行同步處理。 透過 CDC 的使用,Arcion 將持續從來源資料庫 (Apache Cassandra) 提取的異動資料流,並將其套用至目的地資料庫 (Azure Cosmos DB)。

  • 就算系統中的硬體或軟體失敗時,Arcion 仍可容錯,並且只會交付一次資料。

  • 它會使用安全性方法 (如 TLS 加密等) 保護傳輸期間的資料。

移轉資料的步驟

本節描述設定 Arcion 的必須步驟,以將資料從 Apache Cassandra 資料庫移轉至 Azure Cosmos DB。

  1. 在您計畫安裝 Arcion replicant 的電腦上,新增安全性憑證。 Arcion replicant 需要此憑證,才可建立具有指定 Azure Cosmos DB 帳戶的 TLS 連線。 您可以透過下列步驟新增憑證:

    wget https://cacert.omniroot.com/bc2025.crt
    mv bc2025.crt bc2025.cer
    keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
    
  2. 您可以在 Arcion 網站上要求示範,以取得 Arcion 安裝與二進位檔案。 或者,您也可以傳送電子郵件給小組。

    Arcion replicant tool download

    Arcion replicant files

  3. 從 CLI 終端機,設定來源資料庫設定。 使用 vi conf/conn/cassandra.yml 命令開啟設定檔,並新增 Cassandra 節點、連接埠號碼、使用者名稱、密碼,以及任何其他必要詳細資料的 IP 位址清單,且以逗號分隔。 以下是設定檔內容的範例:

    type: CASSANDRA
    
    host: 172.17.0.2
    port: 9042
    
    username: 'cassandra'
    password: 'cassandra'
    
    max-connections: 30
    
    

    Open Cassandra connection editor

    Cassandra connection configuration

    在填寫完設定詳細資料後,請儲存並關閉檔案。

  4. 您可以選擇性地設定來源資料庫篩選檔案。 篩選檔案會指定要移轉的結構描述或資料表。 使用 vi filter/cassandra_filter.yml 命令開啟設定檔,並輸入下列設定詳細資料:

    
    allow:
    -	schema: “io_arcion”
    Types: [TABLE]
    

    在填寫完資料庫篩選詳細資料後,請儲存並關閉檔案。

  5. 接下來,您將設定目的地資料庫設定。 在定義該設定之前,請先建立 Azure Cosmos DB for Apache Cassandra 帳戶,然後建立 Keyspace 和資料表來儲存移轉的資料。 因為您將從 Apache Cassandra to API 移轉至 Azure Cosmos DB 中的 API for Cassandra,所以您可以使用與 Apache Cassandra 搭配使用的相同分割區索引鍵。

  6. 在移轉資料之前,請將容器輸送量增加至所需數量,好讓您的應用程式可以快速地移轉。 例如,您可以將輸送量增加到 100000 RU。 在開始移轉之前,先調整輸送量,可協助您縮短移轉資料的時間。

    Scale Azure Cosmos DB container throughout

    完成移轉之後,請降低輸送量。 根據每項作業所需的儲存資料量與 RU 數目,您可以估計資料移轉後所需的輸送量。 若要深入了解估計所需 RU 的方法,請參閱在容器和資料庫上佈建輸送量,以及使用 Azure Cosmos DB 容量規劃預估 RU/秒文章。

  7. 從 [連接字串] 窗格中,取得 Azure Cosmos DB 帳戶的 [連絡人、連接埠、使用者名稱] 和 [主要密碼]。 您將會在設定檔中使用這些值。

  8. 從 CLI 終端機,設定來源資料庫設定。 使用 vi conf/conn/cosmosdb.yml 命令開啟設定檔,並新增主機 URI、連接埠號碼、使用者名稱、密碼及其他必要參數的逗號分隔清單。 下列範例說明設定檔的內容:

    type: COSMOSDB
    
    host: '<Azure Cosmos DB account’s Contact point>'
    port: 10350
    
    username: 'arciondemo'
    password: '<Your Azure Cosmos DB account’s primary password>'
    
    max-connections: 30
    
  9. 接下來會使用 Arcion 移轉資料。 您可以在完整快照模式中執行 Arcion replicant:

    • 完整模式 - 在此模式中,replicant 會在移轉之後繼續執行,並會在來源 Apache Cassandra 系統上接聽任何變更。 如果偵測到任何變更,則會將其即時複寫至目標 Azure Cosmos DB 帳戶。

    • 快照模式 - 在此模式中,您可以執行結構描述與單次資料複寫。 此選項並不支援即時複寫。

    使用上述兩種模式,可不需停機,即可執行移轉。

  10. 若要遷移資料,請從 Arcion replicant 的 CLI 終端機執行下列命令:

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing
    

    Replicant UI 會顯示複寫進度。 一旦結構描述移轉與快照集作業完成之後,進度會顯示為 100%。 在完成移轉之後,您可以驗證目標 Azure Cosmos DB 資料庫上的資料。

    Cassandra data migration output

  11. 因為您已使用完整模式進行移轉,因此您可以執行下述作業,例如在來源 Apache Cassandra 資料庫上插入、更新或刪除資料等。 稍後驗證其是否會在目標 Azure Cosmos DB 資料庫上即時複寫。 在移轉之後,請務必減少針對您 Azure Cosmos DB 容器所設定的輸送量。

  12. 您可以隨時停止 replicant,並使用 --resume 參數將它重新啟動。 複寫會從停止的時間點繼續,因此不會影響資料的一致性。 下列命令顯示如何使用 resume 參數。

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing --resume
    

若要深入了解資料遷移至目的地,與即時移轉的詳細資訊,請參閱 Arcion replicant 示範

下一步