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