数据导入导出

 

1、HIVE数据导入到mysql

(1) shell脚本 连接数据库 创建对应表信息

mysql -hIP地址 -u用户名 -p密码 数据库 -P16063 -e"执行sql脚本"

(2) 通过sqoop 导出数据到mysql

sqoop export -Dmapred.job.queue.name=队列名称 \
--connect "" \
--username "${mysql_user}" \
--password ${mysql_pass} \
--table 表名 \
--export-dir /user/hive/warehouse/数据库名.db/表名 \
--input-fields-terminated-by '数据分隔符'


注意:

hive结果表格式需text格式 并且指定其分隔符
mysql 建表需与hive表字段顺序保持一致
mysql 建表是需注意主键约束 数据中存在相同的数据导入会失败
mysql 建表需注意字段长度 结合数据设置字段长度
mysql 建表需注意主键字段需not null

2、HIVE数据导入到mysql
(1) 通过hdfs表数据源路径将数据下载到本地

hdfs dfs -getmerge hive表源数据路径 导出的文件名

 

(2) 连接mysql 导入数据

mysql -h IP地址 -P 16063 -u 用户名 -p密码 -D 数据库 -A <<EOF
mysql 语句;
load date local infile '源数据文件名' into table 表名 fields terminated by '|';

EOF

 


3、Oracle 数据库 数据导入
(1) 创建ctl格式文件 保证数据文件第一行就是数据

load data
CHARACTERSET UTF8
infile 'path/file.txt'
replace into table table_name
fields terminated by "," trailing nullcols
(
col1,
col2,
col3,
col4 DATE "yyyy-mm-dd hh24:mi:ss" ,
col5
)

 


(2)通过sqlldr 执行ctl格式文件

sqlldr 'user/"password"@IP:port/databasedb' control=path/test.ctl log=file_log.log bad=file_bad.bad errors=100000 rows=10000 streamsize=10485760 date_cache=3000 direct=y

 

4、Oracle 数据库 数据导出
(1)导出dmp:exp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp log=e:/hbdw.log full=y;

(2)导入dmp:imp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp

(3)Oracle 通过PL/SQLDeveloper 实现导入导出

 


5、Mysql 数据导出

select * from tb_words into outfile '/home/fuyun/datas/words.txt' fields terminated by ',' enclosed by '"' lines terminated by '\n';

 

整库导出,只会导出sql语句

mysqldump -u root -p test > /temp/database_dump.sql

 

备份所有库数据,只会导出sql语句

mysqldump -u root -p --all-databases > all_databases_dump.sql

 

将指定主机的数据库拷贝到本地

mysqldump -h other-host -P port -u root -p database_name > dump.txt

 


注意两个服务器之间是否相通

第三方软件导入导出

posted @ 2022-08-25 15:24  尘尘尘尘  阅读(147)  评论(0编辑  收藏  举报