0

目标是将数据从一个 mysql 数据库迁移到另一个,我关心的是定义一个文本文件,其中包含定义源数据库(主机、端口、数据库名称等)的参数以及输出数据库的文件参数。

实际上,我使用的是以下架构:

tContextLoad_1 -> tFileInputDelimited_1-> tMysqlInput_1 (db_source) -> tMap->
tMysqlInput_2 (db_destination)

根据发生的问题是:

1-tContextLoad_1不支持文本文件内容更改,并且指向始终在第一个数据库“源数据库”上。

2-当我创建第二个tContextLoad_2无法通过(但)或(触发主题确定)tFileOutputDelimited_1与(db_destination)链接的第二个时tMysqlInput_2,如何定义一个包含基本输出数据定义参数的文件(主机,数据库名称、标识符、密码等)?

4

2 回答 2

0

您可以使用如下配置文件,

<connections>
  <connection>
    <host></host>
    <port></port>
    <database></database>
    <table></table> 
    <user></user>
    </password></password>
  </connection>

  <connection>
    <host></host>
    <port></port>
    <database></database>
    <table></table> 
    <user></user>
    </password></password>
  </connection>
</connections>

然后您可以迭代连接标记以获取数据库详细信息,然后将它们分配给变量并使用它。

所以流程就像 tFileInputXML-->SetGlobalVar-->tMySQLConnection-->tMySQLInput-->tMap-->tMySQLOutput

于 2018-02-19T05:31:07.647 回答
0

您可以定义一个文件,但为源连接和目标连接使用不同的参数名称,或者定义 2 个文件:一个用于源,一个用于目标,在这种情况下,您的参数可以具有相同的名称:

  1. 具有不同参数名称的单个上下文文件:

tFileInputDelimited_1 (context file) -- tContextLoad_1 | OnSubjobOk | Source(host1,db1,user1,pwd1) -- target(host2,db2,user2,pwd2)

  1. 具有相同参数名称的不同上下文文件:

tFileInputDelimited_1 (1st context file) -- tContextLoad_1 | OnSubjobOk | Source(host,db,user,pwd) -- temp_file | OnSubjobOk | tFileInputDelimited_2 (2nd context file) -- tContextLoad_2 | OnSubjobOk | temp_file -- target(host,db,user,pwd)

我相信您会同意我的观点,即第一种解决方案更简单、更高效。

您的上下文文件可能是这样的:key=value

host=myHost
db=myDB
user=myUser
于 2018-02-20T09:53:27.320 回答