给定一个包含用于在 MySQL 数据库中创建表的 DDL 的 SQL 脚本,我想将该脚本转换为 Hive DDL,以便我可以在 Hive 中创建表。我本可以自己编写一个解释器,但我认为我可能会错过一些细节(例如数据格式转换、int、bigint、时间、日期等),因为我对 hive DDL 非常陌生。
我看过这个线程How to transfer mysql table to hive? ,其中提到了 sqoop http://archive.cloudera.com/cdh/3/sqoop/SqoopUserGuide.html。但是,据我所知,sqoop 肯定会翻译 DDL,但只是作为中间步骤(因此无法找到翻译后的 DDL)。我是否错过了以 MySQL DDL 作为输入输出翻译的命令?
例如,我的 MySQL DDL 如下所示:
CREATE TABLE `user_keyword` (
`username` varchar(32) NOT NULL DEFAULT '',
`keyword_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`username`,`keyword_id`),
KEY `keyword_id` (`keyword_id`),
CONSTRAINT `analyst_keywords_ibfk_1` FOREIGN KEY (`keyword_id`) REFERENCES `keywords` (`keyword_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
输出 Hive DDL 如下:
CREATE TABLE user_keyword (
username string,
keyword_id int,
);