Недавно я занимался переносом данных, исследовал некоторые инструменты и обнаружил, что 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
- Способ 1. Загрузите набор инструментов DataX напрямую:Адрес загрузки 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…Заявление об авторских правах: Неспециальное заявление является оригинальной работой данного сайта.При перепечатке просьба указывать автора и оригинальную ссылку.