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

通過DataX導(dǎo)入RDS數(shù)據(jù)

更新時(shí)間:

本文主要介紹如何使用阿里巴巴的開源工具DataX實(shí)現(xiàn)從關(guān)系型數(shù)據(jù)庫到時(shí)序引擎的數(shù)據(jù)遷移。

背景信息

DataX是阿里巴巴集團(tuán)內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具,實(shí)現(xiàn)包括MySQL、Oracle、SQL Server、PostgreSQL、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。DataX相關(guān)使用介紹請參閱DataX的README文檔。

下面將首先介紹DataX工具本身,以及以MySQL為例,實(shí)現(xiàn)從MySQL遷移到Lindorm時(shí)序引擎。本次遷移工作涉及到的兩個(gè)插件(MySQL ReaderTSDB Writer)。

MySQL Reader

MySQL Reader是DataX的一個(gè)插件,實(shí)現(xiàn)了從MySQL讀取數(shù)據(jù)。

TSDB Writer

TSDB Writer是DataX的一個(gè)插件,實(shí)現(xiàn)了將數(shù)據(jù)點(diǎn)寫入到Lindorm數(shù)據(jù)庫時(shí)序引擎中。

注意事項(xiàng)

確保與時(shí)序引擎的網(wǎng)絡(luò)是連通的

因?yàn)門SDB Writer寫入數(shù)據(jù)的方式是調(diào)用HTTP接口(/api/mput以及/api/put)來完成的,所以需要確保遷移任務(wù)的進(jìn)程能正常訪問到時(shí)序引擎暴露出來的HTTP接口的。否則,會報(bào)錯(cuò)Connect Exception異常。

確保與MySQL的網(wǎng)絡(luò)是連通的

因?yàn)镸ySQL Reader讀取數(shù)據(jù)是通過JDBC來完成的,所以需要確保遷移任務(wù)的進(jìn)程能正常訪問到MySQL暴露出來的JDBC接口的。否則,會報(bào)錯(cuò)Connect Exception異常。

準(zhǔn)備工作

  1. 環(huán)境準(zhǔn)備。

    • Linux

    • JDK(1.8及以上)

    • Python(推薦Python 2.6.x)

    • MySQL(目前只支持兼容5.x,其他版本暫不兼容)

    • Lindorm時(shí)序引擎

  2. 下載DataX及其插件。

    單擊鏈接進(jìn)行下載。

  3. 利用DataX自帶的測試遷移任務(wù),檢查遷移流程能否走通。

    這里,我們先以最簡單的Stream Reader到Stream Writer為例。因?yàn)檫@兩個(gè)插件不依賴任何的外部環(huán)境,特別適合用來測試流程是否能走通。簡單介紹下這兩個(gè)插件,其中Stream Reader會隨機(jī)地產(chǎn)生字符串,而Stream Writer則會將接受到的字符串輸出到控制臺,以此模擬一個(gè)最簡單的數(shù)據(jù)遷移過程。

工具部署

將下載后的安裝包,解壓至某個(gè)目錄(作為DATAX_HOME),即可運(yùn)行測試遷移任務(wù):

$ cd ${DATAX_HOME}
$ python bin/datax.py job/job.json

檢查任務(wù)是否成功

下面是任務(wù)結(jié)束后的匯總信息,看到如下內(nèi)容,即可表示遷移任務(wù)已成功完成:

任務(wù)啟動時(shí)刻                    : 2019-04-26 11:18:07
任務(wù)結(jié)束時(shí)刻                    : 2019-04-26 11:18:17
任務(wù)總計(jì)耗時(shí)                    :                 10s
任務(wù)平均流量                    :          253.91KB/s
記錄寫入速度                    :          10000rec/s
讀出記錄總數(shù)                    :              100000
讀寫失敗總數(shù)                    :                   0
            

配置和啟動MySQL到時(shí)序引擎的遷移任務(wù)

通過上述Stream Reader到Stream Writer的遷移任務(wù),我們就可以確保整個(gè)DataX流程是沒有問題的。下面就可以真正開始MySQL Reader到TSDB Writer遷移任務(wù)了。

參數(shù)說明

接下來,我們先看下各個(gè)配置項(xiàng)的含義:

MySQL Reader相關(guān)

名稱

類型

是否必選

描述

默認(rèn)值

舉例

jdbcUrl

String

數(shù)據(jù)庫的JDBC連接信息

jdbc:mysql://127.0.0.1:3306/datax

username

String

數(shù)據(jù)源的用戶名

root

password

String

數(shù)據(jù)源指定用戶名的密碼

root

table

String

需要同步的表

book

column

Array

表中需要同步的列名集合

[]

["m"]

splitPk

String

如果指定splitPk,表示用戶希望使用splitPk代表的字段進(jìn)行數(shù)據(jù)分片

id

TSDB Writer相關(guān)

名稱

類型

是否必選

描述

默認(rèn)值

舉例

sourceDbType

String

目前支持TSDB和RDB兩個(gè)取值。其中,時(shí)序引擎指OpenTSDB、InfluxDB、Prometheus、TimeScale等;而RDB指MySQL、Oracle、PostgreSQL、DRDS 等

TSDB

RDB

column

Array

表中需要同步的列名集合

[]

["name","type","create_time","price"]

columnType

Array

關(guān)系型數(shù)據(jù)庫中表字段,映射到時(shí)序引擎中的類型。支持的類型:timestamp:該字段是個(gè)時(shí)間戳;tag:該字段是個(gè) tag;metric_num:該metric的value 數(shù)值類型;metric_string:該metric的value是字符串類型

[]

["tag","tag","timestamp","metric_num"]

endpoint

String

時(shí)序引擎的IP:PORT地址

ld-xxxx:8242

multiField

Bool

使用多值方式寫入,推薦true

false

true

table

String

導(dǎo)入TSDB的表名

table

username

String

數(shù)據(jù)庫用戶名

tsdbuser

password

String

數(shù)據(jù)庫密碼

tsdbpsw

ignoreWriteError

Bool

忽略寫入錯(cuò)誤

false

true

database

String

導(dǎo)入TSDB的數(shù)據(jù)庫名

default

default

配置遷移任務(wù)

配置一個(gè)從MySQL數(shù)據(jù)庫同步抽取數(shù)據(jù)到時(shí)序引擎的任務(wù),命名為mysql2tsdb.json,完整的配置信息如下(針對各個(gè)配置參數(shù)的詳細(xì)說明,請看"參數(shù)說明"):

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "column": [
              "name",
              "type",
              "create_time",
              "price",
              "description",
              "available"
            ],
            "connection": [
              {
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/datax"
                ],
                "table": [
                  "book"
                ]
              }
            ],
            "password": "xxx",
            "splitPk": "id",
            "username": "root"
          }
        },
        "writer": {
          "name": "tsdbwriter",
          "parameter": {
            "column": [
              "name",
              "type",
              "create_time",
              "price",
              "description",
              "available"
            ],
            "columnType": [
              "tag",
              "tag",
              "timestamp",
              "field_double",
              "field_string",
              "field_bool"
            ],
            "sourceDbType": "RDB",
            "endpoint": "http://localhost:8242",
            "table": "my_book",
            "multiField": "true", 
            "username":"xxx",
            "password":"xxx",
            "ignoreWriteError":"false",
            "database":"default"
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}          

需要column字段順序保持一致

需要保證SDB Writer插件中的column字段順序和MySQL Reader插件中配置的column字段順序保持一致。否則,數(shù)據(jù)會錯(cuò)亂。

啟動MySQL到時(shí)序引擎遷移任務(wù)

$ cd ${DATAX_HOME}/..
$ ls
  datax/  datax.tar.gz  mysql2tsdb.json
$ python datax/bin/datax.py mysql2tsdb.json
            

檢查任務(wù)是否成功

下面是任務(wù)結(jié)束后的匯總信息,看到如下內(nèi)容,即可表示遷移任務(wù)已成功完成:

任務(wù)啟動時(shí)刻                    : 2019-05-21 18:25:16
任務(wù)結(jié)束時(shí)刻                    : 2019-05-21 18:25:27
任務(wù)總計(jì)耗時(shí)                    :                 11s
任務(wù)平均流量                    :                3B/s
記錄寫入速度                    :              0rec/s
讀出記錄總數(shù)                    :                   3
讀寫失敗總數(shù)                    :                   0
            

FAQ

Q:是否支持調(diào)整遷移進(jìn)程的 JVM 內(nèi)存大小?

A:支持的。以從MySQL到時(shí)序引擎的數(shù)據(jù)遷移任務(wù)為例,啟動命令如下:

python datax/bin/datax.py mysql2tsdb.json -j "-Xms4096m -Xmx4096m"    

Q:如何給時(shí)序引擎設(shè)置網(wǎng)絡(luò)白名單?

A:參考設(shè)置白名單

Q:將遷移任務(wù)運(yùn)行在ECS上的用戶,如何配置 VPC,以及常見問題有哪些?

A:參考ECS安全組配置案例VPC 常見問題