[Sqoop]HiveデータテーブルをMysqlにエクスポート
5582 ワード
ビジネスの背景
mysqlテーブルYHD_CATEG_PRIORの構成は以下の通りです.
hive表pms.yhd_categ_priorのテーブル構造は次のとおりです.
hiveテーブルのフィールド間は001で区切られ、行は区切られ、空のフィールドはNで埋め込まれます.
hiveテーブルpmsが必要です.yhd_categ_prior mysqlテーブルYHD_にエクスポートCATEG_PRIORで.
ビジネスの実現
スクリプトは次のとおりです.
上記のスクリプトは次のように解析されます.hiveテーブルpms.yhd_categ_prior mysqlのYHD_にエクスポートCATEG_PRIOR表中 hiveテーブルからエクスポートされたフィールドは、
mysqlテーブルYHD_CATEG_PRIORの構成は以下の通りです.
-- Table "YHD_CATEG_PRIOR" DDL
CREATE TABLE `YHD_CATEG_PRIOR` (
`category_id` int(11) NOT NULL COMMENT ' ID',
`category_name` varchar(250) DEFAULT NULL COMMENT ' ',
`category_level` int(11) DEFAULT '0' COMMENT ' ',
`default_import_categ_prior` int(11) DEFAULT '0' COMMENT ' ',
`user_import_categ_prior` int(11) DEFAULT NULL COMMENT ' ',
`default_eliminate_categ_prior` int(11) DEFAULT NULL COMMENT ' ',
`user_eliminate_categ_prior` int(11) DEFAULT NULL COMMENT ' ',
`UPDATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' ',
PRIMARY KEY (`category_id`)
) ENGINE=InnoDB AUTO_INCREMENT=61125 DEFAULT CHARSET=utf8;
hive表pms.yhd_categ_priorのテーブル構造は次のとおりです.
-- col_name data_type
category_id bigint
category_name string
category_level int
default_import_categ_prior int
user_import_categ_prior int
default_eliminate_categ_prior int
user_eliminate_categ_prior int
update_time string
hiveテーブルのフィールド間は001で区切られ、行は区切られ、空のフィールドはNで埋め込まれます.
hiveテーブルpmsが必要です.yhd_categ_prior mysqlテーブルYHD_にエクスポートCATEG_PRIORで.
ビジネスの実現
スクリプトは次のとおりです.
####################################
#
# Hive Mysql
#
####################################
rm -rf ./YHD_CATEG_PRIOR.java
sqoop-export \
-Dmapred.job.queue.name=pms \
--connect jdbc:mysql://127.0.0.1:3306/market \
--username admin \
--password 123456 \
--table YHD_CATEG_PRIOR \
--export-dir /user/hive/pms/yhd_categ_prior \
--columns category_id,category_name,category_level,default_import_categ_prior,user_import_categ_prior,default_eliminate_categ_prior,user_eliminate_categ_prior \
--update-mode allowinsert \
--update-key category_id \
--fields-terminated-by '\001' \
--lines-terminated-by '
' \
--input-null-string '\\N' \
--input-null-non-string '\\N'
上記のスクリプトは次のように解析されます.
category_id,
category_name,
category_level,
default_import_categ_prior,
user_import_categ_prior,
default_eliminate_categ_prior,
user_eliminate_categ_prior