日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遷移MySQL或Doris數據到StarRocks

遷移Doris數據與遷移MySQL數據的方法一致。本文為您介紹如何遷移RDS MySQL中的數據至EMR Serverless StarRocks。

前提條件

  • 已創建EMR Serverless StarRocks實例,詳情請參見創建實例

  • 已在EMR on ECS上創建包含Doris服務的OLAP集群,詳情請參見創建集群,或已購買RDS,詳情請參見創建RDS MySQL實例。

    說明

    遷移Doris數據與遷移MySQL數據的方法一致。本文以遷移RDS MySQL數據為例。

使用限制

EMR Serverless StarRocks實例和RDS MySQL實例需要在同一VPC下。

使用DataX同步數據

DataX介紹

DataX是阿里巴巴集團內被廣泛使用的離線數據同步工具,實現了包括MySQL、Oracle、OceanBase、SqlServer、PostgreSQL、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS等各種異構數據源之間高效的數據同步功能。DataX詳細信息,請參見DataX。

適用場景

適用于熟悉DataX、遷移批量數據的場景,可以一次遷移大批量數據至EMR StarRocks Serverless。

操作步驟

  1. 配置DataX中的mysqlreader。

    "reader": {
      "name": "mysqlreader",
      "parameter": {
        "username": "root",
        "password": "***",
        "column": [ "k1", "k2", "v1", "v2" ],
        "connection": [
          {
            "table": [ "table1", "table2" ],
            "jdbcUrl": [
              "jdbc:mysql://<mysql_host>:<mysql_port>/datax_test1"
            ]
          },
          {
            "table": [ "table3", "table4" ],
            "jdbcUrl": [
              "jdbc:mysql://<mysql_host>:<mysql_port>/datax_test2"
            ]
          }
        ]
      }
    }

    相關參數如下表所示。

    參數

    說明

    是否必選

    username

    MySQL的用戶名。

    password

    MySQL用戶的密碼。

    database

    目標數據庫名稱。

    table

    待同步的表名。

    jdbcUrl

    JDBC連接信息,填寫的格式為jdbc:mysql://<mysql_host>:<mysql_port>/<datax_test1>。

    格式中:

    • <mysql_host>:RDS的內網地址。您可以在RDS的數據庫連接頁面,單擊內網地址進行復制。例如,rm-bp1nu0c46fn9k****.mysql.rds.aliyuncs.com。

    • <mysql_port>:固定值3306。

    • <datax_test1>:MySQL數據庫的名稱。

    column

    待配置的表中需要同步的列名集合,使用JSON的數組描述字段信息。支持列裁剪,即列可以挑選部分列進行導出。

    重要

    如果希望導入所有字列配置,則可以使用[’’]。

    splitPk

    如果指定該參數,則表示使用splitPk代表的字段進行數據分片,DataX會啟動并發任務進行數據同步,可以大大提高數據同步的效能。

    querySql

    在某些業務場景下,您可以通過該配置型來自定義篩選SQL。如果指定了該參數,則DataX系統就會忽略table、column這些配置型,直接使用該配置項的內容對數據進行篩選。

    where

    篩選條件,mysqlreader根據指定的column、table、where條件拼接SQL,并根據該SQL進行數據抽取。

  2. 配置StarRocks Writer。

    下載DataX插件,然后執行以下命令,解壓安裝包至datax/plugin/writer路徑下。

    tar -xzvf starrockswriter.tar.gz

    StarRocks Writer的配置方式,請參見DataX Writer。

  3. 配置DataX的JSON腳本。

    為導入作業新建一個JSON格式的文件job.json,示例中的參數值請根據實際情況替換。

    {
      "job": {
        "setting": {
          "speed": {
            "channel": 1
          },
          "errorLimit": {
            "record": 0,
            "percentage": 0
          }
        },
        "content": [
          {
            "reader": {
              "name": "mysqlreader",
              "parameter": {
                "username": "root",
                "password": "****",
                "column": [ "k1", "k2", "v1", "v2" ],
                "connection": [
                  {
                    "table": [ "table1", "table2" ],
                    "jdbcUrl": [
                      "jdbc:mysql://<mysql_host>:<mysql_port>/datax_test1"
                    ]
                  },
                  {
                    "table": [ "table3", "table4" ],
                    "jdbcUrl": [
                      "jdbc:mysql://<mysql_host>:<mysql_port>/datax_test2"
                    ]
                  }
                ]
              }
            },
            "writer": {
              "name": "starrockswriter",
              "parameter": {
                "username": "admin",
                "password": "***",
                "database": "test",
                "table": "xxxx",
                "column": ["k1", "k2", "v1", "v2"],
                "preSql": [],
                "postSql": [], 
                "jdbcUrl": "jdbc:mysql://<fe_host>:<fe_port>/",
                "loadUrl": ["<fe_host>:<fe_http_port>", "<fe_host>:<fe_http_port>"],
                "loadProps": {}
              }
            }
          }
        ]
      }
    }
  4. 執行同步任務。

    python datax/bin/datax.py --jvm="-Xms6G -Xmx6G" --loglevel=debug datax/job/job.json
    說明
    • 示例代碼中的Xms和Xmx ,通常建議將內存設置為4G或者8G,可根據任務機的實際配置,提升-Xms與-Xmx,來防止OOM。

    • 調整JVM Xms和Xmx參數的兩種方式:一種是直接更改datax.py;另一種是在啟動的時候,加上對應的參數,例如python datax/bin/datax.py --jvm="-Xms8G -Xmx8G"XXX.json。

使用StarRocks外部表同步數據

方案介紹

該方案是通過StarRocks的外部表,將源集群數據同步至目標集群。通過MySQL協議的外部表進行同步,在目標集群創建目標表,在源集群創建外部表,將數據插入外部表實現數據遷移。

適用場景

適用于單表數據遷移的場景。如果表數量大,則操作會比較繁瑣,耗時較高。

操作步驟

  1. 創建StarRocks外部表。

    CREATE EXTERNAL TABLE uk_price_paid_ex 
    ( 
        price BIGINT(20) NULL COMMENT "",
        date1 DATE NULL COMMENT "",
        postcode1 String NULL COMMENT "",
        postcode2 String NULL COMMENT "",
        type String NULL COMMENT "",
        is_new BIGINT(20) NULL COMMENT "",
        duration String NULL COMMENT "",
        addr1 String NULL COMMENT "",
        addr2 String NULL COMMENT "",
        street String NULL COMMENT "",
        locality String NULL COMMENT "",
        town String NULL COMMENT "" ,
        district String NULL COMMENT "",
        county String NULL COMMENT "" 
    )
    ENGINE=mysql 
    PROPERTIES (
      "host"="rm-bp1nu0c46fn9k****.mysql.rds.aliyuncs.com",
      "port"="3306",
      "user"="root",
      "password"="",
      "database"="test",
      "table"="uk_price_paid"
    );

    各參數含義如下表所示。

    參數

    說明

    host

    RDS MySQL的內網地址。

    您可以在RDS的數據庫連接頁面,單擊內網地址進行復制。例如,rm-bp1nu0c46fn9k****.mysql.rds.aliyuncs.com。

    port

    RDS MySQL的端口。固定值是3306。

    user

    RDS MySQL上創建的賬號。

    password

    RDS MySQL上創建賬號的密碼。

    database

    RDS MySQL上數據庫的名稱。

    table

    RDS MySQL上表的名稱。

  2. 創建StarRocks目標表。

    需選擇對應模型,并指定主鍵。

    CREATE TABLE IF NOT EXISTS uk_price_paid 
    ( 
        price BIGINT(20) NULL COMMENT "",
        date1 DATE NULL COMMENT "",
        postcode1 String NULL COMMENT "",
        postcode2 String NULL COMMENT "",
        type String NULL COMMENT "",
        is_new BIGINT(20) NULL COMMENT "",
        duration String NULL COMMENT "",
        addr1 String NULL COMMENT "",
        addr2 String NULL COMMENT "",
        street String NULL COMMENT "",
        locality String NULL COMMENT "",
        town String NULL COMMENT "" ,
        district String NULL COMMENT "",
        county String NULL COMMENT "" 
    ) 
    DUPLICATE KEY(price) 
    DISTRIBUTED BY HASH(price) 
    BUCKETS 8 PROPERTIES 
    ( "replication_num" = "1" );
  3. 導入數據。

    insert into uk_price_paid select * from uk_price_paid_ex;