天天看點

Datax遷移Cassandra表級别TTL的資料

摘要    

參考文章

datax遷移Cassandra資料

,我們可以使用datax離線遷移Cassandra 到Cassandra資料庫以及mysql 到Cassandra的資料遷移,本文介紹如何使用Datax進行離線遷移Cassandra的表級别的TTL資料。

快速入門

使用datax的步驟很簡單,分别如下:

​1.通過

官方連結

下載下傳datax運作包;

2.目标叢集建構好需要遷移的表(表結構需要完全一樣);

2.配置下同步作業配置(json檔案);

4.在datax bin目錄下執行如下指令:

python datax.py {作業配置.json}      

注:因為是使用python運作,是以需要事先部署好python環境。

Cassandra 表級别TTL 資料離線遷移

假設使用者的keyspace名字是:ks,表名是:tb,且使用者的表的列包含pk, cn1,cn2,其中pk為主鍵(PRIMARY KEY),cn2,cn2 為regular column,表的ttl時間是10000秒,那麼使用者在進行遷移前需要按照上述步驟的1和2準備好遷移的基礎環境;

這裡給出使用者同步的json作業配置檔案:

{
  "job": {
    "setting": {
      "speed": {
        "channel": 3
      }
    },
    "content": [
      {
        "reader": {
          "name": "cassandrareader",
          "parameter": {
            "host": "源叢集位址",
            "port": 9042,
            "useSSL": false,
            "keyspace": "ks",
            "table": "tb",
            "column": [
              "c1",
              "c2",
              "writetime(c2)"
            ]
          }
        },
        "writer": {
          "name": "cassandrawriter",
          "parameter": {
            "host": "目标叢集位址",
            "port": 9042,
            "useSSL": false,
            "keyspace": "ks",
            "table": "tb",
            "column": [
              "c1",
              "c2",
              "writetime()"
            ]
          }
        }
      }
    ]
  }
}      

按照上述配置生成json配置檔案後,點選執行,最終結果如下:

Datax遷移Cassandra表級别TTL的資料

注意事項

1.datax主要将源叢集的資料全表讀出,然後寫入到目标叢集,是以運作datax的的節點cpu和記憶體配置越高,對整個datax遷移速度會有較大幫助;

2.cassandra源叢集如果TTL過期資料過多,會造成tombstone過多,最終遷移過程可能出現讀操作abort。如遇到這個問題,可以将源叢集的tombstone進行清理,清理流程主要是:全叢集做repair,調整gc_grace_seconds時間(時間需要調的相對合理,否則影響較大),全量資料做compact或者garbagecollect。