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

时间:2014-03-31 17:10:45

标签: java mysql vertica

我有一个Java批处理作业,需要在MySql和Vertica的数据之间进行外部联接。我想我必须将两个表中的数据转储到Map中并比较密钥。有没有人知道更容易做到的更好的技术或库?

1 个答案:

答案 0 :(得分:2)

为什么不使用外部表:
在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中的regural和外部表格


另一个解决方案是使用Pentaho或Talend来做这个,因为你是一个非常好用且易于使用的免费ETL工具!