MySQLデータベースにテーブルを作成するためのDDLを含むSQLスクリプトがある場合、テーブルをHiveに作成できるように、スクリプトをHiveDDLに変換したいと思います。自分でインタプリタを作成することもできましたが、ハイブDDLを初めて使用するため、詳細(データ形式の変換、int、bigint、時刻、日付など)が欠落している可能性があると考えました。
私はこのスレッドを見ましたmysqlテーブルをハイブに転送する方法は?、sqoophttp : //archive.cloudera.com/cdh/3/sqoop/SqoopUserGuide.htmlについて言及しました。ただし、私が見たところ、sqoopは確かにDDLを変換しますが、これは中間ステップとしてのみです(したがって、変換されたDDLはどこにも見つかりません)。MySQL DDLを入力として翻訳を出力するコマンドがありませんか?
たとえば、私のMySQLDDLは次のようになります。
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;
そして、出力HiveDDLは次のようになります。
CREATE TABLE user_keyword (
username string,
keyword_id int,
);