Todos os produtos
Search
Central de documentação

Lindorm:Importar dados do RDS usando DataX

Última atualização: Jun 28, 2026

O DataX é uma ferramenta de sincronização de dados offline open source da Alibaba. Use-a para migrar dados em lote de um banco de dados MySQL para o LindormTSDB.

A migração usa dois plugins do DataX:

  • MySQL Reader — lê linhas do MySQL via Java Database Connectivity (JDBC)

  • TSDB Writer — grava pontos de dados no LindormTSDB pelas APIs HTTP /api/mput e /api/put

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma máquina Linux para executar o DataX

  • JDK 1.8 ou superior — baixe em Oracle

  • Python 2.6.x (recomendado) — baixe em python.org

  • MySQL compatível com a versão 5.x

  • Uma instância do LindormTSDB em execução

  • Conectividade de rede entre o host do DataX, o MySQL (porta JDBC) e o LindormTSDB (porta HTTP). A falta de conectividade causa o erro Connect Exception.

Configure o DataX

Baixe e extrair

Baixe o pacote do DataX com os plugins pré-configurados para esta migração:

wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
tar -xzf datax.tar.gz

Defina DATAX_HOME como o diretório extraído:

export DATAX_HOME=$(pwd)/datax

Verifique a instalação

Execute o job de teste integrado Stream Reader para Stream Writer para confirme que o DataX funciona corretamente. Esses plugins não têm dependências externas: o Stream Reader gera strings aleatórias e o Stream Writer as imprime no console.

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

Uma execução bem-sucedida termina com um resumo semelhante a este:

Task start time           : 2019-04-26 11:18:07
Task end time             : 2019-04-26 11:18:17
Total time                :                 10s
Average traffic           :          253.91KB/s
Record write speed        :          10000rec/s
Total records read        :              100000
Total read/write failures :                   0

O valor Total read/write failures: 0 confirma a conclusão do job sem erros. A velocidade de gravação reflete o throughput do Stream Writer, não o do LindormTSDB.

Configure o job de migração

Crie um arquivo de configuração chamado mysql2tsdb.json. Esse arquivo define um reader (MySQL Reader) e um writer (TSDB Writer).

{
  "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
      }
    }
  }
}
Importante

O array column no MySQL Reader e o array column no TSDB Writer devem listar as colunas na mesma ordem. O DataX faz o mapeamento posicional; uma ordem incorreta corrompe os dados.

Parâmetros do MySQL Reader

Parâmetro

Tipo

Obrigatório

Descrição

Padrão

Exemplo

jdbcUrl

String

Sim

String de conexão JDBC para o banco de dados MySQL

jdbc:mysql://127.0.0.1:3306/datax

username

String

Sim

Nome de usuário do MySQL

root

password

String

Sim

Senha do usuário especificado

root

table

String

Sim

Tabela de origem da leitura

book

column

Array

Sim

Colunas a ler, em ordem. Deve corresponder à ordem de column no TSDB Writer.

[]

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

splitPk

String

Não

Coluna usada para particionar leituras visando execução paralela

(vazio)

id

Parâmetros do TSDB Writer

Parâmetro

Tipo

Obrigatório

Descrição

Padrão

Exemplo

sourceDbType

String

Não

Tipo do sistema de origem. Use RDB para bancos relacionais (MySQL, Oracle, PostgreSQL, DRDS) ou TSDB para bancos de séries temporais (OpenTSDB, InfluxDB, Prometheus, TimeScale)

TSDB

RDB

column

Array

Sim

Colunas a gravar, na mesma ordem do column do MySQL Reader. O DataX mapeia as colunas positionalmente.

[]

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

columnType

Array

Sim

Tipo de campo do LindormTSDB para cada coluna em column. Valores suportados: timestamp, tag, metric_num, metric_string. Consulte a tabela de mapeamento abaixo.

[]

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

endpoint

String

Sim

Endereço e porta do endpoint do LindormTSDB

ld-xxxx:8242

multiField

Bool

Sim

Defina como true para gravar dados no modo multi-field

false

true

table

String

Sim

Nome da tabela de destino no LindormTSDB

my_book

username

String

Não

Nome de usuário do LindormTSDB

tsdbuser

password

String

Não

Senha do LindormTSDB

tsdbpsw

ignoreWriteError

Bool

Sim

Quando definido como true, ignora linhas com falha de gravação em vez de interromper o job

false

false

database

String

Não

Nome do banco de dados de destino no LindormTSDB

default

default

Mapeamento de tipos de coluna

O array columnType mapeia cada coluna do MySQL para um tipo de campo do LindormTSDB. Os valores suportados são:

**Valor de columnType**

Descrição

Tipo de coluna MySQL típico

timestamp

Campo de timestamp

DATETIME, BIGINT (epoch ms)

tag

Campo de dimensão usado para filtrar e agrupar consultas

VARCHAR, CHAR

metric_num

Valor de métrica numérica

INT, FLOAT, DOUBLE, DECIMAL

metric_string

Valor de métrica string

TEXT, VARCHAR

Execute a migração

Coloque o arquivo mysql2tsdb.json no diretório pai da pasta datax/ e execute:

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

A estrutura de diretórios deve ficar assim antes da execução:

datax/
datax.tar.gz
mysql2tsdb.json

Verifique a migração

Uma migração bem-sucedida termina com um resumo em que Total read/write failures é igual a 0:

Task start time           : 2019-05-21 18:25:16
Task end time             : 2019-05-21 18:25:27
Total time                :                 11s
Average traffic           :                3B/s
Record write speed        :              0rec/s
Total records read        :                   3
Total read/write failures :                   0

Se Total read/write failures for maior que 0 e ignoreWriteError estiver definido como false, o job será interrompido e reportará o erro. Verifique a saída do console para identificar a linha específica e a mensagem de erro.

FAQ

É possível aumentar a memória JVM alocada para o processo de migração?

Passe flags da JVM com a opção -j:

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

Como adicionar o host do DataX à lista de permissões do LindormTSDB?

Consulte Configurar uma lista de permissões.

A migração falha com um Connect Exception. O que devo verificar?