sqoop简单应用案例
1)从mysql中导入数据至hdfs指定目录
sqoop import --connect jdbc:mysql://${db_ip}:${db_port}/${db_database}?serverTimezone=Asia/Shanghai --username ${db_user} --password ${db_passwd} \
--query "${sqoop_sql}" \
--target-dir "${tmp_hdfs_file_path}/dt_year=${v_dt_year}/dt_month=${v_dt_month}/dt_date=${v_dt_date}" \
--fields-terminated-by "," \
--delete-target-dir --fetch-size 5000 \
--num-mappers 4 --compress --compression-codec ${zip_code}
变量参数说明:
${db_ip}:数据库对应ip
${db_port}:数据库对应端口
${db_database}:数据库名
${db_user}:用户
${db_passwd} :密码
${sqoop_sql}:mysql查询sql
${tmp_hdfs_file_path}:hdfs对应路径
${zip_code}:值固定为org.apache.hadoop.io.compress.SnappyCodec
2)从hive表(外部表)中导出数据至mysql
sqoop export --connect jdbc:mysql://${mysql_dw_center_url}/${db_database} \
--username ${db_user} \
--password ${db_passwd} \
--table ${target_table} \
--columns col1,col2,clo3\
--hcatalog-database dw_center \
--hcatalog-table ${target_table} \
--hcatalog-partition-keys dt_date \
--hcatalog-partition-values ${v_dt_date} \
--update-key bst_ticket_id \
--update-mode allowinsert -m 10
${mysql_dw_center_url}:目标mysql数据库连接信息,包括ip和端口
${db_database}:目标数据库
${db_user}:用户
${db_passwd}:密码
${target_table}:hive表名
${v_dt_date}:hive对应分区(这里按照年月日进行分的区)