sqoop导出多张hive表到mysql脚本
时间: 2023-11-16 14:08:38 浏览: 99
脚本打包-10m光纤收发器原理图
下面是一个简单的示例,可以将多个Hive表导出到MySQL中:
```
#!/bin/bash
# 定义MySQL连接信息
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL_DATABASE="my_db"
# 定义Hive连接信息
HIVE_HOST="localhost"
HIVE_PORT="10000"
HIVE_USER=""
HIVE_PASSWORD=""
HIVE_DATABASE="my_db"
# 定义需要导出的Hive表
HIVE_TABLES=("table1" "table2" "table3")
# 循环导出Hive表到MySQL
for table in "${HIVE_TABLES[@]}"
do
# 导出Hive表到CSV文件
hive -e "SELECT * FROM ${HIVE_DATABASE}.${table}" | sed 's/[\t]/,/g' > /tmp/${table}.csv
# 导入CSV文件到MySQL表
mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} -e "LOAD DATA LOCAL INFILE '/tmp/${table}.csv' INTO TABLE ${table} FIELDS TERMINATED BY ','"
# 删除临时CSV文件
rm -f /tmp/${table}.csv
done
```
这个脚本将循环遍历定义的Hive表名称,并使用Hive查询将每个表中的数据导出到CSV文件中。然后,使用MySQL的LOAD DATA INFILE命令将CSV文件导入到MySQL表中。最后,使用rm命令删除临时CSV文件。
阅读全文