最近在進行數(shù)據(jù)同步方面的工作,嘗試使用datax來完成數(shù)據(jù)遷移的任務,但是遇到了一個問題:我需要使用動態(tài)的方式生成datax的json參數(shù)文件,以達到自動化的目的。經(jīng)過一番探索,我總結出了以下幾個步驟:
1、先定義好json文件的基礎結構
{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "root", "password": "xxxxxx", "column": [ "id", "name", "age", "gender" ] } }, "writer": { "name": "mysqlwriter", "parameter": { "username": "root", "password": "xxxxxx", "column": [ "id", "name", "age", "gender" ] } } } ] } }
2、定義需要動態(tài)傳入的參數(shù)變量
var parameters = { "mysqlreader": { "url": "jdbc:mysql://localhost:3306/test", "table": "student" }, "mysqlwriter": { "url": "jdbc:mysql://localhost:3306/newdb", "table": "newtable" } };
3、引入lodash庫,使用模板引擎_.template生成json文件
var _ = require('lodash'); var fs = require('fs'); var template = _.template(fs.readFileSync('./template.json').toString()); var parameter = parameters['mysqlreader']; var parameter2 = parameters['mysqlwriter']; var result = template({ url:parameter.url, table:parameter.table, url2:parameter2.url, table2:parameter2.table }); console.log(result);
4、將生成的json文件保存到本地
fs.writeFileSync('./config.json',result);
5、在使用datax的時候直接引入動態(tài)生成的config.json文件即可
以上就是動態(tài)生成datax json參數(shù)文件的步驟,希望對大家有所幫助!