我有两个像这样的员工和工资表
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` enum('M','F') NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`),
KEY `emp_no` (`emp_no`),
CONSTRAINT `salaries_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如何使用map reduce程序连接这两个表,您能提供解决方案吗?
您可以按照以下步骤来做:
- 在csv文件中从两个表中提取数据
- 读取mapper中的两个文件,并将key作为主键(emp_no)。
- 将reducer的putput以csv格式写入文件
- 使用mysql bulk Import命令导入文件
如果表中有动态生成的数据,那么在步骤1中只从每个表中提取生成的数据