Али автономный инструмент синхронизации данных DataX вытаптывает запись

Java задняя часть MySQL Oracle Алибаба

Недавно я занимался переносом данных, исследовал некоторые инструменты и обнаружил, что DataX — это хорошо, поэтому Amway предоставит его всем. Так что же такое DataX? DataX — это широко используемый автономный инструмент синхронизации данных в Alibaba Group, который реализует эффективную синхронизацию данных между различными разнородными источниками данных, включая MySQL, SQL Server, Oracle и PostgreSQL.

Основная функция

В качестве платформы синхронизации данных сама DataX абстрагирует синхронизацию различных источников данных от подключаемого модуля Reader, который считывает данные из исходного источника данных, и подключаемого модуля Writer, который записывает данные в цель. поддержка синхронизации данных любого типа источника данных. В то же время подключаемая система DataX как экосистема может связываться с существующим источником данных каждый раз, когда новый источник данных подключается к вновь добавленному источнику данных. Для получения подробной информации перейдите кВведение в DataX

Системные Требования

  • Linux
  • JDK (1.8 или выше, рекомендуется 1.8)
  • Python (рекомендуется Python 2.6.X)
  • Apache Maven 3.x (Compile DataX)
  • Установите память кучи jvm, требование к памяти кучи больше 1 г, иначе она не запустится
export JAVA_OPTS= -Xms1024m -Xmx1024m

быстрый старт

Развернуть DataX

После загрузки разархивируйте его в локальный каталог, войдите в каталог bin и запустите задание синхронизации:

$ cd  {YOUR_DATAX_HOME}/bin    
$ python datax.py {YOUR_JOB.json}

  • Способ 2. Загрузите исходный код DataX и скомпилируйте его самостоятельно:Исходный код DataX
    (1), загрузите исходный код DataX:

    $ git clone git@github.com:alibaba/DataX.git
    

    (2), упакованный через maven:

    $ cd  {DataX_source_code_home}
    $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
    

    Упаковка прошла успешно, и журнал показывает следующее:

    [INFO] BUILD SUCCESS
    [INFO] -----------------------------------------------------------------
    [INFO] Total time: 08:12 min
    [INFO] Finished at: 2018-06-05T16:26:48+08:00
    [INFO] Final Memory: 133M/960M
    [INFO] -----------------------------------------------------------------
    

Упакованный пакет DataX находится в {DataX_source_code_home}/target/datax/datax/,

Создать файл конфигурации

  • Первый шаг, создайте файл конфигурации (формат json)

    Шаблон конфигурации можно сгенерировать с помощью команды:

    python datax.py -r oraclereader -w mysqlwriter > oracle2mysql2.json
    

    Все читатели и писатели, поддерживаемые DataX, находятся в каталоге плагинов в каталоге {DataX_source_code_home}.
    Шаблон конфигурации, сгенерированный командой, выглядит следующим образом: Считыватель и писатель, сгенерированные арендодателем, соответствуют чтению данных из оракула и записи данных в mysql.

    {
    "job": {
        "content": [{
            "reader": {
                "name": "oraclereader",
                "parameter": {
                    "column": ["*"],
                    "connection": [{
                        "jdbcUrl": ["*"],
                        "table": ["tb1"]
                    }],
                    "password": "***",
                    "username": "***"
                }
            },
            "writer": {
                "name": "mysqlwriter",
                "parameter": {
                    "column": ["*"],
                    "connection": [{
                        "jdbcUrl": "*",
                        "table": ["tb1"]
                    }],
                    "password": "**",
                    "preSql": [],
                    "session": [],
                    "username": "**",
                    "writeMode": "insert"
                }
            }
        }],
        "setting": {
            "speed": {
                "channel": "3"
            }
        }
    }
    }
    
  • Наконец: Запустите DataX

    $ cd {YOUR_DATAX_DIR_BIN}
    $ python datax.py ./oracle2mysql2.json
    
  • Синхронизация завершена, и журнал отображается следующим образом:

    ...
    2018-06-05 11:20:25.263 [job-0] INFO  JobContainer - 
    任务启动时刻                    : 2018-06-05 11:20:15
    任务结束时刻                    : 2018-06-05 11:20:25
    任务总计耗时                    :                 10s
    任务平均流量                    :              205B/s
    记录写入速度                    :              5rec/s
    读出记录总数                    :                  50
    读写失败总数                    :                   0
    

резюме

Условно говоря, DataX относительно прост в использовании, но арендодателю сложнее одновременно записывать таблицы разных баз данных в один и тот же файл конфигурации.Если вы хотите читать и записывать несколько таблиц, вы можете настроить их только по отдельности. . Но это также решило некоторые проблемы для владельца.

Автор: haifeiWu Исходная ссылка:Уууу. Пересаживайтесь на студию. Можете/статья/201…Заявление об авторских правах: Неспециальное заявление является оригинальной работой данного сайта.При перепечатке просьба указывать автора и оригинальную ссылку.