如何用Java代码连接来自不同数据库(MySql、Vertica)的两个表?

如何用Java代码连接来自不同数据库(MySql、Vertica)的两个表?,java,mysql,vertica,Java,Mysql,Vertica,我有一个Java批处理作业,需要在MySql和Vertica的数据之间进行外部连接。我想我必须将两个表中的数据转储到一个映射中,并比较键。有谁知道一种更好的技术或库可以让这变得容易吗?为什么不使用外部表: 在MySQL中创建表 CREATE TABLE federated_table ( id INT(20) NOT NULL AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '',

我有一个Java批处理作业,需要在MySql和Vertica的数据之间进行外部连接。我想我必须将两个表中的数据转储到一个映射中,并比较键。有谁知道一种更好的技术或库可以让这变得容易吗?

为什么不使用外部表:
在MySQL中创建表

 CREATE TABLE federated_table (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        other  INT(20) NOT NULL DEFAULT '0',
        PRIMARY KEY  (id),
        INDEX name (name),
        INDEX other_key (other)
    )
    ENGINE=FEDERATED
    DEFAULT CHARSET=latin1
    CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
您可以在Vertica中使用它来连接来自它的数据:

CREATE EXTERNAL TABLE ext1 (x integer) AS COPY FROM '/tmp/ext1.dat' DELIMITER ',';
从版本7开始,您可以在Vertica中连接常规表和外部表



另一个解决方案是使用Pentaho或Talend为您做这是一个免费的ETL工具非常好用

好的,你必须在这里手工处理。注意:手动操作包括将一个数据库系统数据复制到另一个数据库中,并使用常规连接进行处理。您想同时使用两个数据库中的表吗?rite?@A5l-lE5是的,尽管它不必是即时的,因为这是一个批处理作业,两个表中的数据很可能在相当长的时间内保持一致。如果确实从这两个表中创建连接,则可以从这两个表中获取数据。直到和,除非依次完成。@RC。谢谢,但由于一些时间限制和数据库写入访问原因(从从属服务器读取),我认为目前还不能这样做!啊,谢谢,但不幸的是我们的版本是6.1.X,但我还是要研究一下。pentaho呢!它有两个连接器!并且可以根据需要查询和合并结果!