赞
踩
sqoop import \
--connect jdbc:mysql://你自己的IP地址:端口号/xxl_job \
--username 你自己的MySQL数据库账户 \
--password 密码 \
--query "SELECT id,username,password,role,permission,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as sys_update_time FROM xxl_job_log" \
--split-by mercode \
--null-string '\\N' \
--null-non-string '\\N' \
--hcatalog-database ods \
--hcatalog-table xxl_job_log_a \
--hcatalog-partition-keys ss_dt \
--hcatalog-partition-values "20230919" \
--hcatalog-storage-stanza 'stored as orc'
# hive 分区导入 成功
sqoop import \
--connect jdbc:mysql://192.168.58.202:3306/xxl_job \ #mysql连接的url
--driver com.mysql.jdbc.Driver \ #使用mysql的驱动
--username root \
--password Mysql123! \
--query "SELECT id,username,password,role,permission,date_format(sysdate(), '%y.%m.%d %h:%i:%s') as sys_update_time FROM xxl_job_user where \$CONDITIONS" \ #使用sql语句导入,必须有where中的\$CONDITIONS" ,还要注意mysql和Oracle中的日期处理
--hive-import \ #指定导入到hive里去
--hive-database ods \ #导入的hive数据源
--hive-table xxl_job_user_a \ #导入的hive表
--target-dir /user/hive/warehouse/ods.db/xxl_job_user_a \ #必须指定目标路径
--hive-partition-key 'ss_dt' \ #分区字段,这个不写入建表语句中
--hive-partition-value '2023-09-19' \ #分区的值
--fields-terminated-by "," \ #分隔符,默认"\001",可以"\t",可以","
-m 1 #设置mapper的数量为1 或者写成 --num-mappers 1
可以在hdfs上查看到数据:
点进去是这样的:
创建hive表格来映射数据字段:
# hive建表
CREATE TABLE IF NOT EXISTS ods.xxl_job_user_a(
id BIGINT,
username STRING,
password STRING,
role STRING,
permission STRING,
sys_update_time TIMESTAMP
)
PARTITIONED BY ( ss_dt STRING )
row format delimited
fields terminated by ','
STORED AS ORC;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。