Sqoop与Mysql的数据导入导出脚本

本文介绍如何使用Sqoop工具实现MySQL数据到Hive的高效迁移。包括创建job进行数据导入及导出的具体命令示例,并针对不同场景进行了详细的参数配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入demo:

#! /bin/bash

# 将mysql的充值表导入到hive中的临时表
# job创建
sqoop job --create xxx_recharge_log_job -- import --hive-import --connect jdbc:mysql://xxx.master:3306/ryff_logic --username root --password root --verbose -m 1 --hive-database ryff_dataware --hive-table temp_server_recharge_log --query 'select id,player_id,order_id,out_order_id,server_addr,shop_item_id,money,state,create_time,deliver_time,args,channel_id,server_id from server_recharge_log where $CONDITIONS' --split-by 'id' --target-dir /user/hive/warehouse/temp_server_recharge_log --fields-terminated-by '\001' --incremental append --check-column id --last-value 0

导出demo:

#! /bin/bash

if [ -n "$1" ] ; then
        do_date=$1
else
        do_date=`date -d "-1 day" +%F`
fi

sqoop export --connect jdbc:mysql://xxx.xxx.xx.xxx:3306/game_manager --username root --password xxx --table test_ads_xxx_level_event_count --hcatalog-database xxx_dataware --hcatalog-table test_ads_xxx_level_event_count --num-mappers 1 --hcatalog-partition-keys dt --hcatalog-partition-values $do_date

sqoop export --connect jdbc:mysql://xxx.xxx.xx.xxx:3306/game_manager --username root --password xxx --table test_ads_xxx_level_event_count_entire --hcatalog-database xxx_dataware --hcatalog-table test_ads_xxx_level_event_count_entire --num-mappers 1 --hcatalog-partition-keys dt --hcatalog-partition-values $do_date

sqoop export --connect jdbc:mysql://xxx.xxx.xx.xxx:3306/game_manager --username root --password xxx --table user_remain --hcatalog-database xxx_dataware --hcatalog-table test_ads_xxx_user_remain --num-mappers 1 --hcatalog-partition-keys dt --hcatalog-partition-values $do_date

sqoop export --connect jdbc:mysql://xxx.xxx.xx.xxx:3306/game_manager --username root --password xxx --table user_online_time_detail --hcatalog-database xxx_dataware --hcatalog-table ads_xxx_user_online_time --num-mappers 1 --hcatalog-partition-keys dt --hcatalog-partition-values $do_date

sqoop export --connect jdbc:mysql://xxx.xxx.xx.xxx:3306/game_manager --username root --password xxx --table user_login_count_detail --hcatalog-database xxx_dataware --hcatalog-table ads_xxx_user_login_count --num-mappers 1 --hcatalog-partition-keys dt --hcatalog-partition-values $do_date
Sqoop是一个用于在Hadoop和关系型数据之间进行数据传输的工具。它可以将数据从关系型数据导入到Hadoop集群中,也可以将数据从Hadoop集群导出到关系型数据中。下面是一个Sqoop数据导入导出的shell脚本示例: 1. 数据导入脚本: ``` sqoop import \ --connect jdbc:mysql://localhost/mydatabase \ --username root \ --password password \ --table mytable \ --target-dir /user/hadoop/mydata \ --m 1 ``` 这个脚本将从MySQL数据中的mytable表导入数据,并将数据存储在Hadoop集群中的/user/hadoop/mydata目录下。其中,--connect参数指定了数据连接URL,--username和--password参数指定了数据的用户名和密码,--table参数指定了要导入的表名,--target-dir参数指定了数据存储的目录,--m参数指定了并行度。 2. 数据导出脚本: ``` sqoop export \ --connect jdbc:mysql://localhost/mydatabase \ --username root \ --password password \ --table mytable \ --export-dir /user/hadoop/mydata \ --input-fields-terminated-by '\t' \ --input-lines-terminated-by '\n' ``` 这个脚本将从Hadoop集群中的/user/hadoop/mydata目录中读取数据,并将数据导出到MySQL数据的mytable表中。其中,--connect参数指定了数据连接URL,--username和--password参数指定了数据的用户名和密码,--table参数指定了要导出的表名,--export-dir参数指定了数据读取的目录,--input-fields-terminated-by和--input-lines-terminated-by参数指定了输入数据的分隔符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值