全部產品
Search
文件中心

:匯入Cassandra資料

更新時間:Jan 09, 2025

本文介紹使用開源DataX配置同步任務將雲資料庫Cassandra全量資料匯入至Lindorm寬表的方法。

前提條件

  • 已閱讀並瞭解Lindorm CQL使用限制。詳細資料,請參見Lindorm CQL使用限制

  • 已將用戶端IP地址添加至Lindorm白名單。如何添加,請參見設定白名單

  • 已在Lindorm寬表中建立Namespace和表。

注意事項

如果開源DataX部署在ECS執行個體,通過專用網路訪問Lindorm執行個體前,需要確保Lindorm執行個體和ECS執行個體滿足以下條件,以保證網路的連通性。

  • 所在地區相同,並建議所在可用性區域相同(以減少網路延時)。

  • ECS執行個體與Lindorm執行個體屬於同一專用網路。

操作步驟

以下操作以開源DataX部署在ECS執行個體上為例。

  1. 執行以下命令下載開源DataX安裝包。

    wget https://github.com/alibaba/DataX/archive/refs/tags/datax_v202303.tar.gz
  2. 解壓下載的開源DataX安裝包。

    tar zxvf datax_v202303.tar.gz
  3. 執行以下命令在DataX_datax_v202303專案中建立job目錄並建立同步任務檔案,檔案名稱為JOB.json

    mkdir job
    touch JOB.json
  4. 開啟同步任務檔案JOB.json

    vi JOB.json
  5. 配置同步任務檔案,同步任務檔案的配置內容如下,根據下表的參數說明配置同步任務。

    {
      "job": {
        "setting": {
          "speed": {
            "channel": 1
          }
        },
        "content": [
          {
            "reader": {
              "name": "cassandrareader",
              "parameter": {
                "host": "ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com",
                "port": 9042,
                "username": "TestUser01",
                "password": "testPassword",
                "useSSL": false,
                "consistancyLevel": "LOCAL_ONE",
                "timeout": 600000,
                "fetchsize": 1,
                "keyspace": "db",
                "table": "tt",
                "column": [
                  "id",
                  "n",
                  "id1"
                ],
                "where": "id > ${split_task_min} and id < ${split_task_max}"
          }
        },
          "writer": {
            "name": "cassandrawriter",
            "parameter": {
              "host": "ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com",
              "port": 9042,
              "username": "TestUser01",
              "password": "testPassword",
              "useSSL": false,
              "keyspace": "t1",
              "table": "tt",
              "column": [
                "id",
                "n",
                "id1"
              ]
          }
        }
        }
        ]
      }
    }                        

    參數

    是否必選

    說明

    channel

    表示同步任務的並行度,通過設定數值來提高同步任務的運行速度。

    host

    • reader.parameter.host:雲資料庫Cassandra叢集的串連地址。您可以通過雲資料庫Cassandra控制台擷取,擷取方法請參見擷取串連地址

    • writer.parameter.hostLindorm寬表引擎的Cassandra相容地址。您可以通過Lindorm控制台擷取,擷取方法請參見擷取串連地址

    port

    連接埠號碼固定為9042。

    • reader.parameter.port:雲資料庫Cassandra叢集的串連地址連接埠號碼。

    • writer.parameter.portLindorm寬表引擎的Cassandra相容地址連接埠號碼。

    useSSL

    是否開啟SSL(Secure Sockets Layer)加密。

    • true:開啟SSL加密。

    • false:不開啟SSL加密。

    keyspace

    • reader.parameter.keyspace:雲資料庫Cassandra中需要匯入的Keyspace名稱。

    • writer.parameter.keyspace:匯入至Lindorm寬表的Namespace名稱。

    table

    • reader.parameter.table:雲資料庫Cassandra中需要匯入的Table。

    • writer.parameter.table:匯入至Lindorm寬表的表名。

    column

    • reader.parameter.column:雲資料庫Cassandra中需要匯入的Table的列名。

    • writer.parameter.column:匯入至Lindorm寬表中指定表的列名。

    where

    表示任務進行拆分的條件。利用where參數可以將單個任務拆分為多個任務。

  6. 執行以下代碼,在DataX_datax_v202303專案的job目錄下構建Datax可執行檔。

    mvn -U package assembly:assembly -Dmaven.test.skip=true
  7. 可選:參數調優。

    您可以使用以下代碼,替換mvn執行成功以後產生的target/datax/datax/bin/目錄下的datax.py執行指令碼中相同格式的代碼,來提升遷移效率:

    DEFAULT_JVM = "-Xms8g -Xmx8g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%s/log" % (DATAX_HOME)
    DEFAULT_PROPERTY_CONF = "-Dfile.encoding=UTF-8 -Dcom.datastax.driver.NATIVE_TRANSPORT_MAX_FRAME_SIZE_IN_MB=1900 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=%s -Dlogback.configurationFile=%s" % (
    DATAX_HOME, LOGBACK_FILE)
  8. 執行以下命令,運行單個同步任務。

    #用法: python target/datax/datax/bin/datax.py --help
    python target/datax/datax/bin/datax.py job/JOB.json -p "-Dsplit_task_min=100 -Dsplit_task_max=1000"

    其中JOB.json為同步任務檔案的名稱。

    說明

    您也可以根據源叢集和目的地組群的記憶體、CPU或網路等限制條件,在job目錄下建立多個同步任務檔案,執行命令同時運行多個同步任務。

樣本

如果您在執行本文操作步驟時需要參考範例程式碼,或在執行步驟6時希望提高mvn -U命令的運行速度,請參見datax.tar.gz